Some people tend to be rather stupid about the choices they make in life. For the most part, that’s OK – it’s human nature after all, and it can (most of the time) be rectified with a bit of hard work and a lot of concentration. But at other times, these mistakes run so deep that it’s almost impossible/unfeasible to set them straight afterwards, making you wonder just why they happened in the first place.
Take, for instance, the average class of computer science students. Go to the nearest university on a day where 2nd or 3rd year computer science students have a hands-on lab session for programming in the language of your choice. Watch as half of them struggle with the basic logic that’s already up on the board/overhead-projector. Notice how half of them (or more) have trouble writing a simple if statement or a for loop (no matter what language) that properly tests-for/does something.
It’s not their fault. In a world that has been turned upside-down in less than a decade and revolutionized in its entirety by the digital PC, you can’t blame students for turning to the number most popular field of work/study when it comes to deciding what they’ll be doing for the rest of their lives. The facts certainly support their decision: you no longer have to be a CEO of a Fortune 500 Company, a Lawyer, or a Doctor to be making 120k+ a year (and if you’re a lawyer or doctor you have to handle licensing fees, insurance, and many other money-sapping necessities) – you just have to be a programmer with 5+ years of experience.
But the fact of the matter is, unlike almost every other field out there, simply trying hard doesn’t make you a good programmer. It almost sounds like bias/prejudice, but good programmers are born, not made. But that’s not the point of this article: the problem is that universities, colleges, counselors, teachers, and family members alike are quick recommend computer science as a “good choice” for anyone looking to earn a bachelors degree. The problem is, it’s not for everyone, and they’re only doing these students a (really big) disfavor.
Look at it this way: to program you need a very specific mindset, very creative and out-of-the-box mentality, and most of all, you have to just get it. With the amount of work and struggle that these students put in to graduate with a 80%+ from a decent university, they could’ve completed any other course in (almost) any other field and received a lot more for their efforts. And even if they didn’t: University/College doesn’t exist in and of itself, it’s there to teach you what you need to know to be an awesome employee in whatever field you chose.
Universities are wrong, plain and simple, in not explaining this to the hundreds of thousands of CS-hopeful students that come their way. What’s the point of graduating with an 95% in Computer Science, getting hired on the spot at your first, then getting stuck as an entry-level programmer for the next 30 years of your life with only a promotion or two getting thrown your way? Because that’s what it is: what you learn in university is all text-book material. The creativity, true programming know-how, and out-of-the-box thinking isn’t (can’t be) taught anywhere, it’s picked-up along the way.
A CS university graduate with an 80% in major accumulative score but with the programming “talent” needed may/will end up going further in life than the one that gets a 95% and turns out to be the kind of guy that can memorize anything you throw at him (or her), but can’t code on their own worth beans. That’s a fact of life – like it or not, programming is not directly related to what you know, but how you do it.
It’s not fair to the students while they’re studying and certainly isn’t fair to the university graduates once they’re done. Because let’s face it, no one’s going to admit this isn’t working out and start studying for their BSc anew in another field. People are optimistic when it comes to themselves, they’d rather believe they’ll get better with experience and time than that they’ve wasted 4 or 5 years of their life in something that’s not going to take them where they expected to be.
Of course there’s more than enough employment available for just about anyone that graduates from college/university with a CS degree and is looking for work, but at the end of the day, it’s a matter of principle, not of money. These students (now graduates) that worked so hard to reach where they did deserve to reap the full fruits of their labor – not to have to sit and watch as they’re surpassed by people who worked as half as hard to get just as far. Universities and counselors have a duty to inform students of the harsh facts about the real world of computer programming, because if they don’t, who will?
At the end of the day, of course it’s the students’ right to choose what they want in life, and it’s no one’s decision but their own. But everyone has a right to the full facts before making such a life-altering decision as which field to major in – it’s just not fair otherwise. It’s not about discrimination, closing off the field, or attempting to rid the world of “sub-par” programmers, it’s about being honest and facing the facts as they really are.
It’s a harsh world outside of the university walls, and the computer industry is just about the most unfair and discriminating field you’ll ever find when it comes to who can be considered a “good programmer” and who won’t, but that’s the way it is, and lying to yourself and/or others isn’t the way to go about setting things straight. It’s one thing for people who take crash-courses in programming or computer security or network deployment, and its another for those students that spend thousands of dollars and countless mind-numbing hours practicing and working on something that, at the end of the day, just isn’t what they’re looking for.