A comment I hear every once in a while goes something like this: “Why teach programming to everyone? There is a “programmer type” and not all kids are “that way”. It’s just a waste of everyone’s time!”
I don’t agree. I believe programming is a liberal art – a way to express yourself and make sense of the world.
I recognize the stereotype. I was that kid. Driven, intense, socially awkward, and able to tune out the outside world. I also believe that many programmers today do fit that “nerd” profile because the artificial nature of computer science in school creates a pathway that is amenable to this personality type.
The more I learn about learning, the more I realize that school often “coaches out” people who think differently and have different problem-solving styles. People who might have become amazing programmers if there wasn’t only “one way” allowed. There have been many studies about teaching programming and many point to ways to teach it that are very different than we use now. More inclusive, but untraditional ways.
We desperately need a wider variety of people to become programmers, makers, engineers and scientists. I firmly believe that allowing young people the chance to follow these paths, no matter who they are or what they natural styles are will create a stronger, more vibrant citizenry who understand science and can make good decisions about their lives.
What I’m saying is that the fact that programmers tend to be a certain personality type is a symptom of the way we currently teach – not that they naturally make better programmers.