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.

Balaji is a General Partner at US Venture Capital company, Andreessen Horowitz, and also a Lecturer at the Departments of Statistics and Computer Science at Stanford University.

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;

That in 140 characters is the most important reason why everyone should consider learning to code. But where does one start?

Coding 101

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](

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

![Operating Systems](/content/images/2014/11/Operating-Systems-Dave-Russell-Microsoft.jpg)

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.


Attendees were then taught HTML Javascript basics so they could code a page in HTML (with JavaScript) that takes user input of two integers and adds them up.

![HTML and JavaScript](

The workshop ended with an overview of Microsft Visual Studio and the Lumia Phone Emulator. Attendees were then taught how to develop the same code they did in HTML & JavaScript but this this time as a Lumia App using Visual Studio.

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

Share this article via: