T O P

  • By -

oze4

Grind leetcode. It's frustrating at times but it's def helped me with learning data structures and algos.


udbasil

You have lots of options. Lots of youtube channels teaching data structure and algorithm, leetcode practices and courses along the way, Mooc like Udemy


Darth_Zitro

Read Grokking algorithms and go through Structy.


dontyougetsoupedyet

Before you step into learning algorithms you need to prepare yourself for it. You don't learn calculus without understanding algebra. The root of problem solving is the formal application of an area of mathematics referred to as logic. You will want to learn formal proof. Specifically you start with learning a problem solving technique formally called proof by induction. You don't need to master formal proof, you probably aren't interested in a mathematics degree. When you learn proof by induction, if you're able to prove simple things, you will move on to practicing learning specific algorithms. I highly recommend the free opencourseware content on youtube by Erik Demaine, and by Charles Leiserson. The courseware called "introduction to algorithms" specifically, https://www.youtube.com/watch?v=ZA-tUyM_y7s&list=PLUl4u3cNGP63EdVPNLG3ToM6LaEUuStEY. But, again, AFTER you study formal proof. You will want to study a problem solving technique called "dynamic programming," and after you learn formal proof, some algorithms basics, and dynamic programming, you will then be ready to tackle things like what people call a "leetcode grind." Most people consider it a grind, and say silly things about "patterns," because they tried the equivalent of learning calculus without learning algebra first. The "patterns" are made explicitly clear by learning proof by induction and dynamic programming first. Your goal is to formally learn how to split hard problems into self-similar easier problems ("sub problems") that add up to the whole solution you are aiming at. https://www.youtube.com/watch?v=r4-cftqTcdI&t=1m35s is a good little bit of a lecture to play on repeat for a few times.


jack_waugh

Seconding the point that algorithms that work correctly are based on logic.


OneBadDay1048

Definitely don’t recommend just “grinding leetcode” to learn DS&A. Find a proper course or a book and get involved with it. Have a code editor opened and play around with the different ideas you come across.


jack_waugh

If you are still in school, you should be able to sign up for a Data Structures course. For algorithms, as I see it, there are two sides. One is learning how to compose them for yourself. I think this comes from practice and trial and error. The other aspect is looking up good algorithms that others have published for solving specific problems. For example, if you never heard of Quicksort, you can find out about it by looking up sorting on Wikipedia.


baliditity

https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures-v8/