| I think the author has accidentally replaced the word "useful" with "being a good programmer". Sure, most computer scientists become programmers, and CS degrees don't necessarily translate into programming skills. However, getting a "computer science" degree is not the same as getting a "programming" degree and I don't think that its "usefulness" should be determined by the skill someone has as a programmer after getting the degree. The reason getting a CS degree does not make someone a good programmer is simple:
* A large percentage of the courses you will take will be general education (about 20% in my colleges case)
* Another large chunk will be in mathematics (say another 20%)
* One more sizable chunk will be "lost" to CS theory and "row-based" information (remember writing round-robin schedules by hand, or verbally explaining parts of TCP in class)? Leaving us with maybe 40% of classes having some sort of programming lab.
And if your like me you'll specialize in machine learning, will will allow for even less exposure to things like the gang of 4 patterns. However, the flexibility of a CS education is much much greater than if I had just been programming for those 4 years. If I decide I'm more interested in a career in IT security or data science, my courses will have useful. I think that someone who had instead just been programming Java and Rails web apps for 4 years (like I do now) would have a much harder time transitioning into those (potentially higher paying) fields as the market evolves. Also it's important not to discredit general education. Being a strong writer, speaker will always help you. Knowing some history and geography will keep you from sounding like an idiot when you talk to people from other countries. A college education is not the same thing as a trade school and shouldn't be compared to one. |