From time to time, students ask me wether such degree or certificate in computer science will help them get a good job. There is no shortage of studies showing that degrees lead to good jobs. That might be true, but there are also many young (and not-so-young) people who are depressed by their career. This sad state of affairs comes, I believe, from an industrial viewpoint. People seek “certifications” of all sorts, just like factories seek to get “certifications” for their products.
Maybe getting a computer science degree from a leading school feels like “ambition” or “a quest for excellence”, but it is so only if you adopt an industrial viewpoint. In truth, you are more or less going through the motions.
The problem is summarized nicely by Vivek Haldar:
I’ve been a TA for a number of CS classes while in grad school, and I’ve conducted many interviews for software engineer positions. Just from my narrow anecdotal window, it is amazing how many CS students just want to figure out the bare minimum to pass the class; and how many grads do not have a decent grasp of elementary algorithms and data structures, and are not comfortable with code.
Vivek is trying to be nice: he knows that there is more than just anecdotal evidence. Too many students assume that taking a couple of programming classes is all you need to be a developer.
In an industrial universe, we seek standardization. You are either a software developer, or you are not. If some well-known school says that you are a competent software engineer, then you are. Conformism is preferred to initiative. Going beyond the call of duty is for suckers: do what you are asked, no more. You can also expect the next 5 years to be like the previous 5 years. All you have to do is to be consistent.
In a post-industrial world, you have to adopt different strategies:
- Instead of seeking a “certificate” that supposedly show that you know how to behave nicely and get work done… start getting actual work done, and behave nicely. Then tell the world about it. The certificate or degree becomes just one element in a wide portfolio.
- Instead of waiting to be told what to do, start figuring out by yourself what you should do. Please don’t wait for a professor to tell you how to build a software application. Go out on your own and figure it out. Better yet: figure out how to get paid for it.
- Never assume that skills in demand today will be in demand tomorrow. Go learn a new programming language even if no professor told you to do so.
If you behave as a cog in the machine, you will be treated as such, and you are likely to learn to regret it.