Hacker News new | past | comments | ask | show | jobs | submit login

| 38. Employers care about which courses they took.

Dark side: Employers care about your technical interviewing ability and your GPA. Technical interviewing focuses on a subset of skills around certain algorithms and data structures. The courses most relevant to interviewing will spend at most a couple of weeks on the topics you need to know well.

Bright side: There's so much to know in CS that regardless of what courses you take, you'll likely have to (or want to) learn more on the job. So, in college, you want to focus more on learning-to-learn technical material. Also, certain CS courses contain so much outdated/irrelevant info that you can more efficiently learn all you need to know on the job or through your own projects.

Yeah take challenging classes that open your mind but you should fully appreciate that the job will have you use only a subset of what you learn. For example, I don't work in video games, but I took some computer graphics classes and it was amazing to learn how rendering and ray tracing work. Same for hardware. Even though I'm doing web dev, I've had hobby hardware projects I've worked on and enjoy tinkering with circuits every so often.

What employers do care about is that you worked on something challenging, you're able to overcome adversity to ship something, and you're eager to learn more.

Diverse skills can be super important. Even if you're talking about computer graphics in a really curmudgeonly field.

I'm in GIS. (geospatial information systems) Turns out knowing how to define a camera using a matrix and intersecting a ray with a mesh of triangles is pretty useful. And it turns out that if you don't know how to do these things and just sit down and start cowboy coding the solution you're gonna come up with is going to need to be rewritten by the person they hire when you leave.

There are a lot of things I run into in my job where I genuinely don't know what the right algorithm is, compared to the number of times I've said "I recognize this thing" and brush up on the literature and implement some variation on it as applicable to my particular usecase. I'm kinda curious as to how much of the stuff I've written has someone come across it later and been like, "wtf is this shit, you just use <so and so's (probably Djikstra's)> algorithm".

For me the most useful skill has been to recognise when I'm doing something that's O(n^2) or worse, especially if it involves doing anything besides just math (e.g. database queries, file reads, web requests, etc) If something is O(n^2) or worse it's a good sign I should probably google around for a better algorithm.

Thankfully python has a rich set of built in datastructures, using a dict (or a hash map in other languages) turns a lot of O(n) problems into O(1) problems. The bisect module turns O(n) problems into O(n log n) problems. I'm always keeping my eye out for more of these big-o-reducers.

That said, in production software it hardly ever matters these days as long as you're not doing anything exceedingly daft. Fast enough is fast enough.

Maybe FAANG cares about GPA, but I haven't had it listed since I was applying for internships.

Not a single person has ever asked for it.

I don't even think they care, I got an internship in one of the FAANG companies and didn't even have my GPA on my resume.

I also remember the recruiter telling people you should only have your GPA in case it was super high and it would work as an extra to your resume. So I would think your interviewing skills matter the most.

It's been a while, but when I was entry level the only employer I encountered who cared about GPA was Google. Have times changed?

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact