Hacker News new | ask | show | jobs
by moab 4127 days ago
It really depends on what you want to do. If you see yourself getting into programming languages, and want to work at a place like fb/google or even a trading-house like JaneStreet, most of the interesting work will be parceled out to folks who really tinkered with language design/logic/type theory at school.

I can talk about each of the (few) areas I mentioned in detail, but I think I'd be leading you astray. The real question is: what are you interested in specializing in? Let's say it's field x. What will it take for you to become so well versed in x that a company will hire you to work on hard problems involving x? X can be anything - programming languages, graphics, kernel, distributed systems. And x doesn't just have to be something "hard in CS" - it can be any number of UI/UX/HCI related fields that are popping up these days.

In terms of how you pick them up: figure out what your interests are and either find a professor at school that's into this and work with him/her, or start hacking on this stuff and getting your hands wet in your spare time. I'm a new grad myself, and I can say for a fact that the ~5% of my peers who are working on truly hard problems in industry are exactly those peers who worked on hard problems in their spare time at school.

1 comments

Hey,

I have a growing interest in distributing systems but I am also very interested in programming language theory. I know that I want to become a software engineer but I also like to dabble with research papers.

This summer I'll join the Infrastructure team of a mid-sized startup in Waterloo, I think that's a good start but I would like to know more about your experience. What do you found the most effective way to turn an "interest" into a subject you are expert in (read able to create new and non-trivial things). I want to get my hands dirty but I am also a bit clueless as to where to start!

I have just started college but I feel that I need to figure out a (even very rough/broad) strategy to structure my learning. Waterloo is a great school but the meaty CS electives are reserved for 3rd/4th year student and I feel that I can work by myself until I reach this academic level.

Distributed systems is a very broad field, do you think that I should start by the fundamentals and then pick-up a niche area to grow in or would you rather have a broad approach, experience different things and specialize after graduation?

It would be really cool if you could shoot me an email: aaron_at_rely_dot_io Thank you :))