Stop Leetcode
Here is a collection of my notes for an article and video which is are both in development. It is essentially against the notion that algorithmic problem solving/competitive programming skills correlate with real world development skills.
Many companies, notably FANG and large tech companies, must filter through thousands of applicants, so they must cut through the herd in one way or another. It is similar to filtering only those who have a computer science degree. Even though having a degree may or may not translate to being a more competent developer, it is still practical to apply some potentially arbitrary constraint to bring the number of applicants to a managable number.
In this short 2 minute video by The Primeagen, a famous youtuber who also is a software developer and hiring manager at Netflix, discusses how he has seen his company move away from focusing on hard technical, Leetcode-like problems and towards basic data strucures (linked list, heaps,graphs etc.). Secondly he goes on to explain the importance of having a visible project on Github that actually solves a real problem.
Article about Google conference mentioning why competitive programmers make worse developers as they are used to cranking solutions out fast instead of reflective thinking over problems.
Topic starts at 1:11:00 in the video
"being a winner at programming contests was a negative factor for performing well on the job"
Overall, assuming competetive programming/leetcode skills correlate with real talent as a developer is the same as assuming spelling bee champions make the best writers and journalists.
The entire fact that there are courses and services around passing interview problems is indicitive of the fact they are heavily flawed. If I spent all my time working on personal projects, or contributing to an open source project writing real software, I may still perform poorly on a question about inverting a binary tree or some other obscure problem. This is because these problems are very rare outside of whiteboarding style interviews or data structure classes in university. Real world development involves navigating around large codebases, writing understandable, well commented code and documentation, as well as communication. Above all, software development is about solving real world problems and helping people. Solving obscure puzzles to impress an interviewer accomplishes neither of these things.