There's a lot of hype in recent years around the topic of everyone having to learn to code. Such is the hype deluge that one hardly ever gets a chance to pause and ask,
why does everyone have to learn to code?
Many are dumbfounded when asked this question and are found lacking logic in their explanations and support of why everyone must learn to code.
Except, Balaji S. Srinivasan.
Before giving his reason why we should all learn to code, he explained how technology is only getting started and that we are still at the base of the exponential. Why, seeing that there are already billions of users connected to the internet and have smartphones?
According to Balaji, this means that "we now have a scalable deployment point."
Thus, following on this, we should all learn to code because;
Everyone in every industry will soon have an always on, always present networked supercomputer you can deploy code to. So: learn to code.— Balaji S. Srinivasan (@balajis) November 6, 2014
That in 140 characters is the most important reason why everyone should consider learning to code. But where does one start?
Recently, on 31 October 2014, Microsoft South Africa held a Coding workshop led by Dave Russell (Microsoft South Africa) , Robert MacLean (The AppFactory) and some of the interns from The AppFactory for non coders to take them through the basics of coding.
![Microsoft South Africa](https://pbs.twimg.com/media/B1Qb3L7CUAAOh4j.jpg)
What was notable was that Dave Russell didn't just dive straight into teaching the various coding (scripting) languages but provided some context to what coding is all about.
The first lesson was about Operating Systems and what makes up an operating system, what an operating system is responsible for managing / facilitating and the various types of operating systems.
This provides some much needed context for non-Computer Science graduates as they need to be aware that their code doesn't exist in a vacuum but needs to be considerate to consider how much resources does it take from the CPU and memory (RAM), which are both managed by the operating system. For instance,
"At 800 x 600 resolution an OS does 480,000 calculations per screen update." - Dave Russell
Next up, again to provide context, was demonstrations of Binary and where it fits in as well as Assembler language.
Also covered was logic and the various logical operators like AND, OR and XOR. To demonstrate these Dave took attendees through an environment he developed on Minecraft which included switches and bulbs to demonstrate logical operators.
Although not a comprehensive workshop given the time constraints (it lasted half a day), it seemed to have done enough to spark curiosity in some of the attendees for them to explore coding further for their various fields of work.
Furthermore, unlike just learning a programming or scripting language on its own, it provided a broader context of where a program or script fits in in the broader scope of computing thus (hopefully) encouraging attendees to pursue a structured method to programming.
Cover Image Credit: Kevin Jarrett