Code or Die

We seem to have entered an era of evangelical codism, or at the very least society has moved firmly away from its Geek Chic crush to a firm and thorough respect of the technologist.

Computer Science has been irrevocably stamped onto the UK’s national curriculum; following Eric Schmidt’s plaint against the lack thereof, CS will become the fourth science in the eBac, establishing it first and foremost as a proper science in the minds and hearts of Britain; and ensuring that generations of little Brits will no longer be ferociously let down by the meagre offerings of ICT. (Though the turtles were great.)

The focus in the conversation about CS in education is often on taking computational thinking beyond coding or programming skills. However, surprisingly enough, most of us like to skip the physics/maths/statistical learning and get down to designing the next Metal Gear Solid. Don’t mind if I do. With the launch of the American Code.org in January, the movement is clearly global.

The shift in attitude towards computing recalls a much-needed shift in attitude towards the arts, and the relationship between the two. With the launch of NESTA’s Creative Economy Manifesto at the end of April, we saw not only compelling economic arguments for the support of the creative industries, but also a focus on a union between technology and art:

“All teenagers should have the opportunity to learn creative digital skills, such as designing apps and games, as part of a fusion in the curriculum covering technology and art, as well as maths, science and the humanities.”[1]

Short story long, great people are doing great things in the propagation of CS, ensuring not only that future generations of little people will understand their small screens enough to avoid being eaten by them, but also confirming that these skills are tools of creation and that combining the two sectors can only do good for the floundering economy.

But what about the big people, now that you have to learn how to code (you have no choice, will.i.am has spoken), and you’ve missed the boat with national education, which one of the free online or not so free coding courses will you choose?

Here is a round up of the few that we have tried:

Something for the kids

My first brush up with code, Snake Wrangling for Kids is a free printable eBook for teaching children how to program in the Python 3 programming language. Let’s not be snobbish about using a kids learning tool, we probably need more dumbing down than the kids do. Jason R. Briggs is very diplomatic; with the Mac, Linux or windows version of the book, he takes you from making lists, defining your variables all the way through basic animation. Using cute and quirky examples he brightens up the dryness of learning to code, and you have to love the title. However the format is problematic – if you read the book as a PDF you are switching between TextEdit, Adobe and Terminal widows, and if you print it off you’ve got a huge pile of A4 paper flying all over the place. Essentially a great book but could do with being appified (it is published under Creative Commons – go make it, go on!)

As a side note, if you are getting techy with the kids you must check out this new site from Mozilla, Make Things Do Stuff – it’s not finished yet but is already brilliant.

Code Academy

Code Academy, tried and tested, has become the staple course for learning how to code online. The website is focused on web development using JavaScript, and it hosts courses on HTML, CSS, JavaScript as well as Python, Ruby and APIs.

The layout is great – clear and friendly. The explanations detailed, but not so much as to alienate the layman. It’s also structured to encourage bite sized learning, so that you can dip in every day, in between life. The best thing about Code Academy is the sense of reward; you receive badges once courses are completed and when you have a good streak; it can also be linked to your Google, Twitter or Facebook accounts so that you can brag about your skills to your friends. You will receive email reminders urging you to continue learning when you’ve been away a while, which works, particularly when courses are bite sized. And there is a handy Q&A community forum where you can find the answer to all of life’s / code’s questions.

If you do want to focus on computational thinking, Udacity has another set of wonderful free online courses on computer science, maths and physics. These disciplines will support a deeper understanding of code, and lets be honest I do agree with the proponents; the mode of thinking kind of is more important than the resulting and ephemeral technology.

Decoded – Code in a day

The Decoded Code in a day course is the Black Cab of learning how to code: unnecessarily expensive, but just so necessary.

I’ve wanted to go on this course for aeons and it did not disappoint. Constructed for those of us with little time and a lot of money, the daylong course has come under fire for offering the impossible: Programmers have attacked it for devaluing their profession (this post sent so much angry traffic Decoded’s way that the site crashed). In Decoded’s defence it does not claim to offer a course in mastering every programming language ever written, but a daylong course in web development code. The only female founder has also just won the New Generation prize at the Veuve Cliquot Business Woman of the Year Awards. Represent represent!

The day starts off with a run through of the history of computer science. One of the students thought this a waste of time, though others saw it is great way to get some context. It sets the tone: the computing of today is a long time in the making, it has changed immensely and it changes fast; you will not master coding in a day, but you will grasp it. This also gave the students a chance to get key terms out of the way (browser, server, Transfer protocols, cloud servers, open source, jQuery, APIs, Rails etc etc); if you want to approach telling a computer how to do certain things you need to understand where the information is coming from, where it is going, and where it is stored. Finally this gave us the background to what we would be building: a geo-locational web app.

The two facilitators moved swiftly on to the practical learning, in which we all sat with our own MacBook Air and wrote the HTML and CSS of our webpage. We broke for a quick and delicious lunch (hello black cab), and moved back to our Macs to begin on the coding language of choice; JavaScript. HTML and CSS are not strictly speaking programming languages, but JavaScript is, and combining of the most difficult part of the course with my post-lunch-food-coma was not the best, I tried to stave this off by downing a ton of coffee, causing one of the facilitators to snap at me “No No! Sit down, keep thinking, keep working, that’s how we get through the coma!”

Any how, after dragging the blood back up to my brain, I did keep thinking and managed to figure out the code used in order to make my web page display certain content depending on the location of the user viewing it. Yay!

It may not change the world but it felt damn good.

So there you have it, there is something for everyone; learn to code alongside your kids; fit lessons in between feeding your kids; or train as a company. There are so many ways (many morethatIhave not mentioned) and so little excuses. Unless you agree with this guy – he really doesn’t want you to code.