There are two courses by UBC's Gregor Kiczales based on this book on edX. You can do both simultaneously.