My Tips for LeetCode Success: Learning DSA the Right Way

Practical advice from solving 400+ problems: why understanding matters more than quantity, how to avoid common pitfalls, and what tools actually help you learn data structures and algorithms effectively.

November 15, 2025

I have solved over 400 problems and this is mostly a personal reminder of tips and thoughts on solving DSA on Leetcode or any other alternative platform.

Main Goal

I am not preparing for any interview and I don’t plan to work for any big tech company. So why am I spending my time solving DSA?

Because I want to be the best I can be.

And If DSA helps me to get closer, then there’s no debate.

DSA is a fundamental to programming, like SQL, Cloud computing, Deploying, …

My opinion: Don’t listen to people who say DSA is useless. Learning it makes you a better programmer, problem solver and thinker.

Second Goal

There are rankings, competitions and daily puzzles that can lure us to waste time on solving puzzles we already understand, the easy ones, just to get higher in rankings.

Remember, your goal is to learn DSA.

To learn the ones you do not understand, the ones that are hard, frustrating, that take hours/days to comprehend.

Solving problems you already know, brings you self-satisfaction, but months later you will only find out, that you did not progress.

Use either C++ or Python

I tried various programming languages(Java, Go, PHP, JS) to solve problems, to find the most efficient one, only to find out what others said.

C++ or Python.

Other languages are either too verbose(Java) or it takes extra unnecessary steps to write loops, define vars and so on. Python makes many of those super quick, so you can focus on learning.

Your goal is to learn DSA, remember?

Use whiteboard or pen and paper

Draw, write notes, visualize step by step, explore edge cases, clean the board, try again, write code by hand, …

If there is one thing I learned from experts, it’s that they use whiteboard (or pen and paper).

At the beginnings I hurried to write code directly on computer only to find out, that I did not understand the problem.

Typing code should be a result of full understanding of the problem.

Using whiteboard is way more convenient than paper for me.

Here’s my “rusty” whiteboard :)

whiteboard

Break problem to atoms

If you think about it, your code must possess every logical step from 0 to its solution in sequence.

Therefore, every part of code can be explained, visualized, verbalised.

If you are stuck, it is probably because you cannot explain certain part of the problem.

Approach the problem as you would explain it in simple language, like you would explain it to someone else.

Understanding as a top priority

Every challenging problem brings new information, and that should be your priority.

Maybe it’s a new data structure, algorithm, mathematical equation, simplified python code, …

Your goal again is not solving the problem per se, but understanding.

Study others’ solutions in detail

Once you have successfully solved a problem, study other people’s solutions. And do it like it’s very important. Because it is.

One of the benefits of studying DSA is exploring new ways of thinking(many times elegant and efficient), not reaffirming your own understanding. Focus on approaches that differ from yours.

Do this no matter how trivial the problem is.

Broad understanding is key here. It will increase the options how you solve next similar patterns. So you can choose from multiple ideas, instead of one.

Final Thoughts

Learning DSA takes time. Some problems will frustrate you for days. That’s the point.

Use the right tools, break problems down, study others’ solutions. Progress will come, even if it’s slow. But it will stick for long term.

Stay patient and keep learning.

Good luck!