3 ms·
If she wants to sit in a cubicle churning out CRUD apps for businesses, then yeah, deep understanding of algorithms and data structures will rarely be called fo
by Xichekolas 17y ago
If she wants to sit in a cubicle churning out CRUD apps for businesses, then yeah, deep understanding of algorithms and data structures will rarely be called for.
If she wants to work on anything cool (the kind of problem that keeps you up at night), she almost certainly will run into a situation that involves knowing this stuff. I'm not just thinking of the usual definitions of 'cool' problems (compilers, etc). There are lots of problems that aren't as meta as a compiler that are also hard (and hence cool)... routing delivery vehicles, or optimizing any number of metrics.
Without a good grasp of what is out there, you'll be forced to do one of two things. Either you'll spend a lot more time than necessary to reinvent the wheel, or you'll implement the most straightforward solution, which might be far from optimal in both time and space. There is always the outside chance that you'll come up with something new and better than anything that already exists, but I'd argue the chances of that are much better if you already understand what is out there.
So yeah, I rarely need to do analysis for my day job, but am knee deep in combinatorial optimization algorithms for a side project.
For the followup question: any project that implements a language or a library is a place that good algorithms/data structures can make a tremendous difference. But there are applications everywhere. Even boring things like looking up a name in a phone book can benefit from knowing what a Trie is.