Old places where I tried to learn programming


So here is a meandering historical answer to your question of where I tried to learn things…

The place where I started learning to tinker with code and make little programs that did things on the web was Adobe Flash. But honestly, I never really understood what was going on in the Flash Studio software and Flash is over anyway. Let’s move on.

The next few places I turned were MOOCs: one at Stanford that used Java and another at MIT that used Python. Lessons learned from those: video lectures about programming are not a good place to start; and attempting to do problem sets designed for undergraduate engineering classes with no background, support, feedback, or hints is probably not a good way to start learning anything.

The next few places I turned to were:

  1. A series of Lynda.com tutorials on Ruby on Rails, a framework for building different sorts of database-driven web applications in the language Ruby, along with a MySQL database. Lesson here: trying to learn a language (Ruby), a framework with lots of different templates written in that new language (the “on Rails” part), and the additional MySQL database language all at the same time is also a bad place to start if you have no background in any of those things. But hey, that was 2007 or so.

  2. The Mechanical MOOC. This was a true Massively Open Online Course, and I followed it for a few weeks along with a considerable number of other of people out there on the web. It drew upon a canonical programming textbook for Python, along with exercises from the MIT introductory course on Python, and arranged the lessons in a digestible and logical sequence building up to a substantial project: building your own version of Tetris, from scratch, in Python. The 2013 assignments are still available on the blog, and there was a reboot in 2015 called “A Gentle Introduction to Python.” The chunked, project-based focus made this a great way to learn and practice, and honestly, the only reason I didn’t finish the final project was that I hit a few stumbling blocks and just didn’t persevere.

  3. Learn Python the Hard Way. This whole book used to be available for free on a low-budget website, but clearly the author did a good job monetizing the work, and now it’s mostly behind a fancy paywall. What was useful here were the explicit instructions around how to do most things, but with regular reminders that if you did something and it didn’t work, you just had to go back and keep hacking on it. There were no hints or feedback.

All of this leads me to the basic suggestion that if you want to learn some sort of coding, it helps to find the projects or tutorials that meet you where you are in terms of what you do and don’t know, and that allow you to build projects that are interesting. In the other parts of this site, I try to match some suggested places to learn with some suggested projects.