Problem with this argument is that leetcode exercises are only rarely about effective use of data structures as a whole and certainly not about modelling of real world data effectively.
The majority of problems I've been working on in prep fall into 1) do you know this algo, 2) can you manage n-pointers in an array/set of arrays, 3) can you keep track of multiple deep stacks in your head (deeply nested/multiple loops, recursion), 4) can you come up with clever micro-optimizations?
As far as adaptability goes, I also didn't see it. Adaptability is better measured in a more real world task like subtly expanding a requirement in a series of logical steps.
You can understand a candidate's use of data structures by asking them to build a TODO list API. To test for adaptability, now add tags. Add sorting. Add sorting by various fields. What would you index on if stored in a DB? How would you make this service scale if servicing thousands of users? Millions? Make it a shared TODO list with multiple users.
Want to test full stack? Add a React UI to this API.
Look at that: see how a practical coding interview without leetcode that can also be extended to test systems design? A simple TODO API and we can keep extending it to more deeply understand grasp of data structures + real world adaptability to shifting requirements and how to code for it.
Leetcode's problem is that it is so far removed from real day-to-day programming that it has to be studied for explicitly. And therefore encodes it's own bias. Leetcode also misses a lot of key measurements of experience; I've yet to see leetcode exercises on proper exception/error handling. Never seen a leetcode problem on how to write more modular code. Or even really practical secure coding exercises like testing for valid inputs and protecting against XSS.
Problem with this argument is that leetcode exercises are only rarely about effective use of data structures as a whole and certainly not about modelling of real world data effectively.
The majority of problems I've been working on in prep fall into 1) do you know this algo, 2) can you manage n-pointers in an array/set of arrays, 3) can you keep track of multiple deep stacks in your head (deeply nested/multiple loops, recursion), 4) can you come up with clever micro-optimizations?
As far as adaptability goes, I also didn't see it. Adaptability is better measured in a more real world task like subtly expanding a requirement in a series of logical steps.
You can understand a candidate's use of data structures by asking them to build a TODO list API. To test for adaptability, now add tags. Add sorting. Add sorting by various fields. What would you index on if stored in a DB? How would you make this service scale if servicing thousands of users? Millions? Make it a shared TODO list with multiple users.
Want to test full stack? Add a React UI to this API.
Look at that: see how a practical coding interview without leetcode that can also be extended to test systems design? A simple TODO API and we can keep extending it to more deeply understand grasp of data structures + real world adaptability to shifting requirements and how to code for it.
Leetcode's problem is that it is so far removed from real day-to-day programming that it has to be studied for explicitly. And therefore encodes it's own bias. Leetcode also misses a lot of key measurements of experience; I've yet to see leetcode exercises on proper exception/error handling. Never seen a leetcode problem on how to write more modular code. Or even really practical secure coding exercises like testing for valid inputs and protecting against XSS.