In the winter of 2015, I was working as a Software Engineer at Microsoft and looking for my next Software Engineering job, albeit with little success. I remember expressing my frustration to a friend over a velvety Stout beer at a funky bar in Seattle’s Ballard neighborhood on a cold, rainy November night. I remember his words clearly: https://zenodo.org/communities/kimetsu-online-24/?page=1&size=20
“So, there is this platform which sort of lets you game the System”
That’s when I first heard about LeetCode- a programming platform which has now become the staple for coding interview preparation. The platform consists of interview style coding questions with an integrated, online IDE which lets you submit and verify the correctness of your solution. It also contains a stack-overflow style discussion forum which lets you post and upvote/downvote solutions to the problems.
Today, if you are interview prepping, you’re going to have to spend some late evenings practicing interview problems on LeetCode. In the words of one of my good friends and colleague:
LeetCode is the great equalizer. Whether you are interviewing for an internship, as a fresh grad just out of college, or as a seasoned Engineering Manager, you’d better be LeetCoding.
I crawled home from the bar that November evening and started practicing problems on LeetCode. Over the next few weeks I practiced several dozen problems. Practicing made a huge difference that time and I eventually landed and accepted an offer from Google in 2016.
I’d never seen anything like LeetCode before. Platforms I’d been using for interview preparation before LeetCode had been passive — with information flowing in one direction (from the author to me). There was the quintessential interview preparation book “Cracking the Coding Interview”. Then there was CareerCup/Glassdoor which had user generated content that could be perused to find commonly asked interview questions. The main shortcomings of these platforms are:
- They don’t really prepare you for interviews because they diverge from how real-world interviews are conducted
- They are less engaging (due to a lack of a community)
- It’s harder to internalize concepts/learning due to a lack of reflection. This is because you are offered one (or zero) solution to problems which can typically be solved in many different ways.
There were several programming platforms like TopCoder that were interactive and had a browser based IDE. However, these were optimized for competitive programming where the problem description itself would span multiple pages and you’d spend half the time trying to figure out the right input/output format rather than building actual algorithms.
LeetCode recognized a need and built a platform that was interactive, was closer to how interviews were being conducted in the real world and just worked. LeetCode does its job remarkably well- the problem definitions are succinct, the community is thriving and discussion forums have high quality discussions.
Fast forward to mid 2020, and I was interviewing again. The coding interviews seemed a lot different from 2016, not only because we were in the middle of a pandemic (not the focus of this article), but also because how LeetCode had evolved as a platform.
https://zenodo.org/record/4278871#.X7TK6WgzbIV
https://demon-slayer-online.tumblr.com/
https://zenodo.org/record/4279918#.X7WrQWgzbIU
https://zenodo.org/record/4279997#.X7XTUWgzbIU
https://canvas.instructure.com/eportfolios/111105/__1080p_2020/__1080p_2020
https://zenodo.org/record/4280206#.X7X33mgzbIU
https://kimetsunoyaiba-mugenresshahen.tumblr.com/
https://zenodo.org/communities/demonslayerhd2020/?page=1&size=20
https://zenodo.org/communities/kimetsunoyaiba-mugenresshahen/?page=1&size=20
LeetCoding was a verb now, and the system which barely had 150 questions in 2016 had over a 1000 questions now, with weekly competitions, gamification (you can earn “LeetCoins” for solving problems) and even something which I’ve named the “cheating mode”, which is a compilation of interview questions that have been reportedly asked by the various companies.
Here is a screenshot of questions from the platform, showing interview questions tagged by company name: