Child, a student and a coder

On why schools should naturally churn out programmers but then they don’t.

Childhood is the best time to learn new stuff: it is the full-time job that a child’s brain is geared towards. No task is too challenging, the natural predisposition is to try and try again, and any success triggers enough dopamine to help forge the plastic brain. Childhood is when coding should be taught, like all the other difficult stuff is.

Yes, the science and art of writing (good) code is difficult; anyone who suggests otherwise is forgetting their own journey. At the very least, it always involves algorithm development, interface design (API, UX etc.) and (hopefully) some documentation. To think of it, programming is a composite form of mathematical, empathetic and verbal thinking, and therefore, a good programmer 1 should be the natural result of a properly functioning school education system. But why is this not happening?

Because, teaching how to code is even more difficult. Algorithms, when taught, need to be explained in words as well as in code, worked through step-by-step by a laborious teacher 2. How to build modularity and interfaces in a code is an art form, and the student can learn how to do it properly only after they have learnt to appreciate its need; brought to the forefront by, say, a coursework team project. Writing documentation takes ability to write with brevity, clarity and empathy; skills that take much effort to learn and many more carefully thought exercises to be taught. In short, teaching someone how to code is very time- and labour-intensive.

So, why is it that schools fail 3 at producing good programmers?

  1. Is it because we undervalue the role of teaching in coding, undervalue the teachers who teach it and underestimate the time it requires? Or/And,

  2. Is it because we forget that education involves more than teaching the subject matter? That it also involves putting together years and years of lessons and examinations into a coherent form when required by a job at hand (such as writing good code), an overarching skill that we rarely talk about.

Postscript Should this failure taken as an indictment of the education system of all but a few countries?


1

What exactly constitutes a good programmer is a topic for some other day.

2

A big thanks to the teachers who taught me programming. I now know that it’s not easy to teach it and that you worked really hard, especially when teaching all those sorting and searching algorithms. On a positive note, I still remember and use what I learnt in those lectures. 😇

3

Here we are implicitly assuming that all the material resources required for teaching (to code) such as computers etc. are already present. This is very often untrue.