Learn Code the Hard Way, by Zed A. Shaw, has been an excellent resource for when I want to get started with a new language. I have completely worked through Shaw’s Learn Ruby the Hard Way and his Learn Python the Hard Way. Both are fantastic introductions to the languages as well as programming in general. Shaw wrote both books with a completely inexperienced audience in mind, but I still thoroughly enjoyed working through them despite some experience in each language.
Shaw’s approach is to have the reader physically type in every code example, usually before the reader knows everything happening in the segment. I feel this approach does two things, it helps the reader take a closer look of the segment than they might have just reading over it, and it challenges the reader to try and decipher what they are typing. Shaw follows the example with a break down of the pieces and a couple of challenges to the reader’s understanding at the end. As the lessons progress, Shaw gradually lessens his grip on the reader’s hand, and challenges the reader to come up with some applications on their own.
I still refer to both of these books once in a while to recall a particular Ruby or Python way of doing something, and I plan to work through Shaw’s Learn C the Hard Way to reinforce my knowledge of C.
Let me know if you guys find Shaw’s series useful, and don’t forget to support the author by purchasing physical copies from his website.
Featured Image from Learn Code the Hard Way. Credit to Zed A. Shaw