Some of the best job prospects are in the software industry. Programming as a career has several benefits worth considering: though not stellar, the pay can be quite good (e.g., 6 figure salaries are common), you do not need many years of study (e.g., some do not even have a degree), there aren’t any complicated government regulations to satisfy, you can work from wherever you want in the world, and so on. There are also downsides, such as the macho attitude prevalent in some communities, but nothing is perfect.

Despite all of the benefits of a job as a programmer, demand grows faster than supply. In other words, employers have to increase salaries and benefits to keep their best programmers.

Yes, it is “easy” to become a programmer as there are few artificial barriers to entry, and the pay is good… but there are more and more programming jobs every day. According to some estimates, there are about half a million programmers in the US alone. Even outsourcing to countries such as India is not sufficient to keep the salaries from increasing.

We should not worry too much. If demand keeps on growing faster than supply, salaries and working conditions will keep on improving and this will attract more students. For companies like Google or Microsoft, it is a tiny bit of a problem however. For one thing, they would rather not pay their top programmers the way law firms pay their top lawyers or the way hospitals pay their surgeons.

So the large tech. companies have decided to promote the software industry as a career through advocacy groups such as code.org. That is a good idea. I have two problems with their approach however.

First, they use people have never coded for a living to promote a career in the software industry: a basketball player, a race car driver, a few managers, entrepreneurs and countless politicians. Soon enough, Lady Gaga and Al Gore will run ads about why you should learn Java.

I understand what they are doing. An athlete like Chris Bosh is a lot sexier than Linus Torvalds (though, I suppose, it is a matter of taste). But there is also another implication which students are going to catch, if only unconsciously: there aren’t many cool people who code for a living.

And maybe that’s true. Maybe those of us who like to code aren’t exciting. But I don’t think that’s it.

Second, they feel compelled to present programming as something that is easy. After all, why show that any random politician can learn programming?

Programming is not something you pick up on the side. Oh! Sure, you can put together an ugly script that will “sort of” do what it supposed to do. But to be a top performer in the software industry is just as hard as being a race car driver or a surgeon.

If they promoted it as the challenge it really is, they would make it more appealing to the ambitious and smart people… and they would get the people who are most likely to stick with it.

11 Comments »

  1. “Yes, it is easy to become a programmer …” vs. “Programming is not something you pick up on the side.” Your first statement weakens your argument. I like your concluding paragraph

    Comment by Frank Carrano — 9/12/2013 @ 16:33

  2. @Frank

    Good point. I have since edited my post. What I mean by “easy to become a programmer” is that anyone can pick up programming in his bedroom with a cheap computer… anywhere in the world. There is no need to attend a fancy university or pass government tests.

    Comment by Daniel Lemire — 9/12/2013 @ 16:50

  3. Agreed; this reminded me of Norvig’s “Teach yourself programming in ten years” – http://norvig.com/21-days.html

    On the other hand… I would love it if I could talk to my family and explain to them why a particular fragment is a beautiful work of art. My wife tolerates my enthusiasm, but I can see that she’d be equally fine if I talked Chinese :)

    Comment by Marcel Popescu — 10/12/2013 @ 4:44

  4. I really like all your posts. Good job!!
    I think that using “people that never coded for a living” as a way to persuade kids to consider learn to code is not a bad idea.
    I participated in the Code.org / Hour of Code workshops with my kids in their school. My expectation introducing my kids to coding is that they understands that coding is not a secret black magic that they need to fear rather than expecting they become a top coder in the future.

    Comment by Ned — 10/12/2013 @ 8:26

  5. I think making programming cool starts very young, with making technology cool, and not just as tools to use, but the inner workings, and the makings of technology.

    Mechano and Lego were very important to me growing up, and probably had some influence on my pursuit of an engineering career. This new type of game (Robot Turtles) may have a similar influence on the minds of the young in the realm of programming.

    Comment by Dominic Amann — 10/12/2013 @ 8:36

  6. @Marcel

    When it comes down to it, I am sure that basketball looks pretty boring. Most people would hate to sit and watch what basketball players do all day long. I suppose they lift weights, run around, practice, study strategies… blah… A lot of packaging effort goes into turning a game into a spectacle.

    Similarly, I am sure practicing medicine is not all that exciting compared to programming. TV shows make it sound like doctors cure rare diseases several times a day but I am sure the bulk of it is just routine (it has to be).

    So I think it is all in the packaging. Lots of programmers could be rockstars if only we put effort into promoting what they do. The sad fact is that we often don’t know who wrote this crazy software we are using.

    Comment by Daniel Lemire — 10/12/2013 @ 9:34

  7. @Ned

    Right. It is a good message to send, that programming is someone you can learn no matter who you are.

    But what I am worried about are all the ambitious and smart kids who will think that programming is nothing but a trivial technical activity that anyone can master.

    Compare this with basketball… kids know that they can learn quickly… but they also know that to be a top player, they have to work very hard. The two messages are important if you want to recruit the very best.

    Comment by Daniel Lemire — 10/12/2013 @ 9:40

  8. It is nobody’s purpose to attain top talent whatsoever. The untold goal is to make the “skill of coding” a commodity. big corporations do not want many a top programmer whom they cannot afford to fire. Instead, they want droves of standard-skilled, replaceable candidates, most desirably many candidates for a single job opening, so that 1. salaries and benefits can go down, 2.the risk of workforce fleeing away would be minimised. That is standard corporate reasoning in every and any industry, nothing new here. Just needs to be recognized.

    Comment by Daniel — 10/12/2013 @ 11:20

  9. @Daniel

    Of course, companies want cheap and replaceable labor. And the amazing thing is that they are failing. Despite 30 years of “software engineering” aiming to turn programmers into replaceable machines… great software still overwhelmingly comes from top coders.

    And it is not looking good for those who want to make talent irrelevant… because the minute some kind of programming becomes a commodity, someone automates it away.

    Comment by Daniel Lemire — 10/12/2013 @ 11:46

  10. Ha-ha, at least one non-medical profession that can earn you a living in this new world.

    Comment by Leonid Boytsov — 12/12/2013 @ 18:50

  11. Much discussion both by advocates and skeptics, fails to distinguish learning to code as a valuable life skill for people (across all careers) versus learning to be a professional software developer. The comments in this thread assume that the target is the latter, but there are strong reasons to value the former (though I would argue that simple math/stat literacy is a much more urgent gap to attack, for many people in our communities).

    Comment by Alan — 13/12/2013 @ 16:44

Leave a comment

Warning: When entering a long comment, please ensure that you make copy of your text prior to submitting it. If the server should fail or if you hit a bug, you might lose your work. I am not responsible for your lost effort.

To spammers: I carefully review every single post and make sure that spam gets deleted. You are wasting your time if you are manually entering spam using this form. Read my terms of use to see what I consider to be abusive.

 

« Blog's main page

Powered by WordPress