Silicon valley would have you believe that learning how to program is an extremely valuable skill set that unlocks untold career and personal possibilities. All you have to do, dear reader, is learn enough to sling some Ruby on Rails, deploy your own website, and the world will be your oyster.
Back in 2012, I believed this line of reasoning and began teaching myself to program. I tried everything from Codecademy to traditional textbooks, but couldn't make anything stick. I am extraordinarily motivated, but I found it It difficult to make forward progress. Even after exhausting hours learning the basics, my goal of building products and turbocharging my career seemed just as unattainable as when I started.
This frustration motivated my cofounders and I to start building Code Combat in early 2013. Our goal was to teach the world to code and bring that silicon valley prosperity to everyone. It seemed obvious to us that if we created a product that was fun to play and at least slightly educational, people like me (motivated 20 somethings) would find it easier to continue learning CS and become valuable software developers.
Over the course of two years, I learned the hard truth that knowing how to program computers isn't actually that valuable. The skill that is valuable is wanting to program computers. And that distinction is troublesome for motivated 20-somethings.
Young adults have an incredible ability to teach themselves anything, but they are especially motivated to learn things that improve their quality of life. Often that means earning more money or finding a job with better work/life balance. And so for many people who graduated college with useless liberal arts degrees (like myself), it is tempting to teach ourselves skills that actually make us valuable members of the economy. As in, paid well and sought after by employers.
Programming is a particularly attractive skill to learn because it's very well compensated, in extraordinarily high demand, and doesn't require as many unpleasant work/life compromises as other industries [1].
To many people, then, programming looks like a ticket out of their humdrum career trajectory. All you need to do is learn a bit of obscure syntax, and you'll be raking in the dough while being endlessly pursued by recruiters offering ever-higher salaries.
The reality is more disappointing.
Like most valuable skills, programming is difficult to master. Unlike other skills, however, the barrier to entry is very low and the rate of change is very high. This means that you, newbie programmer, can learn one or two frameworks and languages and be unemployable in a year or two if you aren't constantly learning and improving your craft. To make matters worse, thousands of new programmers and tinkerers are constantly entering the labor market out of inherent interest. Because they want to program and can learn for free, they will outcompete and outbuild you.
This is why coding boot camps heavily screen for people who want to program. And it's why, even with 1-5% acceptance rates, they still have an image problem with their graduates [2]. Companies don't want to entrust their mission-critical backend infrastructure to a philosophy major who is dabbling in programming. They want someone whose desire to program has given them years of experience wrangling complex systems and making them work.
Our initial business model at Code Combat was to educate players enough to be employable. When that failed, we turned to simply discovering players with enough skills to be employable. When that didn't scale, we turned to the real hard work: introducing programming to kids who might otherwise have never learned about it.
That turns out to be an extraordinarily difficult niche to monetize, but it's what adds the most value. Because of Code Combat, millions of kids who otherwise may have never heard about programming have written hundreds of lines of Python and JavaScript.
It's my profound hope that in 10 years I'll meet a child that was introduced to programming on Code Combat. I imagine that child much like myself: a sort of nerdy kid who fell in love with computers and developed a real passion for tinkering with them. For her, all the silicon valley promises of prosperity and opportunity will be true because she doesn't just know how to program, she will want to program, which is the skill that's actually in demand.
[1] I'm looking at you management consultants.
[2] When we started Code Combat in 2013, most bootcamps were earning money by charging recruiting fees for their students. Today, they have almost all stopped doing that and fund their operations the good old fashioned way: charging tuition. Companies hiring boot camp graduates simply don't value them enough to pay placement fees.