|
|
|
|
|
by scarface74
2639 days ago
|
|
I did C bit twiddling for the first 12 years of my career and I worked in assembly a little bit as a professional and a lot as a hobbyists growing up. I had to understand simple data structures but the most complicated algorithm I had to implement was the “shunting yard algorithm” for a preprocessor I wrote. I’ve even had to maintain a bespoke development environment/IDE/compiler/VM for Windows CE written in C when I was transitioning to an “enterprise developer”. 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. 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. Most developers aren’t doing anything new or complicated, they are just taking preexisting tools, frameworks, packages and putting them together. They aren’t even working in non memory managed languages anymore. |
|
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...