Hacker News new | ask | show | jobs
by goranb 2420 days ago
I'm currently pursuing my CS degree after a couple of decades working as a programmer. The big difference is that you will miss "why" and learn mostly "how", unless you have a very inquisitive mind. On the other hand, not everybody can afford years of no income or crippling debt.
3 comments

I agree with you; I have a CS degree, and when I work with those who learned the programming mechanics (aka making code work) - are often skipped other topics that came in handy for me making other decisions. I can understand why code is slow (eg: BigO for cpu or memory), what structures and algorithms to use in different scenarios (Data Structures & algos), how things are working (Computer Architecture, Programming Languages [theoretical construction of languages], Compiler design), and Automata. Absolutely, these can be learned by oneself - but I find they rarely are.

Edit after thought: Of course, when to use an Array vs a Linked List in your specific language (for example), might not matter if you're doing web apps of medium scale taht one can throw more EC2 instances at

Is there any part of a CS degree that educates students on how networks operate or what a protocol looks like on a wire? Most of the new grads I work with seem to think of all of that as a black box and are completely stuck when things aren’t working.
There are certainly classes that cover networking.

IP, TCP, DNS, and HTTP were covered in classes I took.

As for actually on the wire. I haven't studied anything about how ethernet actually works. I assume its kindof like i2c, but I don't know more than that and haven't needed to.

So if college was so invaluable teaching networking, how do you think people who went to school before http existed learned? Just like everything else, you can learn as needed.
> So if college was so invaluable teaching networking,

I never said or implied that college was invaluable for teaching networking. I just answered a question about what was taught.

Mine here in the UK covered quite a lot if networking protocols, so yes, there are some out there. In fact, it's never occured to me that this wouldn't be covered. I'd be pretty disappointed if a new grad couldn't figure out how to how to at least approach diagnosing an issue :(
My CS degree had it as an elective. It was the class I did the worst in, and I now work primarily with network protocol implementations. Good foundation though, even though the prof was terrible at designing assignments.
My undergrad had a good computer architecture class, but it didn't cover networking. That's definitely a pretty big hole in my knowledge. A networking class would absolutely have slotted in quite easily to the CS curriculum.
This would have been a great class to replace the "How to Double-click a Mouse 101" class that my college required all students to take.
This edit is the critical leap, 99% of software engineering doesn’t benefit from this depth. For sure there are positions that do but they’re the edge case.
I worked for almost a decade before going back, and I had the same experience.

As for debt, there's no need for crippling debt though if you go to a state school and are planning on working as a programmer.

I imagine other students would be extremely grateful to have your experience to know the motivation behind some of the seemingly arbitrary ‘whys’ they are required to learn.