3 ms·
Data structures are funny, because most of the time they're (a) the last thing you worry about (after feature specification/architecture/implementation/etc), a
by nmfisher 6y ago
Data structures are funny, because most of the time they're
(a) the last thing you worry about (after feature specification/architecture/implementation/etc), and (b) it's usually pretty obvious which data structures you to use (and which to avoid).
In other words, comprehensive knowledge of data structures won't be needed in 99% of the average career, no matter which company you working for.
Leetcode doesn't prove you're a good hire, it's just a lazy way of screening out bad hires (because the average applicant who can complete leetcode is going to be more competent than the average applicant who can't).
I can understand why big companies (Google scale) use leetcode in hiring - they want a scaleable method that filters out the bad candidates while leaving enough good candidates to pass through.
When you have 1000+ applicants for a job, you just need to trim the pool down to a manageable number of good candidates. As long as you end up with 20 good candidates, you don't care that you inadvertently screened out a further 100 good candidates in the process.
I still don't think it's an optimal method for hiring, but I at least understand why they do it.
- mypalmike 6y ago> comprehensive knowledge of data structures won't be needed in 99% of the average career, How does one write software professionally without a solid grasp of data structures?
- nmfisher 6y ago...by doing what thousands of people do around the world every day (and what OP was referring to) - using the List, HashMap, Stack and Queue implementations provided by your language of choice. Occasionally, you might need to dig deeper to find an appropriate data structure for your specific use case (maybe something more exotic like a suffix or binary tree), but that's already pretty uncommon. Implementing a data structure from scratch? For the vast majority of developers, it's basically unheard of. One exception to this though, IMO, is dynamic programming - while it's not something that someone like a web developer will need to know, it crops up so often once you go beyond that that I think it's a reasonable expectation (though not necessarily in a whiteboard scenario).