Hacker News new | ask | show | jobs
by CWuestefeld 2179 days ago
I think this is the crux of it. What we're doing as software developers is not a scientific discipline, it's engineering. So if you want to be a software developer, computer science is the WRONG field for you.

Computer Science is largely concerned about things like algorithms and complexity, theory of automata, and stuff like that. They're doing research.

Software developers care about those algorithms, but we decidedly do not want to be implementing them. I've got libraries, where somebody already took care of coding the hashing or binary-tree-rebalancing algorithms, or databases with the same. There's really no reason I need to be able to explain how quicksort differs from bubblesort.

But what we DO care about is how to gather requirements, how to perform proper modeling and design, and stuff like that. Yet those are classes in the engineering school, and not required of CompSci majors (at least not back when I was in college).

The result is that folks with a CompSci degree are ill-prepared for a career in software development. They never use at least half of what they were taught, while on the other hand, at least half of what they do wind up needing was never taught to them.

2 comments

I disagree pretty strongly. I wrote lots and lots of practical software as part of my undergrad. And the software I wrote was pretty diverse, including, file system drivers, image recognition, data mining / text classification, exploit utilities, etc. Most of the complex theory has been offloaded to graduate school to make way for "practical applications." Plus, I feel like my education set me up to be a little ahead of the job market, as data science was a track of my CS ten years ago, and you'd have left university with your own little scikit-learn library.
Well said. And THIS is why I have no qualms about not majoring in CS 10 years ago, despite being at a big-name university with a well-regarded CS program.

I love working as a software engineer, and had been tinkering with web development independently since high school -- and it didn't really occur to me to major in CS. Other than both involved working with computers, I didn't see the connection. I had dismissed CS as irrelevant to my interests, too esoteric, boring, dry.

In the course of my current work, there are some things I do wish I'd learned more about, but not enough of them to make me regret not majoring in CS.