After reading the post Kids Can't Use Computers... And This Is Why It Should Worry You again which had a big run on Reddit recently, I couldn't help but wonder where the next generation of programmers will come from?
As I've related in the past, I was intrigued by computers in the six grade, way back in 1970, on a field trip. A forward looking teacher got a grant and put together a programming class in my 11th grade year which got me started actually coding. Despite not really taking any computer classes in undergraduate or graduate school, I eventually got a job as a programmer in 1981 and never looked back.
Over the years computers of course became ubiquitous; when I bought an early Apple ][+ my neighbor at the time and I were the only people I knew with one. Over the years a lot of friends got a computer of some kind, often after asking me what they should get. Few of them were programmers however or even had any interest in how things actually worked. To them what I did was a mystery, like some kind of technology shaman.
Fast forward to today and few of my friends that I didn't meet at work are any more knowledgeable today. Even the next generation of friends (I volunteered at a college and made a bunch of friends there now in their late 20's and 30's) is much more likely to text, use Facebook, etc than those my age but as to knowing how things actually work they aren't really different. Most of them aren't all that interested in how things actually work. To them what I do is a mystery, like some kind of technology shaman... oh wait I repeated myself.
Computer and network technology and especially programming is extremely complicated to learn and requires a lot of energy and time and especially dedication. Neither my generation nor the next really possesses much of any of that when it comes to technology. Those friends who are programmers generally had a similar experience to mine; something triggered an interest, someone pushed them to get involved, and opportunities appeared that kept the interest going. Not much has changed since it happened to me; only the technologies themselves are more advanced.
Of course today lots of people think we should teach coding to everyone and instantly that will create more programmers simply due to some kind of volume effect. I don't know if that's really true. In my case in high school I think we had 6 people in the class. Of those I know two became programmers (including me). The real question is will exposure to programming concepts create an interest where none was before or will it just capture those who were already interested? Would unimaginative teaching by people doing it for a slight raise really inspire a whole class of students where only one or two is even interested? These days teaching is not about passion or inspiration but following government rules and requirements with little or no deviation (at least that's what my teacher friends say). It's hard enough to get kids interested in history much less programming or network stacks if there is no spark to start with.
It could be that programming attracts a subset of people and everyone else glazes their eyes over. I know of several young programmers who are as passionate about coding and learning stuff as I am. Most of them were attracted to programming and technology around the same age I was but the advantage was ready access to computers and the internet. Yet most of their peers are no more knowledgeable or interested in how anything works than my own peers. They learned Office in school or maybe used an app or two in classes, and spent hours on the internet but have no interest or time in understanding how any of this works.
The commercial currently running for eSurance about the clueless old lady who posts things on her living room wall and uses a CD drive as a cupholder is pretty stupid, but so many from the current young generation who might know about posting (and have no clue what a CD is) are really just as ignorant about security and installing an OS or what a web server does.
In my physical therapy session (recovering from foot surgery) someone mentioned she didn't know what a cloud was, and everyone in the room agreed. I thought of explaining it but from past experience it probably wouldn't have helped much. People don't know what these things are but most of the time the complaint is rhetorical; if you try to explain even in simple terms the eye glazing begins. They don't really want to know, they just wish life were simpler so such things didn't matter.
So in another generation where will all the programmers come from? The future for programming is not getting smaller; it will be growing enormously as everything will have some computing device in it and be connected to the internet in some way. Someone has to write the code. Someone has to test the code. Someone has to understand the security, and keep things that should talk talking and things that shouldn't, separate. We need to inspire a whole lot of programmers in the next 20 years.
My fear is inventing programmers will become an industry, churning out people who can barely doing anything, like an army of rote button pushers. Programming so far isn't very compatible with programmers who can barely understand even simple code and use some tool that does all the work (though there are many who get by). Maybe someday, but today programming is getting more and more complicated and diverse, not less. In some ways the complexity and invention may scare people from even putting a toe in: too many choices, too many voices, and walls so high only a shaman should attempt to get in.
When I started programming was in its infancy, and I didn't need much to hack around and learn. Even in the early days of the internet information was available but the breadth wasn't so high so you could be pretty useful quickly. Today it's become rocket science. How do you create a new generation of programmers that can do rocket science? Given that most programmers were inspired long before they ever got to college and took real programming classes (I never did), you have to do something to get kids inspired, encouraged and drawn into an amazing world of limitless wonders without scaring them away before they ever get involved.
I wish I had an answer. Inspiring middle or high school students is hard in any subject and it takes people who are both excited about technology and programming and have a desire to teach. This is tough in a world where programming ability is attractive to employers who pay a lot more than teaching.
One thing I wish more programmers who write would do is post about what got them into programming in the first place, no matter what generation. Maybe out of a lot of stories some ideas might come as to what works to create that initial spark. In my case it took two teachers, one who dragged the class to see a computer, and later one who convinced the school system to spend a little money on a programming class made a huge difference in my life.
So think today how you could help inspire the next generation of programmers. I don't want to work until I'm a 100.