We can't deny it, computers and software are a crucial part of much of our life. Most of us enjoying the work as software developers are happy to have found their calling.
But what about computer education at school, Computer Science at universities? Is it good enough to learn office programs and algorithms? How many people outside our industry understand the basic programming concepts? Shouldn't it be everyone? Or not?
It is Computer Science Education Week: December 9-15 2013, so the organization code.org started a big campaign with prominent support from Barack Obama, Bill Gates, Mark Zuckerberg, Richard Branson, Jack Dorsey and others to get everyone to learn the basic concepts of programming: Commands, Loops and Conditions. On the first day alone they had 4 million people learning by creating the equivalent of 100 million lines of code.
They use an engaging version of blockly’s drag-and-drop programming that offers 20 simple exercises featuring Angry Birds and Plants vs. Zombies as sprites interpersed with videos of Gates explaining the "if-statement" or Zuckerberg talking about "loops".
In just a few minutes and with a healthy dose of repetition even the youngest schoolkids can grasp the basic concepts that software builds upon. Pretty impressive.
I want to urge all of you programmer parents to reach out to the schools of your kids to use the lazy-time before the holidays to promote the hourofcode.com challenge to all their pupils and also create room and opportunity for the kids to go through this hour-long exercise. And even if the school has no means to support it during the school-time, everyone can do it at home or in the library. The exercises run on any device which has a recent browser, PC, Mac, tablet, smartphone (I tried it).
This week, there will be Hour of Code workshops at all major Apple and Microsoft stores in the US. The Code.org's tutorials, were developed by engineers from Microsoft, Google, Twitter and Facebook and are available in 20 spoken languages.
It's a small thing for us to do but a big difference for everyone who gets the epiphany how easy programming is. And that’s just the starting point. Code.org has taken care of that, providing more tutorials in different directions and also pointers on where to continue.
The discussion of computer literacy is a long one, which also ties in with the Software Craftsmanship movement. More recently many posts and more importantly initiatives around teaching people to code have surfaced.
There are online programs like codeschool, code academy, programming lectures on Khan Academy and offline initiatives like devbootcamp in Chicago, getting developers to speak to highschool classes, and all the meetups for people who want to learn to code.
Of course means of making it easier to learn programming have been around since Logo and more recently Scratch or Robot Turtles. Interestingly many of those languages are functional in nature, work concurrently and have no mutable state. The same is true for spreadsheets, which, as Simon Peyton Jones pointed out, feature the most widespread (functional) programming language ever. Adam Wiggins also praised spreadsheets in his recent essay about the need for zero setup and task orientation for teaching programming.
I hope that this important topic will continue to receive more attention from parents, teachers and administration to change the way how our kids perceive software and software development. After all they are the next generation that writes the code that runs the world.