Hacker News new | ask | show | jobs
by jkire 2178 days ago
FWIW I've been coding since my early teens and enjoyed it a lot, but when it came to university (in 2009) I had very little interest in doing a CS degree and instead opted for Maths. The two main reasons were: a) I knew that doing Maths instead of CS wasn't really going to hinder my job prospects in any way, and b) CS sounded a lot drier and had fewer options and choices than the Maths degree (in the UK you apply for the course and you generally don't do anything from other courses, so your choice matters a lot).

The first point I think has born out fairly well, even if it was probably a bit arrogant. Certainly when I'm interviewing grads I'm not actually that interested in if they did a CS degree (though that might be more because I didn't do one...). We don't really do early stage training so we're looking for evidence that the grads can actually code, whether its by pair programming, via questions or looking at personal projects, etc, its the people who have done it as a hobby that tend to shine there.

The second point is highly subjective and obviously quite personal, but equally if people know they can get into software engineering without a CS degree then I think they're more likely to do a course that really interests them. After all, if you it doesn't effect your job prospects that much then why wouldn't you? There is a fair argument to be said that the industry should be better at hiring CS and code camp graduates and doing on the job training, but that's not where we're at currently, alas.

If anything I tend to view CS as the academic arm, and software engineering as the practical/vocational arm. In the same way e.g. law works (at least in the UK), where actually most lawyers haven't done law as their first degree and do a conversion course after instead (often getting a contract before doing the conversion cause and then having the firm fund it). Really, its the classic argument about how much university degrees should be academic vs vocational.

1 comments

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.

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.