08 Feb 2014
Online Programming Courses
Instant disclaimer: I’m not a serious programmer, these are resources I’ve found useful for casual hobby coding and learning general principles. Help yourself to a generous side of salt to accompany below.
Courses which teach general computing principles in addition to programming skills. Emphasis on concepts such as algorithms, software development, object-oriented principles. These tend to be similar in structure to university courses.
- Udacity - free courseware available, enrol for a more involved course with feedback & extra resources.
- Coursera - free courses, extra cost for “Signature Track” to get a certificate of ambiguous value.1
Class Central is an aggregated list of Massive Open Online Courses if you’d like a broader picture of what’s available.
I’ve got a few bookmarked links on Pinboard which I’d be happy to share - it’s an uncurated collection of programming resources ranging across difficulties. “Bits of Brilliance” is a comprehensive curated list of articles, some of which aren’t particularly user-friendly.
“Which programming language is best to learn first?” is a commonly asked question, frequently met with heated debate. One useful answer is: whichever one you’re most likely to use, which may be determined by work already completed in that language in an area of interest you have. Another answer is: it doesn’t matter all that much - pick one with a good community. Object-oriented is considered friendlier than functional (e.g. Haskell) and Ruby is frequently recommended as the friendliest of all the languages due to its syntax being similar to natural English.2 Getting stuck in to anything and trying it out will help you progress far more than deliberating at length.
Free coding courses are available with an online editor which coaxes you in to progression via a gamified learning system. It’s a simple, fast and free way to get started, avoiding the inevitable setup process that can discourage wanting to engage further with the topic.
This paid for alternative to Codecademy uses a style of screencasts and short lectures followed by interactive tutorials. $29 a month, $9 trial for first month.
Bento web development
Bento is a beautifully presented collection of tutorials related to web development. Fundamentals such as html and css through to advanced and specific topics such as o-notation and guides to specific databases.
Learn [x] the hard way
This series relies on rote learning and is honest about it.
This simple book is meant to get you started in programming. The title says it’s the hard way to learn to write code but it’s actually not. It’s only the “hard” way because it uses a technique called instruction. Instruction is where I tell you to do a sequence of controlled exercises designed to build a skill through repetition. This technique works very well with beginners who know nothing and need to acquire basic skills before they can understand more complex topics.
Zed Shaw covers a few languages including Python, Ruby, C, Regex, SQL and general command line interfaces. They’re all free online.
Quite simply, programming is not for everyone. It is not an absolutely fun and delightful task as it’s portrayed to be in videos like the aforementioned or movies like “The Social Network”. It is rarely an invigorating social activity. A lot of time, it’s sitting in front of a computer screen, looking at a colorful text document, and thinking, and thinking, and typing, getting angry, and wondering why the hell you’re living a life sitting down.3
J at 17:21