3 ms·
Application performance matters, that's why these data structures and algorithm questions still matter. The issue is dogma surrounding the technicalities of dat
by framebit 10y ago
Application performance matters, that's why these data structures and algorithm questions still matter. The issue is dogma surrounding the technicalities of data structures and algorithms.
We make sure in our group to focus on application of those concepts, not memorization or detailed knowledge of the concepts themselves. But yeah, fast algorithms matter. Memory usage matters. Proper data structures matter. I don't really care if you can spit out a syntactically correct implementation of a red-black tree on the spot, but you should know what a tree is and why you might pick or tree over a hash table.
I'd rather hire a writer who can really get a concept across but relies on autocorrect for spelling than a writer who can spell the hell out of stuff but can't actually write. Dogmatic interviews weed out the software engineers with the big picture skills and performance thinking who might be fuzzy on the details, like experienced folks who are decades out from school.
- LordKano 10y agoApplication performance matters, that's why these data structures and algorithm questions still matter. THIS! It's one of my go to stories but back when I was working as a co-op during my undergrad days, in my department there was a .NET programmer who was skilled but had no understanding of the underlying data structures. He would be mystified at how I could write Perl programs that would outperform his .NET programs, even on less robust hardware.
- flukus 10y ago> Application performance matters, that's why these data structures and algorithm questions still matter I'm yet to have a problem where the particular data structure makes a huge difference on performance, I'm sure the exist but I don't come across them much personally. Most of the time an inefficient list search would not be noticeably different from a dictionary lookup, sometimes faster. What I have come across quite often is people who quibble about data structures but have n+1 queries everywhere and don't know what a join is. Another thing that's critically missing in the field is experience with a profiler, someone that knows how to use a profiler will know more about performance than anyone thinking about algorithms. In fact, it's an approach I'd like to try in future for vetting candidates.
- zzalpha 10y agoAnd premature optimization (ignoring architectural concerns) is usually a mistake. Profile, find hotspot, then use your clever cache-friendly hand-rolled tree algorithm when it makes sense. I'd rather a programmer understand that than to have a bunch of programming puzzled memorized. And for seniors, architectural questions are far more critical. Fixing a hotspot may get you a multiple or maybe 10x. But architecture is what gets you orders of magnitude.