This is a cross-post of something I wrote for The Guardian, but just thought would be handy to have on the blog over here. It is also a small update from an old post: How to teach kids, or anyone, how to code – that’s the history bit done! Now the science…
The beauty of programming is that it does not matter how old you are (within reason – under 7 is possibly a bit optimistic) you can learn using exactly the same, mostly free resources to be found on the Internet. You can learn basic programming easily within a year and then you can choose to hone and refine whichever aspects of coding most excite you. Done! It’s not hard.
For the purposes of this post I have referred to resources aimed primarily at younger people – but they are all useful for the beginner.
Two of the most common questions are:
1. What language (programming language) should I learn/teach?
2. What resources are there out there to learn how to code?
The answer to question 1 is easy: any/all. The younger programmers are typically polyglottal coders, applying different languages to different challenges, with fewer specialising in one language.
The answer to 2 is also easy: there are many and I will list some here. (Do keep an eye out, there are more resources put online every day and it is always worth watching out for more/better/easier ones.)
Please note, I am deliberately *not* going to recommend one language over another, nor opine the benefits/pitfalls of each – find out which one suits you and start there. Another tip is once you have found a language you are keen to learn, then do search YouTube for further free support and tutorials, there are far too many to name-check here, but it is brimming with people willing to share knowledge in an easy to digest fashion.
To really get you in the mood
Whenever I talk about teaching kids to code, or online resources, I always encourage people to watch Randy Pausch’s last lecture and read the introduction to Douglas Rushkoff’s Program or be Programmed. Randy Pausch’s Last Lecture can be watched here
(If you don’t have an hour or so free right now, then come back to it, but watch the ten ish minutes from this point in the video)
Free online resources
Kids Ruby http://kidsruby.com is also simple, free and fun.
Scratch http://scratch.mit.edu/ is taught in an increasing number of schools now. Created by MIT it is a programming language that helps computational thinking as well as collaborative working as you build, create and share.
For those of you who love to really get into the meat of a subject, then http://learnpythonthehardway.org/ is a great book/free download. It would not be suitable for the very young coder, but do not be put off by the title – it is surprisingly compelling.
Code Project has a great page on Android programming (for mobiles) http://www.codeproject.com/KB/android/AndroidGuide.aspx there are many tutorials for Android but I found this to be the best place to start.
Blitz Academy has a whole list of resources for those thinking about getting a job as a games developer (in fact the reading and link list is interesting for anybody even vaguely interested in anything)
The Bytes Brothers books [http://www.gamebooks.org/show_series.php?id=1171] are a “…sort of a cross between Encyclopedia Brown and Micro Adventure, each volume in this series contains several short mysteries. The user must read carefully and run very simple BASIC computer programs in order to guess the solutions.”
I can’t really leave you without the links to Alice, having started with the Randy Pausch lecture; it is a programming environment not a language:
Alice is a 3d programming environment, designed to “create an animation for telling a story, playing an interactive game, or a video to share on the web. Alice is a teaching tool for introductory computing. It uses 3D graphics and a drag-and-drop interface to facilitate a more engaging, less frustrating first programming experience.”
So there is Alice 2.0 and Alice 2.2 as well as Story Telling Alice. The latter was the one mentioned by Randy as being developed by Caitlin Kelleher and is “… designed to motivate a broad spectrum of middle school students (particularly girls) to learn to program computers through creating short 3D animated movies.” You can download Story Telling Alice here, but it is not hugely tested, is only available for windows based machines, has no support – but I certainly play about with it with Amy (9).
‘Proper’ Alice has full support and documentation and teaching materials and so on.
And that’s it, but there is a constant stream of useful stuff being built and recorded every day, so this post will date quickly! But once you have learned how to code, join us over at Young Rewired State!