| > For those who have been in the industry longer, why do you think it’s still important to stay strong in CS fundamentals? Software abstractions have always made it easier to build software without having to understand the inner workings of the mechanism that has been abstracted. But that doesn't mean we don't have to understand how it works. I saw this happen frequently with cloud infrastructure. Cloud services remove the physical and organizational barriers associated with building and scaling infrastructure. But you still have to understand networking to manage your network infrastructure in the cloud. When it doesn't work, you can talk to AWS Support, but they are there to support AWS services, not design your network for you. The Java Streams API makes it easy to write fluent code. But the Streams API doesn't make that code efficient for you. You still have to think about the cost of each step in the fluent chain, and the optimal order. Does it make sense to sort and then filter, or filter and then sort? Think about it. I was working on a Chrome Extension with Claude. The extension kept getting rate limited immediately on one site. Claude suggested a few approaches, but nothing was working. Then I realized, wait, "are we sending two requests for the content when we could be sending one?" "Yes, let me fix that." Dude. Commercial airline manufacturers have been working on automating every step of the process for decades. But pilots still have to know how to fly the plane, and troubleshoot when things go awry. We still have to understand O(n) notation and how it applies. We still have to understand distributed systems. We still have to know how to fly the plane. |