Yesterday, I linked to an essay in Time that talked about a guy who was prepared to teach the homeless to code. It crystalized a few thoughts that have been going through my head. Simply put: teaching people to code is solving the wrong problem. We need more than just programmers in the world. Yet, learning to program is flogged constantly as a panacea for anything from homelessness to mere job dissatisfaction. Even NYC mayor and billionaire Michael Bloomberg is learning programming, or so he claims. Now’s the time for all of us to get on the boat.
Why is programming so popular? Look at all the overnight success stories surrounding the startup culture. Some clever guy learns to program in his spare time, creates an online service or iOS app, and gets bought out by Google, Facebook, or Yahoo! and makes multiple millions. A kid just out of college or even out of high school, takes a programming job with a small company based purely on his GitHub contributions, and makes millions when that company gets bought out. Or, someone’s iOS app becomes an overnight success, making millions of dollars a year. Of course you should learn to code—you can get rich! Sure, if you’re lucky enough or get hired by the right company at the right time.
Of course, as technology infiltrates more of our lives, we’ll need more programmers to build, and to maintain, the apps and services we use. For every high-profile six-figure job writing code for a would-be world-changing startup company, there’s plenty of thankless programming jobs keeping financial software up to date with the latest laws, or equally essential, but banal programming tasks. Of course, those typically pay well enough, but they lack the glamor of creating a web or iOS app. Make no mistake: there is a skill shortage in the United States when it comes to engineers and programmers—well, maybe. There’s plenty of skilled programmers that companies can bring in with the H1-B program, or increasingly outsource, and for far less cost.
More importantly, taking an online class can teach you a programming language, but that’s not the same as knowing how to use it. The best programmers are those who aren’t just in it for a paycheck, but also actively enjoy writing code and solving problems. They have experience, and they have expertise that comes from spending more time than a weekend doing exercises from an online tutorial. If you’re hiring a developer, would you take the homeless guy who learned how to write code six months ago, and has barely any experience, or will you take the five-year technology veteran who not only knows the language your product uses, but several others, and has a few open source apps of her own out there. I know who I’d hire.
None of this is to say programming isn’t a skill worth learning. There’s plenty of other equally useful skills people will need. Programmers are often great at making things that work, but making something useful for the normal people requires design skills. It requires someone who can write intelligible documentation. Running a company requires people management skills, money management skills, and the ability to press the flesh and connect with people to give you seed capital and the like. It’s not as easy as “write code, make money” which seems to be the pitch I’m hearing. It’s a myopic worldview that puts value only on people who know how to write code, and smells of snake oil to boot.