Earlier quoted context omitted.
While I don't think that whiteboarding aho-corasick from scratch is a good quality interview. I don't think algorithms and data structures are useless or impractical. IMO a basic understanding of the main data structures is important and useful in the day to day. Granted, some applications will involve more or less use of data structures/algorithms than others, but if you discount them completely you mark yourself ou…
Point taken, and I agree. > vector/array Those two, yes (and vectors really only apply -as such- in C++), but the rest? It depends (the best answer to every conundrum). I write consumer/developer software; not ML or Big Data Mining stuff. My work is generally in device control, user interface, SDKs, APIs, etc. That means, that, in over thirty years of writing software, I have encountered exactly 0.000000 binary trees…
I think other systems langs make the distinction, Rust does also, this is what I've been doing at my day job lately.
> That means, that, in over thirty years of writing software, I have encountered exactly 0.000000 binary trees.
I've been doing it for a third of that time and I've encountered binary trees and all kinds of other data structures a bunch of times. I don't do any big data or ML stuff, I was writing React frontends for about half of that, the last few years it's been systems programming with Rust; I still encountered these types of structures writing JS though.
> BTW: Binary trees and linked lists can be an issue in parallel-type programming. We had some image processing algorithms we did that used similar structures, and we had to be very careful. We often had to back out optimizations.
When sharing any memory between threads or tasks you have to be careful, I'm not sure there's anything special about binary trees or linked lists. Consequently Rust makes this sort of thing very nice.
I'm not sure how to respond to the rest of the comment. Personally, I'll take an expressive type system over a comprehensive unit test suite.
I'm not discounting your personal experience but I find it hard to believe you aren't encountering these types of problems, unless you are but just not noticing it. Curious about what kind of 'optimized' (optimized for what?) code is 'the worst'?
edit: I just re-read this and realized the tone was a little aggressive, I don't mean to come across that way, my bad.