This is a rant about software engineering interviews and LeetCode.

šŸ—Æļø Preamble

In 2024, hundreds of thousands of people worldwide are grinding through LeetCode, aiming to break into the tech industry, drawn by the high salaries it offers.

šŸ¤” What does LeetCode actually bring?

LeetCode offers little more than these benefits:

  • Algorithm exercises and data structure knowledge
  • Coding under pressure (Why though? Are we in a war zone now?)
  • Passing coding interviews

However, completing LeetCode doesn’t prove you’re a good software engineer. It only shows you can code basic algorithms and solve programming puzzles. It doesn’t test essential skills like collaboration, communication, documentation, design patterns, system architecture, low-level programming, or core computer science knowledge.

If LeetCode only tests these basic skills, what are employers hiring for? An entry-level programmer? It’s like hiring a doctor but only testing their basic chemistry knowledgeā€”something they rarely use in real-world situations.

ā‰ļø What’s the real issue?

LeetCode practice isn’t about learning. You donā€™t gain insights into computer science or system design;instead, you learn how to pass coding interviews. If the problem isnā€™t obvious, hereā€™s another way to look at it: itā€™s like being in school where learning isn’t the pointā€”passing the test and getting good grades is. This mentality might explain why some people, despite being labeled as “educated,” still act or think poorly. Now, we’re doing the same thing with tech interviews.

LeetCode is not Software Engineering. šŸ˜•

šŸ’” What are better solutions?

There are so many more productive things to do. Contribute to Nix/NixOS, improve Emacsā€™ ecosystem, enhance Java package management, work on C and CMake workflows, better the Godot Asset Store, or practice writing parsers and language servers. So much remains imperfect, yet people waste time on LeetCode. šŸ˜¢

Itā€™s better to study other people’s code, talk to them, and learn how they solve real-world programming problems.

The industry is suffering because weā€™ve taken the lazy routeā€”using software to filter candidates without assessing real talent. šŸ˜ž

šŸ˜¤ I’m not alone

A quick Google search reveals countless rants:

šŸ’¬ Conclusion

We can’t escape this trend. History has shown that, for now, this is the path society follows. Maybe software engineering just isn’t for me at this moment… šŸ§