In my startup life, I am lucky enough to meet a variety of people from different backgrounds – some in management, marketing etc – some starting their own companies for the first time. Unsurprisingly, most of them are web-based. But one thing that it always strikes me is how quickly people are willing for someone just to take over the design and development of their sites without they themselves, having a go. Of course I’m not saying that you should build the whole web app yourself, that’s not the cleverest use of your time – after all, it takes YEARS to train as a good developer – but having some sort of background understanding helps to 1) articulating your vision in computational terms, 2) helps to understand what is and what isn’t possible, and 2) helps you to see where opportunities for innovation are.
So here are some awesome tools which you should look at if you are interesting in learning how to code, or if you’re looking to teach non-coders to code.
Android App Inventor is by far one of the coolest tools I’ve seen in graphical programming. The idea is, with a few simple clicks by dragging and dropping components, you can get a fully functioning app running on your mobile really quickly. Meaning that non-coders can get results, fast. And the ability to show off to their friends what they had built.
There’s a front-end (interface builder) and a back-end (“blocks” builder for the programming aspects). Certainly the blocks builder is the most important part, as it is a gentle way to start teaching common programming concepts such as loops, if-then statements and database access.
I’ve had a play with it myself. Its fun. Although it can get me frustrated really quickly because I just want to get around to tweak the code, that’s probably a sign that this tool is great for step 1, but once you’ve got to a reasonable level, its time to move on.
The idea behind Rails for Zombies is that you would be walked through the basics of creating a “twitter for zombies” through a series of tasks. In each section, you start with a simple task which gets built up to much more complex tasks. You get to learn about database programming prinicples, web development through ruby and so forth. Each player gets credits for solving a puzzle. Its meant to be fun and way more interactive than learning from a book or screencasts.
I can’t even explain how excited I am about the potential for Rails for Zombies and how awesome it is that gamification prinicples have FINALLY arrived in programming. I haven’t had a chance to play with it properly yet, but once I do, I’m certainly going to explore setting up programming workshops with Rails for Zombies.
Built by the awesome people at FUSE labs (brought by Microsoft), Kodu is a visual programming lanugage made specifically for creating games. In particular, its aimed at teaching children programming principles. (And in that sense, it has a lot in common with SCRATCH).
The idea is that you can design, build and play your own games through a graphical interface. You can create the (3D) environment, build your character and set obstacles and tasks that the character has to achieve. The best thing about Kodu is that (not only is it free) but that you can run games on your XBox360 meaning that it makes you feel like you’ve actually created a real game. For fairly little work, someone can create a simple, but very polished looking game.
Obviously this one is aimed more at children: of the demos I’ve seen most of them have been aimed at the primary school age. Kids can share and play each other’s games over the network, and they can also download numerous other games around. To me, this is the 21st century equivalent of creating your own board game (I created quite a few when I was little) and enables them to explore their creativity. For adults, you should definitely check out Wild Pockets.
So there you go. Hope you have fun!
Also, if you’re interested in learning html5, check this out: