Hacker News new | ask | show | jobs
by learc83 2633 days ago
>But, for the last 10 years, I can honestly say that nothing I have done takes any level of advanced computer science understanding that you would learn in school.

I don't work at a FAANG company. We mostly work on boring line of business apps, but I use CS theory every single day. If I take what you say literally, my experience is so different from yours that we might as well be working in different industries.

My guess is that we have different definitions of "advanced" computer science theory, and that you've internalized a lot of what I'd consider computer science theory to the point where it seems like common knowledge to you.

When I went back to school, the programming classes weren't super helpful because I'd already been programming for professionally for 7 years or so. But in every single theory class I constantly discovered much better solutions to problems I'd had in the past, or in many cases I realized that I'd spent a day or 2 rediscovering a solution to a problem that was solved 50 years ago.

There were so many holes in my knowledge that I didn't know were there, and if you'd told me just how valuable having a more complete understanding of CS theory (and hardware) I wouldn't have believed you, but it has been immensely helpful.

>Schools don’t teach what I consider “computer engineering” - how to build a maintain complex system within a team that translate business requirements to working maintainable systems.

They do. I had several software engineering classes that focused on building large projects in a team--estimation strategies, design patterns, how to gather requirements and talk to business people etc...

1 comments

I’ll give you that. I did graduate from college with a CS degree over 20 years ago. When I think of “advanced computer science”, I’m thinking of the leetCode, hackerRank, DS&A type of topics or even how different gossip and consensus protocols work.

I’m not considering design patterns, continuous integration and deployment, or something like the “Well Architected Framework” https://d1.awsstatic.com/whitepapers/architecture/AWS_Well-A... (not too AWS specific) as the stereotypical whiteboard algorithm type of questions that I keep hearing about but I have never had to endure.

If the typical school is teaching software engineering and not just theory, I find it amazing that graduates have never heard of unit testing, automated deployments, or even how to use git for source control. I end up having to come in as adult supervision for both types of developers - boot camp or recent graduates.

> leetCode, hackerRank

I think that broad knowledge of CS theory is useful, but I agree that being able to replicate specific algorithms from memory is not particularly helpful.

In fact I think that FAANG style whiteboard interviews are one of the worst interview systems ever devised.

>If the typical school is teaching software engineering and not just theory, I find it amazing that graduates have never heard of unit testing, automated deployments, or even how to use git for source control. I end up having to come in as adult supervision for both types of developers - boot camp or recent graduates.

Almost every class I had required us to submit projects using github (they wanted to teach source control, but they also wanted to see version history to discourage cheating). This was at both a middle tier state university for undergrad, and a top 5 university for grad school.

I've also hired plenty of people who were bad at unit testing, but I can't recall ever working with a junior who hadn't at least heard of the concept.