Hacker News new | past | comments | ask | show | jobs | submit login

And yet in 20 years of coding I've never needed to write any of these. Even implementing a graph is something I've only needed once or twice.

It's far more important to know what you want to do rather than how to do it.




As the parent comment said. Even if you never need to do it. Being quire familiar with these topics can help you select the correct solution.

Sometimes you don't need a binary tree, you just need a O(n) linear search but someone who has never played with the actual low level datastructures has no idea when that matters, so in their mind a hashmap makes a ton of sense because searching is between O(1) and O(log n) depending on implementation. But in many cases a flat array will be significantly more performant and is a simpler implementation but in their mind a hashmap is the better solution.

Now it probably doesn't matter, but when it matters it's better to know the the answer.

That for me is the big distinction between software engineering and software development.

Plumbers don't need to be engineers, but there are times when you really need an engineer to design the plumbing system.

Strive to be the engineer, purely because you will enjoy the craft a lot more, and people recognise drive and ambition.

It doesn't matter if you are in the right place at the right time if you don't have the skills to back it up.

Granted if all you want to be is a plumber that pipes APIs together and lives a different life, by all means I encourage you to enjoy life. But don't make students believe thats all their is to the industry.


It's not about implementing a graph or a trie. It's about knowing when and why these data structures matter.

Sure, you (or an LLM) can probably find a package that can quickly search for a file in an extremely large filesystem.

I'm guessing that the authors of S3 didn't have that luxury when they were building out this service years ago, though. There are very few people on Earth that deal with exabytes of data, and prior art only gets you so far in this scenario.

The only way something like that can be built is by truly understanding CS fundamentals. Most people study CS to become a SWE. If programming gets reduced to maintaining prompts and optimizing here and there, then there is a real risk of this discipline eroding over time.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: