Live data from Hacker News

The limited value of a computer science education

nathanmarz.com

41–50 of 163 posts

Re: The limited value of a computer science education

#41
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.

Re: The limited value of a computer science education

#42
post #32

The vast majority of what a programmer does, forming good abstractions and avoiding complexity, is almost completely untouched by computer science curriculums. It's also almost completely ignored in the typical programming job interview. Which is why when I interview people now I'm most interested in looking at code they've already written, and asking them to break down an application description into a set of data &…

How do you look at code written if it's all confidential and owned by their previous employer?

If the candidate can't produce any code samples at all then I give them an example app spec to decompose into abstractions.

Re: The limited value of a computer science education

#43
Isn't the tricky bit that a computer science education is in fact an education in the science of computers (no surprises here), yet what most people study it for is an education in their usage?

Maybe what we actually need is a separate field, e.g. "practical computing". - which, I accept, would lend itself less well to University education which we have come to expect as a prerequisite for better paying jobs.

Re: The limited value of a computer science education

#44
post #2

"I hope to see the industry improve in this respect, but in the meantime I'm happy to exploit this imbalance as a competitive advantage." I wonder how much of requiring a computer science degree is simply because the people hiring have computer science degrees. Seems like a self perpetuating insiders club.

Conversely I don't have a CS degree and I take a rather cynical view of candidates who have do. Perhaps I've created a self perpetuating outsiders club at my company. :)

In all seriousness, though, it's because the CS majors I've interviewed have (generally) been great at theory, crap at application. I once had a guy hold forth for 10 minutes about cardinality and then flop sweat when I asked him to explain the difference between "GROUP BY" and an "ORDER BY".

Re: The limited value of a computer science education

#45

People don't understand what computer science is. Don't claim you did CS and it didn't teach you to become a developer, that's not what CS is, and I'm surprised that after a bachelor's and master's the author doesn't acknowledge that.

well, computer science should be MUCH more maths heavy than it is, and software development should be taught as a trade.

> well, computer science should be MUCH more maths heavy than it is, and software development should be taught as a trade.

Up until recently, the vast majority of Computer Science programs were under the Mathematics department. For most colleges even to this day they are still under the Electrical Engineering department.

Re: The limited value of a computer science education

#46
post #37
post #34

Post number 7,819,394 talking about how useful or not useful a CS degree is to a programming job. Here are some lessons I learned by going to school that I find incredibly useful: 1. How to shut up and get some work done, even if I don't see the point to it. 2. How to shut up and get some work done, even if it isn't directly applicable or valuable to a job or something I want in the future. 3. How to take feedback an…

Not to say school wasn't useful to you but all of these things could also be learned on the job. (As that is where I learned them)

That's true, and I completely understand, but it's besides my point. My point is to implore people to stop looking at a CS degree as just a means to get a job. If you look at it that way, of course you're not going to find 100% value in it.

Getting a job is simply not what a CS degree is for. It was never declared to be for this purpose—nobody claims it's for this purpose (except maybe some schools for marketing purposes).

Yes, we all know that you can do a good job programming without a CS degree. Good job. Whoopdeedoo. Anyone who keeps repeating this point is a broken record. Anyone who tries to scientifically prove this is wasting their time. That's not what a CS degree tries to be. This isn't why I went to school, and it's not why many, many people go to school.

Re: The limited value of a computer science education

#47
post #34

Post number 7,819,394 talking about how useful or not useful a CS degree is to a programming job. Here are some lessons I learned by going to school that I find incredibly useful: 1. How to shut up and get some work done, even if I don't see the point to it. 2. How to shut up and get some work done, even if it isn't directly applicable or valuable to a job or something I want in the future. 3. How to take feedback an…

[deleted]

Re: The limited value of a computer science education

#48

People don't understand what computer science is. Don't claim you did CS and it didn't teach you to become a developer, that's not what CS is, and I'm surprised that after a bachelor's and master's the author doesn't acknowledge that.

I've always said that doing computer science to be a programmer is like getting a physics degree to be an engineer.

Re: The limited value of a computer science education

#49
Annoyingly, there isn't much in the way of change on the horizon for this problem, people seem to like things the way they are.

The problem is that there is no good formalized educational standard for software development training. So instead Computer Science gets shoehorned in as a substitute. This leads both to sub-standard Computer Science degree programs from a pure CS perspective (because they are primarily just trade school educations in disguise) which are even worse as regards to training for Software Engineering. CS is very algorithm and data structure focused, which is good in moderation for dev training, but they usually delve into realms that are not useful even in the "well it's good to have a broad knowledge base" sense. Moreover, CS doesn't typically touch at all on the many practical skills, and their fundamentals, needed to be a good dev, ranging from development cycles and styles to QA and testing fundamentals to source control use and management to proper composition and componentization of software to refactoring and dealing with legacy code to deployment strategies and techniques and then on to familiarity with actual operational systems related to all of these things. Each of those topics has sufficient depth to be an entire course or series of courses, yet they are frequently only barely touched on in CS programs, and sometimes they are ignored entirely.

I've been in hiring loops numerous times, and one of the quickest things I learned about hiring in tech is that a CS degree on a resume means basically nothing, there is almost no correlation between having studied CS in college and being able to code at even the most basic level. Unfortunately, I don't foresee much change in the future on this problem. CS is still a prestige degree (a 4-year degree in one of the coveted STEM fields) and I have a hard time seeing a legitimate Software Development education fitting in the mold of either an arts or sciences degree program at a liberal arts college.

Re: The limited value of a computer science education

#50
post #34

Post number 7,819,394 talking about how useful or not useful a CS degree is to a programming job. Here are some lessons I learned by going to school that I find incredibly useful: 1. How to shut up and get some work done, even if I don't see the point to it. 2. How to shut up and get some work done, even if it isn't directly applicable or valuable to a job or something I want in the future. 3. How to take feedback an…

These are about going to school, though, not getting a CS degree. And 100% of these things could, and probably should, be learned in the real world and not through paying tens of thousands of dollars under the guise of education.

I did not go to school for a CS degree, and that has not hampered me in any way when searching for a job in software.

All I learned in college was how to game the system of the institution itself, and that institutions like that are a societal racket and waste of time and money.

Post reply on HN