#LeetCodeProgression #SlowLearnerSuccess #CodingTips #InterviewPrep
Are you a slow learner who has been struggling with LeetCode problems for years without any success in landing a job? Don’t worry, you’re not alone. Many people have been in your shoes, including myself. I’ve failed countless interviews despite doing hundreds of LeetCode problems. But finally, I was able to turn things around and land a job. And I’m here to share my advice on how you can do the same. 🚀
## The Bruce Lee Approach
As Bruce Lee once said, “I fear not the man who has done 1000 kicks 1 time, but the man who has done 1 kick 10000 times.” This quote holds a valuable lesson for LeetCode progression. It’s not about doing a high volume of problems once, but rather drilling the concepts and patterns into your brain through repetition and practice.
## Organize Your Approach
To make the most of your LeetCode practice, it’s essential to organize your approach in a clear and systematic manner. Here’s a step-by-step guide to help you progress effectively.
### Create a Problem List
Start by creating a massive list of LeetCode problems and categorize them by topic, such as arrays, strings, dynamic programming, graphs, and more. You can find well-organized lists on platforms like neetcode, techinterviewhandbook, or Sean Prashad’s LeetCode Patterns.
### Start with Easy Problems
Begin by working through each easy problem, aiming to solve them in 20 minutes or less. If you can’t complete a problem within the timeframe, review the solution thoroughly and make a note of it. Keep progressing through the easy problems until you can solve them confidently.
### Review and Repeat
Once you’ve completed all the easy problems, go back and re-do the ones that you needed to look at the solution for. It’s crucial to ensure that you have a strong grasp of these problems before moving on.
### Identify Patterns and Concepts
As you work through the problems, pay attention to the patterns and concepts present in each topic. Do you frequently encounter scenarios where you need to count character occurrences or set up a sliding window strategy? Understanding these patterns will help you in real coding interviews.
### Progress to Medium and Hard Problems
After mastering the easy problems, progress to the medium and hard ones using the same strategy. Give yourself more time for these problems, gradually increasing the difficulty level. Repeat this process for each topic on your list.
### Talk Aloud to Yourself
In the absence of constant mock interviews with CS friends, practice talking aloud to yourself as you solve problems. Imagine yourself in a real interview scenario, with the interviewer closely observing your thought process. This will help you recreate the pressure and psychological circumstances of a coding interview.
### Record Yourself
Another effective strategy is to record yourself solving problems. Explain your solution as if you were teaching it to someone else. If you can articulate your thoughts clearly, you’re on the right track.
## Embrace the Process
Remember, it’s okay to get stuck on certain problems. Use it as an opportunity to review the patterns and concepts for that particular topic. Embrace the process of learning and growth, and don’t be discouraged by temporary setbacks.
By following these strategies and staying dedicated to your LeetCode progression, you’ll be better prepared to ace your coding interviews. Success may not happen overnight, especially for slow learners like us, but with consistent practice and the right approach, you can achieve your goal. I hope this advice provides valuable help to those of you who, like me, aren’t naturally wired for these performing monkey routines. Stay persistent and keep pushing forward—your efforts will pay off in the end. 🌟
Every one learns differently so while I wouldn’t do things this way, I’m not going to say it is wrong.
I would however strongly advise you also do non-topic specific study. Going into a problem knowing the topic is an advantage you’ll never get in an interview.
Do you give yourself time to figure it out? I consider it a waste of time.
If I’m not writing with a clear idea in mind within 2-3 minutes, I’ll go straight to the solutions section, trace the approach/implementation out (or actually every possible one), and make a note to come back, which I do repeatedly.
I find now I usually just know how to do problems (some Hard ones can be like wtf is this optimal solution). If I’m too familiar with a problem, I change the language from Python.
I’d anticipate doing coding tests in the language of the job — so I also practice to keep my language skills sharp in all the languages listed on my resume.
To address the “talking out loud”, I comment explicitly throughout. Sometimes I’m doing problems at the office or in a public space. I like just doing them whenever instead of deliberately setting aside time; LeetCode is just a test, it’s not the work.
Sometimes I’ll do a CodeSignal practice test or similar to truly test under timed circumstances. But not while generally learning.
It’s kind of like working out imo (not that I do much of that anymore). It’s nice to push for PR’s every so often (note the Git double entendre), but it’s too exhausting for every workout.
I’m likely to LeetCode more if I don’t strain, and I either feel accomplished because I wrote a beautiful solution or I’ve learned a new approach.
Really appreciate your post as I have found myself in a similar situation
Really like the note about talking aloud, I feel like that is where I struggle most in interviews, and practicing talking solo has really helped
Also really like your thoughts on completing similar problems, I find this really helps you hammer the concept/pattern down, just wanted to share a link to the course I am following that is basically a list of quesitions between 15-20 different patterns, its really helpful for practing similar type of problems: https://www.designgurus.io/course/grokking-the-coding-interview
Thank you again for your post, it helped give me a boost to continue the grind knowing im not the only one that struggles getting a handle on these questions!
>If you, like many of us, aren’t lucky enough to have CS friends to do constant mock interviews with
Thanks I’m gonna build a ChatGPT wrapper bot for this right away
I always use the random function. You don’t know how to solve the question when coming in and need to pick out the right methods from memory. Solved almost 1.1k questions this way and is pretty effective in improving your skills.
Stop wasting time on LC. Please work on more working of algorithm and it’s application. Doing constant LC you turn into a parrot and doing it more and more will hamper your creativity and real learning. I have refuse to do LC last 3 years and I’m gainfully employed. Even CHATGPT can solve all LC questions. We have to find better way from LC questions.
cry
100%. Memorize key leet code problems, then act like you are figuring it out.
White board interviews are completely performative. They have zero bearing on the job and 100% bearing on whether you can trick someone into believing they ‘interviewed you correctly’.
This translates to you got them to like you and feel smart for hiring you. The only metrics in a whiteboard are if you found the solution and how fast you arrived to it. The rest is all feelings and emotion.
Likability is important, but so is the ability to deliver a ChatGPT correct answer to the algorithm along with a ChatGPT explanation that sounds human.
Spaced repetition is the key.
By the way, I love Leetcode. Each question can easily increase your TC by $100-300, provided that you complete at least 2-300 questions.
Genuine question for those who played the game to get in: how happy are you at your position, excluding the ludicrous TC?
I feel the most important thing that OP its trying to point out, its about learning the pattern or mechanics of those problems, not like memorizing them deeply.
I always struggle with basic problems in LC but the link he shared its pretty useful to me and might improve the way I do coding and solve problems, thanks for sharing.
What is the point of grinding LC when you can’t even get interviews in this market? As someone with master’s and 1,5 years of experience, I can’t even get interviews…
I really like going through neetcodes solutions. His site has many problems categorized.
Everyone learns differently but this is already the most common method that is taught and isn’t particularly helpful for most slow learners.
This is great advice! Thank you.
People need to learn DSA first, CS fundamentals.
Then practice solving LC problems with DSA, CS fundamentals.
Sure, you can game the system that way but I doubt if you’ll be successful at the role if it’s taking so much effort to get good enough at LC to pass tech interviews. I’m not saying this because the LC skills themselves are useful but because you need to be a fast learner to do well at big tech.