Why I both Love and Hate LeetCode

There are a few things in life I both love and hate. Let’s see …. hot weather, cold weather, working for a living, and …. LeetCode. I mean it is totally fun to push yourself and try to solve hard problems, but then the other side of me is like … well I’ve been writing code for years and 80% of this stuff is nothing like writing code in real life. I think the LeetCode platform itself is an amazing tool, and has provided both people and companies with an elegant way to showcase and practice skills. But is there too much of a good thing? Of course.

Love Hate relationship with LeetCode

So let’s start with how awesome LeetCode is and what it provides to both individuals and companies. For those who have been living under a rock for the last few years, LeetCode is an amazing tool that lets you solve problems in the browser in almost any programming language you can image. It even goes so far as to rank your solutions and test them for correctness etc.

Individual

For the individual this is an amazing tool, for persons who write code at any age or stage in their life and career. The young person can use LeetCode to practice writing code with an almost endless supply of both easy and difficult coding challenges. This is great for anyone looking to build their skills and that may not have other “projects” or “ideas” on which to practice those skills.

For the seasoned code writer LeetCode is amazing at challenging you to think. We can all get comfortable in our day to day lives. Learning comes through struggle and solving challenges that present themselves to us daily. LeetCode can offer a short cut.

It’s easy to just go find some “hard” level questions and problems and spend a few hours trying to come with a solution, or a better solution. This is a great way to push yourself to get outside your comfort zone, even learn new things, or learn things you need to learn about more!

The Business or Company

For the business or company trying to hire a programmer of some sort, it’s pretty obvious what value LeetCode provides. Sure you can have your employees writing up and figuring out problems for your perspective employees to work on. Or you could just go find a bunch of LeetCode questions to solve. It does seem like the obvious choice or way to test someone’s ability to find their way around a certain programming language.

It’s even good at testing how someone might approach a problem solving scenario, especially if the problem is on the harder end of the spectrum and you don’t even expect someone to necessarily solve it.

LeetCode definitely seems like the the path of least resistance to weeding out those who can write code to your standards (although I think that might be flawed at its base).

So what’s the problem?

The main complaint I see on social media about LeetCode is its prevalence in the interview process. And there are either lovers or haters, doesn’t seem to be many people in between.

What do the complaints look like?

  • They put people on the spot.
  • They aren’t like the real world problems.
  • You can just memorize the common questions.
  • They just don’t measure someone’s ability fully.

I understand those complaints, they many of them seem valid. But, on the other hand they also do provide value for companies that are looking for certain skills.

I mean if you just decide you want to hire people that are able and good at answering LeetCode questions … I guess you know what to expect and what you are getting?

I’m assuming most companies aren’t silly enough to think that LeetCode questions are the end-all be-all to give insight into how good a code writer someone is. But you never know, maybe they do! That’s their choice I guess.

It’s hard to argue that LeetCode questions don’t give a fairly decent, if not sizable, view into someone’s grasp of programming concepts and languages. It’s also probably a good way to get into how a person might approach solving hard problems.

It makes me wonder

All that being said it makes me wonder if the specific complaints about LeetCode aren’t just symptomatic of the greater cry against long and arduous technical interviews that go 6 or 7 rounds. Has LeetCode compounded that problem? Maybe, it’s hard to say. We has humans are known for taking intrinsically good things and overusing or abusing them.

I’m guessing this has something to do with the LeetCode and interview complaints. I would have to say that I can see both sides. If I had to sit through multiple rounds of solving LeetCode problems that didn’t really relate to the real world, I would probably start to get a sour attitude as well. But, on the flip side if you are unable to complete a simple set of LeetCode challenges that X company is asking you do, and you can’t do it, should you even want to work there in the first place?

And so the battle goes on. I don’t see too much change on the horizon when it comes to LeetCode and interviews. I’m guessing it’s going to be a fairly standard part of the process for a few years to come. Although if you have to do 7 rounds of problem solving, it might be time to bail.