Back when I was a nipper, learning how to program was a painful experience. At home, I would labour over 68000 assembly language trying to program sprites. At school, I laboured under the pitiless Mr Eales, who tried unsuccessfully to indoctrinate me in the dark art of LOGO running on a BBC Micro, in his own inimitable brand of sadism.
These days, learning to program needn't be quite so painful. A rising tide of online programming schools is making it easier for people to learn the basics of any language, and take things further, gaining a respectable, useful knowledge. They vary in format, running the gamut between interactive and simply informative. Here are a few to whet your appetite.
This site provides interactive browser-based lessons, explaining the basics of programming and explaining what to type and where, so that you can get a solid idea of programming rules and structures.
This higher education site covers a range of beginner, intermediate, and advanced courses. It is broader than Codecademy, covering physics and statistics in addition to meaty programming topics such as how to build a web browser, and HTML 5 games development.
Code School offers a variety of in-browser programming courses covering Ruby, Git, CSS, and jQuery among others. Some of the courses are free, while some cost money. The service is aimed at both individuals and teams, the latter of which can be monitored by a manager. Code School also runs a couple of other sites: a free Interactive Ruby tutorial called TryRuby, and an applied, tongue in cheek Rails course called Rails for Zombies.
Aimed at new and experienced developers, Treehouse has two plans: Silver, at $25 per month, and Gold, at $49 per month. Both give you access to over 700 videos, but the premium plan includes access to interviews with industry pros, project feedback, and new ideas to inspire your programming skills. Like the other sites, it enables you to learn by doing, rather than simply watching the videos. If you are into iOS or Android development, Treehouse has special tracks for these.
Lynda.com is heavily video based. Instead of providing in-browser interactive coding tutorials, it provides videos to watch, along with exercise files to play along with using your own software. This approach stems from its breadth of courses. Detailed programming tutorials for Java, Perl, ASP.net, and Ruby nestle alongside other courses ranging from negotiating your salary through to advanced photo shop CS5 tutorials. There is something for tech-heads of all kinds here. The site had 187 courses designed for developers at last look.
Yes, Google is your friend, but I'm not fobbing you off by asking you to search for 'Python courses online'. Google runs the Google Code University, which contains a variety of educational materials covering programming, web security, Android, and distributed systems. Materials are scattered and noninteractive, but they can be useful pointers. The University offers discrete classes in Python and C++, along with online coding exercises. These classes aren't designed for glitz and glamour, but they are instructive for the already technically adept who want to extend their range.
This site features courseware from a range of universities including Stamford, Princeton, and the University of Toronto. There are some applied practical courses, such as Functional Programming Principles in Scala, with specific programming exercises. Some courses, such as Introduction to Databases, are self-study, meaning that all of the online videos and materials are available at once. Others are released at a pace set by the University, and result in a certificate.
Some of these courses are more intensive than others, and aimed at a higher level, but that's one of the great things about learning online; there is something for people at every stage of knowledge.
Of course, the gap in most of these online courses is real world experience. Learning how to code in a browser is one thing, but applying that in a commercial environment, which will have its own restraints and requirements, will present its own challenges. Still, in many ways it beats teaching yourself out of a book. And given that many of these are entirely free, or at least offer a free trial, it's worth a go.
Maybe I'll even have the confidence to try. Mr Eales told me that I was going to fail my A-levels, but I still turned out with a respectable B. So there. Not that I'm bitter, or anything.
Listed below are links to blogs that reference this entry: How to learn new programming skills online.
TrackBack URL for this entry: