How to use Leetcode more efficiently
Stop wasting your time solving lc problems at random and add some structure to your studying
tldr; Stop doing random LC problems and make a study plan. Layout all of the topics, rate yourself from 1-10, solve problems until each topic is at a 9 or a 10. Then teach
Too many people are doing random Leetcode problems without any framework for choosing which problem to solve. They either follow a pre-canned list of problems off Leetcode, or just pick a problem at random every day. This method might be ok to start, but you will soon need to start adding more structure to your studying if you want to grow. Everyone digests different concepts at different rates. You need a tailored study plan to use your time more efficiently.
Create a plan
It is important to select practice problems with intention, and to track yourself as you progress. Layout all of the relevant topics for your interview, from strings to DP and rate yourself 1-10 on them. Your goal is to get your self-rating in all of these topics to a 9 or 10. Example, if linked lists are rated at a 4, you should be reading up on the concept and solving problems until they are at 9 or a 10.
How to confirm you’ve mastered a concept?
Teach others! There is nothing that will help you find the gaps in your knowledge faster than teaching that concept to someone who is trying to learn. You will be forced to articulate all of the thoughts in your head, and simplify them so they are digestible. As you are explaining different concepts, and attempting to answer your student’s questions, the gaps in your knowledge will be come clear.
When you are able to teach others the ins and outs of a particular topic, you will be in a good place and can move on to mastering another topic.
When should I start doing “random” leetcode questions?
Taking on random questions has its place, after you’ve gotten the different concepts to a rating of 9 or 10. Grabbing a random question and learning how to categorize and solve it is an important skill in itself to master. The problem is that too many people are trying to skip diving deep into the fundamentals of the different topics before simulating the interview environment.
(Shoutout to Ching#4264 in the discord for raising this point)
Learn System Design
I’m actively tweeting about building LeetDesign, a massive list of interactive system design problems to help you learn system design faster.
If you are interested in the all of the lessons and wacky bugs I encounter building the product, give me a follow: https://twitter.com/DannyHabibs