Learn to Program in 2012

Earlier today I was watching a video interview with Grace Hopper’s biographer, and at one point he discusses how some academics disliked Grace’s work because she involved the users in developing programming languages, and from her attempts to take programming away from the mathematicians and make it something that ‘normal’ folk could do.

This point is pretty much the central theme of Ted Nelson’s 1974 classic ‘Computer Lib‘ – with “You can and must understand computers NOW” emblazoned on the cover.

It has resonance today with the flurry of recent activity highlighting the need to drastically improve computing education in the UK – Next Gen and Royal Society reports, recent government statements, and so on.

Appropriately, CodeAcademy have declared 2012 to be the Year of the Code – the year in which everyone should try to learn and program.

Here are some good start points for complete novices:

http://codeyear.com/ – CodeAcademy’s Code Year site. This uses interactive online lessons that build your skills with JavaScript – the scripting language used in web-browsers (and some other places besides).

Even more basic, the School of Webcraft will introduce you to HTML – not a programming language as such, but the basic markup language used to create simple webpages.

One of Stanford’s free courses is CS101, and this will introduce you to some of the fundamentals of computing and will allow you to practice programming online. The course starts in February, so still time to sign up. I think this course will be using Python – another easy to learn, beginner friendly language. The course leader, Nick Parlante, also runs the CodingBat site which has a range of programming challenges that can be completed online to test your skills in either Java or Python.

There are many other free online courses on computer programming, from a wide range of institutions and available through iTunes U, YouTube or elsewhere – but what these courses offer is exercises you can complete online and the opportunity to learn alongside other learners and mentors.

Leave a Reply