Hacker News new | ask | show | jobs
by angerman 3725 days ago
Anyone reading this and being in the same boat, intending to get a degree. Please do yourself a favor and consider getting a degree in Physics, EE, Math, ..., and do some CS on the side. Sure CS might be easier, but you pass up the chance to widen your horizon.

EDIT: many will only study once; why not study something new? Even if tuition is free, why have someone teach you topics you might already be very familiar with? I'm not saying you won't learn anything new in CS. You very much will learn something new. But if you choose a related field with little to no exposure yet, you will learn so much more.

5 comments

Anyone reading this and being in the same boat: Be very careful with this advice. There are high-paying jobs out there who will only consider CS grads. Why cripple yourself professionally learning something tangential to what you want to work in?

Anecdotally the majority of non-CS grads I've worked with haven't been anywhere near as good as CS grads.

> There are high-paying jobs out there who will only consider CS grads.

Are those entry-level jobs? For those I can see it. If you're hiring somebody with 5+ years of experience, though, only considering those with a CS degree is pretty short-sighted.

This is an unbelievably bad advice. People underestimate difficulty in learning core CS & Programming materials after they have learnt it. All the while underestimating difficulty involved in learning Math, Physics and EE. As someone who studied Chemical Engineering and later did an MS in CS and now a PhD. I highly recommend studying CS if you are interested in CS. Barring ECE (not EE) the amount of overlap between even Maths / Physics & CS is minimal.
I understood CS a long time before I understood all the math in EE. CS doesn't start to catch up to engineering in mathematical rigor until you are on the back half of your masters degree. I can teach you missing CS theory about how compilers or algorithms work on the job without too much trouble. I wouldn't dream of teaching you how to do polar coordinate conversion for AC circuit calculations on the job under any circumstances though. 4 years of CS is very easy compared to 4 years of engineering.

Theoretical CS is very important, but also quite academic. 99% of developers won't ever delve into that theory and will instead reach for a library based on that theory. The biggest issue in programming is managing large amounts of information that changes over time. This is not only completely avoided in most courses, it is also close to impossible to teach outside of gaining years of experience because every decision is a tradeoff and it takes time to build up an intuition for such things.

This is REALLY bad advice. Yeah, the high-flying finance firms will pay big bucks for Physics or Math majors that can code and think quick on their feet, but you have to be REALLLLY good to get into those firms, and those firms hold CS to the same level anyway.

If you want to become a software engineer, get a CS or CpE degree and do whatever you want as a minor.

Some anecdotes:

* My girlfriend got a Math degree from a good, but not Ivy-league, school with a minor in Physics. Turns out that the market doesn't value a B.S in Math as much as one would think. She landed up becoming a teacher, which she likes doing, but it's a field that's really hard to get out of without resetting your career.

* I went to school that had a cooperative education program. All of the engineering students were eligible to participate. Twice a year, the Co-op program had two days in which hiring managers from local companies (my school is in Hoboken, so local == NYC) would come to the school and interview people. We would put our names and majors on the lists that employers had, and they would select the people they wanted to speak with.

The CS and CpE students would always, without fail, get AT LEAST 7 interviews that day. Every other major would be lucky to get 2 or 3.

That's an interesting mindset. As someone who is self-taught, I consider a degree to be a formality that I have to wait for because I move faster than this.

The Internet is my chance to widen my horizons, if I want to learn physics or math, I can and I will, but a Physics or Math degree might not help me as much professionally.

As I've mentioned before, I really prefer to interview and hire mathematics students over CS. It's much harder to fake one's way to a math degree.
This thread overly focuses on algorithms, which are not necessary for the majority of coding. What is necessary is the ability to handle abstractions, purity and regularization of thought. Mathematics, Philosophy and Writing are just or more applicable as a skill than being able to please an Online Judge.
I have a math degree. I do a LOT of coding on the side. Hire me? :)