How to leetcode?
Are you a fresh graduate or an expert developer, if you have not been introduced to Leetcode it can mean 2 things a) you have been in the same company for 7+ years or b) you are not targeting top tier companies. Leetcode is probably the most critical thing you can do as an SDE to land a job at any top tier companies.After training 100’s of SDE’s to get into top tech companies, I have realized that it is not about smarts but it is all about Tenacity and Leetcoding.
DONT MEMORIZE → PATTERNIZE → INTERNALIZE
Working on Leetcode and solving problems isn’t just about memorizing answers, you have to know patterns and their applications and make sure you familiarize yourself with them. Patterns are 1 level deeper than algorithms for example we all know about binary search, but how to use it to find SQRT of a given number is a pattern. There are at least a 50+ such patterns and knowing them and then internalizing them is essential for a successful outcome.
FIRST EASY → THEN MEDIUM → THEN HARD
Leetcode like most of the learning systems we encounter, you are better off to start with the easy problems first. These problems are like prerequisites for you to be familiar with basic problems and apply optimal solutions. Try the easiest problems and have an objective to be successful in your first submission. It is not helpful to click on “run” from time to time. Think through all the codes and do not work hastily so you could easily remember every step you went through.
Starting on easy, then to medium, then trying hard is a way for you to have a smooth transition and you won’t feel frustrated or disheartened. Medium problems are there to help you see through each problems. Sometimes, there are hints within the problems so you have to carefully read each word of the problem statements. Once you are comfortable in seeing through problems, you can move to more imposing problems. Learning the right directions before solving hard problems in Leetcode is essential since time limit is not important in this stage. Make sure you understand every single part of the solution who knows if you’re going to encounter the same problem again. If you’re not struggling, you’re just wasting time. Once you are comfortable with the stress in solving these problems, try to solve harder problems. Your brain adjusts to the stress and gets stronger.
not 1000 BUT SMARTLY SELECTED 150 OR EVEN 50!
Leetcode is a massive platform with more than 1000+ questions and it is not advisable to dive through all these questions. It is important to select a few based on the organizational hiring bar .After studying various interviews and average software engineers,I prepared an exclusive Trello board that not only cover all the required topics, but also enough questions to master a certain topic. The system track’s your progress and at the same time educates you about the various patterns in the question. In my next blog I will share why I selected these questions, what are these patterns and how much practice you need to master them.
Don’t Randomize BUT Metricize your preparation
You are probably very aware of , the power of data and taking decisions based on it . Data never lies. Try using that for your interview preparation as well. To give you a head start I have already categorized all the questions that are worth solving , now take that to the next level, record how much time you take to solve the question, keep track of your progress, see it from topic perspective as well as difficulty level perspective, find your gaps and then focus your energy and time on your gaps.
Leetcode Preparation Plan: http://bit.ly/leetcodeplan
Remember that everyone started from zero, but people who succeed work hard and smart.