Okay, so we all know that both Bill Gates and Mark Zuckerberg never finished their Harvard degrees, and look where they are now. But for the rest of us who just aspire to have a full time job, let alone an equity share in a hot startup, is a college degree really necessary to code? Maybe not, according to this blog post from Good Technology.
Erin Biba, who wrote the post back in November, asks: “Programming isn’t accounting. It requires creative thinkers and problem solvers, people unlikely to thrive in the confines of a college classroom. So why do hiring managers apply traditional methods to a nontraditional job?”
Exactly. And she cites a recent study by Dice.com that puts the number of available tech jobs at more than 84,000. While not all of them are programmers, certainly a good portion of them are. It is a good time to be a nerd.
The stories about the perks at Google and Facebook are now the stuff of urban legend. I was recently in the trendy SoMa neighborhood of San Francisco, and visited a typical 200-person tech firm that had the required bicycles, snack room, and catered lunches and dinners. So why do hiring managers insist on the sheepskin (that means the actual diploma, for those of you too young to remember the reference)? Tradition, perhaps?
I went shopping around a few typical college Web course catalogs, looking for the kinds of software engineering classes that would teach kids today how to do a Hadoop cluster or learning CSS/XML. I came up empty-handed. Granted, I didn’t spend hours on this research.
Take a look at this course listing from the University of Texas at Austin’s Computer Engineering Department. Disappointing, from a place that has an active software community. Or how about this list of classes offered at the University of Urbana-Champaign, where the Web browser was invented? You can find plenty of advanced computer research happening on campus, but teaching something practical to undergrads? Not in the catalogs that I could find.
Both Vatterott and ITT Technical Institute teach Java programming as part of their certificates, so there is some hope for those who have the time and money to afford these expensive programs. But not on every one of their campuses.
As the software market heats up (and you have noticed that it is heating up, right?), the idea of a degree becomes less and less necessary, especially if you can prove your coding chops and demo what you have actually built. As you can see from my brief exploration, sometimes a CS degree doesn’t mean that you can actually program, and many schools are woefully behind on teaching the sorts of tools and techniques that the bread and butter of modern Web apps.
Granted, teaching programming skills is a lot more than offering a course in Java. But you need both the theory of software design and the actual language instruction too. It would be like teaching French by only showing what art you can find in the Louvre and d’Orsay museums. In the meantime, we need a better match between courseware and software practice, and better understanding by hiring managers of what is important.