Improving Your Algorithm Knowledge with LeetCode: The Journey

Mithat Sinan Sarı
3 min readFeb 15, 2023

--

As a developer, it’s important to stay sharp and continuously improve your skills. One way to do this is to practice solving algorithm and data structure problems, such as those found on LeetCode. Not only does this help you to improve your problem-solving skills, but it also has many other benefits. However, merely solving the problems may not be enough to truly master the concepts. That’s where keeping a coding journal comes in.

A coding journal is a personal collection of notes and solutions to coding problems, often stored in a notebook or a digital file. By keeping a coding journal, you can record your thought process as you work through a problem, document your solutions, and reflect on what you’ve learned. This process can help you to better understand the concepts and to reinforce your knowledge over time.

  1. Write down your thought process: As you work through a coding problem, jot down your ideas, assumptions, and hypotheses. This will help you to organize your thoughts and to identify areas where you might be struggling.
  2. Document your solutions: Once you’ve solved a problem, write down your code and any notes or insights that you gained. This will help you to remember your solution and to compare it to other solutions in the future.
  3. Reflect on what you’ve learned: After you’ve solved a problem, take some time to reflect on what you’ve learned. This could include summarizing the key concepts, identifying common patterns or tricks, or thinking about how you could apply what you’ve learned to other problems. And spend some time to check out how other developers have solved the problem to gain new perspectives.
  4. Review your journal regularly: Make a habit of reviewing your journal regularly to reinforce your understanding of the concepts and to identify areas where you might need more practice.

Here is the GitHub repository of my coding journal. In the repo, you can find some solutions and notes that I took.

And here are some of the gains you can experience from solving algorithm problems:

  1. Improved problem-solving skills: Solving algorithm problems is an excellent way to improve your problem-solving skills. It teaches you to break down complex problems into smaller, more manageable pieces and to think critically about how to solve them.
  2. Increased familiarity with common algorithms and data structures: By solving a variety of algorithm problems, you’ll become more familiar with common algorithms and data structures, which can help you to recognize patterns and apply them to other problems.
  3. Sharpened programming skills: Solving algorithm problems requires you to write efficient and optimized code. By practicing this skill, you’ll become a better programmer overall and be able to write cleaner, more efficient code in other areas.
  4. Improved performance in technical interviews: Many technical interviews for software engineering positions involve algorithm problems. By solving these problems regularly, you’ll be better prepared for technical interviews and more confident in your abilities.

By keeping a coding journal, you can improve your algorithm knowledge in a more structured and deliberate way. You’ll be able to see your progress over time, document your solutions and thought process, and reflect on what you’ve learned. And by regularly solving algorithm problems, you’ll improve your problem-solving skills, programming skills, and performance in technical interviews. So, start practicing today and see how your skills can improve over time!

--

--