LeetCode & crossword puzzles
LeetCode is to real-world programming as crossword puzzles are to real-world journalism.Should a developer prioritize practicing LeetCode or HackerRank-style coding challenges when looking for a job?
I see versions of this question pop up all the time. And there are some pretty strong opinions on each side of the debate. Which means I know a certain segment of the population will vehemeently disagree with what I’m about to say. Oh well. 🤷
First, I will say have nothing against LeetCode and related sites, for entertainment purposes. They can be fun for some people. They can also teach you some valuable skills, particularly related to data structures and algorithms (DSA).
But here’s the thing… these types of challenges have almost nothing to do with real-world programming jobs. So in my opinion, they have no place in real-world job screening or interviewing.
To put it succinctly:
LeetCode is to real-world programming as crossword puzzles are to real-world journalism.
I’ll happily admit, there is some overlap between the skills that LeetCode can assess, and the skills needed on-the-job (such as the ability to remember a large list of DSA patterns, and the ability to match a them to problems). But these are nowhere near the most important skills in the vast majority of programming jobs. Teamwork, clear communication, the ability to learn from peers, etc, are all far more important.
Likewise, crossword puzzles do have some overlap with the skills needed to be a successful journalist. A large vocabulary, and the ability to spell are definitely important. But they’re far less important than the ability to write coherent sentences, and even interview experts or do primary or secondary research.
So as an employer, I always advise against using HackerRank, competitive programming style tools in the screening process.
And as a candidate, I always advise to skip such companies, unless you just absolutely need a job, and those are your only options. In my experience, companies that hire with the assitance of competitive programming type tools tend to fall into one of two categories:
-
They have so many more applications than they can possibly use, that they simply need some way to filter out candidates. Competitive programming can do that. Selecting only candidates born in January would probably accomplish the same, but might not stand up to legal scrutiny.
-
Companies that don’t know any better. Probably because they’re a non-technical company who needs to hire technical people. These competitive programming companies explicitly position themself as attractive to these companies. But do you want to work for such a company?