I still believe with proper discipline, the go to book for learning how to program should be <i>How to Design Programs</i> at <a href="https://htdp.org/" rel="nofollow">https://htdp.org/</a><p>There are two courses by UBC's Gregor Kiczales based on this book on edX. You can do both simultaneously.