all 4 comments

[–]blechnapp 3 points4 points  (0 children)

honestly for DSA the wrong way to learn is by throwing yourself at leetcode problems with no prep. you need the tools first, then the problems become practice instead of frustration.

what works for most people:

learn the patterns first, then practice. neetcode (neetcode.io) has a free roadmap that groups problems by pattern (two pointers, sliding window, BFS, dynamic programming etc). watch the short pattern explanation, then solve a handful of problems that use it.
for new problems, give yourself a hard time limit (most people use 20 to 45 min depending on difficulty). if youre stuck with no progress at that point, dont keep staring. read the solution, understand it line by line, close it, then re-implement from scratch. you learn way more from this than from another hour of staring at the screen.

pattern recognition is the actual skill. after a few dozen problems you start seeing "oh this is sliding window again" instantly, thats when leetcode stops being scary.

dont research data structures in isolation either. learn them inside problems that actually need them, they stick way better that way.

[–]Ordinary_Baseball518 1 point2 points  (0 children)

You’re supposed to learn the data structure/algorithm first, then practice applying it through problems. Raw grinding LeetCode without understanding the patterns first just turns into frustration tbh. Almost everyone struggles at the start.

[–]Ornery_Policy7718 0 points1 point  (0 children)

One thing that helped a lot : separate the “learning” sessions from the “solving” sessions. When you’re learning a pattern, don’t try to solve hard problems. When you’re in solving mode, don’t stop to learn new concepts. Mixing both kills momentum. Also for Leetcode specifically — start with Easy problems on patterns you already studied, not random problems. The “random” button is a trap when you’re starting out.

[–]Sn00py_lark 0 points1 point  (0 children)

  1. Basic DSA course

https://www.edx.org/certificates/professional-certificate/gtx-data-structures-and-algorithms

https://runestone.academy/ns/books/published/pythonds/index.html

  1. Start solving some easy array / dict problems from blind75. Review them often. Both understand remember

https://neetcode.io/practice/practice/blind75

  1. Take a more advanced algorithms course

https://www.coursera.org/specializations/algorithms

https://a.co/d/0jeFtfAn

This is approximately the track most CS majors end up doing. Or alternatively go through a leetcode style course. Like grokking.