I’m often asked by new students where they should go to learn Python. That isn’t always an easy answer, because I haven’t found the one perfect resource yet. However, there are some really strong ones out there. My goal was to construct a lesson plan that was a mashup of my favorite resources into a coherent plan of readings and homework. Readings are important to have a foundation to build on and reference back to, but so is having a solid queue of content to whack on until you understand the how and why of things.
I’ve mashed up content from Python for Informatics, http://www.pythonlearn.com, Codecademy, and Python Batting Practice together into one course book.
I believe that these materials are some of the best out there, and I reject the notion that students need to learn from a single source. Each has benefits, and I feel like these sources are very complimentary. Recall learning how to spell or learning another (human) language. We always had workbooks or some material that required us to act on the content we had just studied. Learning how to write code is a skill based activity that requires a ton of practice to refine your understanding of the concepts and syntax. Additionally, learning from multiple sources allows the student to experience how things are referred to by different people from more perspectives.
That being said, a streamlined and supportive course in programming designed to minimize frustration and difficulties does not mean that either of those will disappear. An important part of the learning process is the fight to learn. The harder we have to work for something the better we remember it, but that doesn’t mean that learning how to program needs to be the worst thing ever. I have aimed to keep a good balance inside the “productively difficult” zone.
So, I am happy to announce a new page at the top: the Guided Self-Study Lesson Plan. I will be leading another introductory workshop again soon with this structure as the basis, and I plan to document and publish that as well.