My Data Structures and Algorithms Study Method
Tags: beginners, dsa, leetcode, programming
Published: 2023-10-18 00:59:48

Cracking the Coding Interview? LeetCode? NeetCode? You’ve probably heard of them all if you’re preparing for a technical interview. However, most people I see are approaching interview prep the wrong way (or at least inefficiently). Data structures and algorithms (DSA) are often touted as the most challenging part of computer science, but, like everything else, it’s manageable with the right plan of attack.

I based my process on Josh Madakor’s study process, as shown in [this video](https://www.youtube.com/watch?v=wVOU-oLOGuk) from 4:37-13:32. I made some slight modifications that I feel work better for me. You are free to do so as well.

## Resources
I recommend several resources, some free and some paid. The paid resources are extremely well-packaged and saved me countless hours of searching for answers in incomplete tutorials. I am not sponsored by either, but I highly recommend them. Personally, I take my education seriously and am willing to pay to expedite it. It’s absolutely okay if you can’t afford the paid resources and can use others to implement this study method. However, I cannot provide any recommendations as I did not use them.

### Free Resources
* [Anki](https://apps.ankiweb.net/)
* [LeetCode](https://leetcode.com/)
* [NeetCode](https://neetcode.io/)

### Paid Resources
* Code with Mosh's [Ultimate DSA Bundle](https://codewithmosh.com/p/data-structures-algorithms) ($30)
* [A Common-Sense Guide to Data Structures and Algorithms, Second Edition](https://pragprog.com/titles/jwdsal2/a-common-sense-guide-to-data-structures-and-algorithms-second-edition/) ($30)

## Process
First, create an Anki deck to study DSA problems in smart intervals. I won’t describe Anki in this article, but I _highly_ recommend it for effective studying. Next, begin learning DSA and solving interview problems as you go. I recommend going through the Code with Mosh tutorial in order, reading the relevant chapters in the Common-Sense book, implementing the data structure, and solving easy problems associated with it on the NeetCode 150. Each data structure, algorithm, and problem should be made into an Anki card and studied.

Try to spend only a little bit of time figuring out solutions. If you give an honest effort for around 30 minutes and still can’t solve or implement something, you should look at the solution and understand it deeply. Take a break to let the concepts sink in, then try to implement it blindly. Once you can, you will be ready to add it to your Anki deck.

The goal is _not_ to memorize the problems and solutions. Instead, you will be building an understanding of when to use which data structure and/or algorithm to solve a given problem. By practicing with Anki, you will develop an intuition for applying what you’ve learned and significantly increase your ability to solve new DSA problems.

Once you have learned all the data structures and completed all the easy problems, begin tackling the mediums. Once you’ve mastered the mediums, do the same with the hards. Keep up to date on your Anki deck to keep the problems fresh in your mind. You don’t need to complete all 150 to feel ready for interviews. In fact, you will likely never feel completely prepared for interviewing. However, each problem, data structure, and algorithm you implement is one step closer to getting your dream job.

### Too Long; Didn't Read
1. Learn DSA and solve problems as you go
2. Add the problems to your Anki deck and solve them at the specified intervals

### Stay the Course
Studying DSA is not the most entertaining thing, and there are a million other things most people would rather do. However, it is absolutely worth your time as it massively improves your chances of landing a job or getting a new one. Remember your why as you study, and don’t lose sight of your goals.

## Summary
DSA is a beast to learn, but with the approach outlined in this article, it is absolutely doable. With a couple of free and paid resources, time, and willingness to learn, you will grok DSA and dramatically improve your performance in the technical round of your dream job’s interview. Good luck and happy LeetCoding!