Hello everyone.
I am writing this post in order to share my personal LeetCode training program and my journey in coding with LeetCode. First of all, I want to thank people who created this platform with an amazing design and interesting problems, great community, for creating an environment where there are so many amazing people who are open to help with code, problem understanding, etc.
My journey began with my friend's invite. I love solving coding problems and I always practiced using different websites. Once my friend asked me to practice and prepare for interviews together and showed me LeetCode. At the beginning, I did not clearly understand how to run and send problems because I always wrote the code from beginning till the end, while on LeetCode the main program was already built and we needed to write several functions. Then I loved this platform and began practicing everyday. My initial level was a beginner and I tried to reach the intermediate level (to be able to solve medium and hard problems). You may ask how I understood my level and the answer is that I was able to solve only easy problems and was not able to solve medium problems and that is why I thought that my level is a beginner. Then I created the rules and schedule for my training.
YES, TRAINING BECAUSE WE TRAIN OUR PROBLEM-SOLVING SKILLS, OUR BRAIN AND LOGIC !!!
RULE NUMBER 1: SET CLEAR GOALS AND CREATE YOUR TRAINING PROGRAM AND KEEP TRAINING.
Setting clear goals and creating the right training program will really help you to see the objectives of what you are going to do. I grouped many data structures and algorithms topics and created this program:
First of all, I began my journey in the mid of September and tried to practice LeetCode and combine with studies. At the beginning everything was okay but then my studies become harder and there were a lot of exams and assignments at university so that I made a pause in coding. DO NOT DO LIKE ME. TRY TO SOLVE AT LEAST ONE PROBLEM EVERYDAY AND REMEMBER THAT SMALL THINGS MAKE BIG THINGS. Later I returned to my journey and said myself that NO MATTER WHAT WILL HAPPEN I WILL SOLVE AT LEAST ONE PROBLEM EACH DAY and from 23rd of December I am solving at least one problem everyday.
RULE NUMBER 2: THEORY IS REALLY IMPORTANT AND YOU NEED TO UNDERSTAND HOW THE DATA STRUCTURES AND ALGORITHMS WORK AND HOW YOU CAN APPLY THEM.
Now let's discuss how I studied theory. I always watch lectures on YouTube and try to watch for a particular topic as many lectures as I can. Understanding what particular data structure or algorithm does is very important in applying it in solving problems. Here I think all YouTube amazing channels which I watched and continue to watch:
There's also other amazing websites that can help you on your journey.
These sources helped and continue to help me to understand all the concepts of data structures and algorithms which I listed above and I want to also thank these people for sharing their knowledge with us.
RULE NUMBER 3: AFTER LEARNING THE THEORY OF PARTICULAR TOPIC GO TO LEETCODE, OPEN THE PROBLEMS OF THAT TOPIC AND TRY TO SOLVE AS MANY PROBLEMS AS YOU CAN.
I understood on myself how practicing makes a real difference. I sorted all problems by difficulty level and clicked to "show problem tags". When I solved problems I began with easy problems and skip problems with the topics which I did not know. For example, when I solved Linked List problems I saw that one problem has also Sorting as a relevant topic and I skipped this problem and tried to solve it later when I will learn Sorting. This approach really helped me to solve problems faster and in an efficient way. I began to solve almost all easy problems, many medium problems, and some hard problems.
In conclusion, currently, I can easily solve many easy and medium problems and can solve some hard problems. I am now on Greedy topic and I am continuing with my program. I think that I reached the intermediate level and set a new goal of becoming advanced. My initial goal was to solve 100 problems, then 200, and then 300 and know I solved 313 problems in a small period I think. I want to reach 1000 solved problems and hope I will make another post when I will reach 1000 problems. I hope my personal experience and sources with which I shared will help many people in their LeetCode journey. I wish everyone to get an offer from the companies which you want and REMEMBER THAT EVERYONE CAN DO EVERYTHING, ACHIEVE EVERYTHING BY HARD WORK. KEEP PRACTICING AND BE LOYAL TO YOUR DREAMS. THANKS !