January 23, 2015

We have spent the past few weeks, and the latter part of last year, teaching programming to non-programmers. This is really something that has been great fun for all of us (teachers and learners alike). Imagine teaching someone who knows nothing about programming, you're given five days, and they're expected to have made notable progress in the end. How would you do it?


We have opted for some rather unconventional techniques (at least as it comes to current mainstream programming teaching and what is called "computer science”) for accelerating the progress, and I must say that I have personally been amazed at how much can actually be done. With the first batches of trainees we had, despite us having designed the training course and having set the objectives and made the materials accordingly, I was amazed at how much the people were able to learn in just 5 days of training. Many of them would start from literally level 0 (as according to their very own testimonies on day 1 of the training, some of them knew "nothing at all” about programming; sometimes they would use the keyboard with just two fingers, and we have to teach them how to correctly press shift in order to output a curly brace or an exclamation mark), yet on the last day, they are able to successfully fulfill tasks like "make an application that is composed of at least four classes, the main class must extend a specific base class, must read some data from one or more text files and must involve the use of a dynamic array”. And these things are done in real programming languages (including C, Java, Javascript, Eqela), writing code, not using visual tools or dragging and dropping, largely all on the command line and using a text editor. Some of them have started to make systems to automate the work of the business of their friends, make programs that help them in their regular day to day work, etc. Literally amazing, and all of it sparked in just 5 days.

It is being said with an increasingly loud voice that "coding is the new literacy” (eg. here, here and here, among many others). Based on what we're looking at, I have no doubt that at some point this voice will be loud enough to become the accepted truth, and the developments in the aspirations of all kinds of people are a great demonstration of this: Programming skills are actually in great demand.

We have been doing trainings in various ways for more than a decade, offering courses originally to largely corporate customers, expanding to the academe and other organizations over the years. What I have personally noticed is really a shift towards programming and software development over other technical topics: In the early years of our trainings, most of the demand was in learning to install, configure, use and maintain programs that had been made by others and/or purchased. We had programming courses even back then, but they were widely considered (by ourselves and our customers) as something very high end, only suitable for the selected few. Not so now. Fast forward to 2015, programming skills are in demand not just by a "high end audience”, but by regular people, in both corporate enterprise as well as in individual settings: We are currently teaching programming to a non-programmer audience in a very large multi-billion dollar enterprise. At the same time, upon discussing with a consumer-majority exhibition audience in the UK, for example, countless individuals had ideas for an app or a system they would want to make, not knowing yet how to make it, but they had great enthusiasm to learn, coupled with the belief that definitely they COULD learn. By a curious coincidence, we keep receiving emails from young people (or even children) in the Middle East who would want to make apps but don't know how. The demand is literally overwhelming (as it is often hard to decide how to best address some of these requests), but definitely leaves no uncertainty or doubt: The world wants to learn how to make software. Not just a selected few, not just some special kinds of people, but regular people from all walks of life. In Asia, Europe, US, Middle East. No difference.

At the same time the startup world is extremely aware the education in general is ready for disruption (eg. here, here and here). This potential, coupled by the demand and enthusiasm of the general public, and the requirement (and possibility) to teach programming more effectively than how it has been done before, I would say that we have all the signs of a great revolution indeed (see how all this was casually likened to the industrial revolution).

Exciting times ahead, people. Brace yourselves and start learning how to code It's fun.


Share this article: