Leet Code 101: How I Would Learn DSA if I Had to Start?Over

Leet Code 101: How I Would Learn DSA if I Had to Start?Over

Hi, and welcome to another week of Leet Code 101.

We are going to start with a new series, where we would walk through simple algorithms / data structures & use them to solve Leet Code problems on the fly. We would take a step-by-step approach, moving from the most basic to extremely complex data structures & algorithms.

Why DSA is Important?

Let’s face it, DSA is (almost) useless, I have met many people who told me that they have never come across a genuinely used binary tree in their 20 years of coding. If you are studying DSA because it’s going to come in handy, and you don’t work at Nasa, you will be disappointed.

It’s not About Being?Used

DSA isn’t meant to be used outside of academics, just like Calculus, the only people who use it are students, scientists & math teachers; for a CS graduate or someone with a life, it’s not something you will ever use.

You can come across any great engineer, and he would know DSA, even if he doesn’t use it. He needs it to think outside of the box, sharpen his problem-solving skills, think about what’s happening under the hood; he never used it, and still he has used it every day since he started.

DSA isn’t about a tool you can use; it’s like a training you can use to sharpen your mind & prepare the actual tools you will use.

Let me warn you though, DSA doesn’t translate to getting a job. Your chances are much better if you practice basic Leet Code & make a lot of friends instead.

How to Learn?DSA?

The simplest way to learn DSA, is to start; and don’t stop until you can’t anymore.

If you start learning DSA, you should aim for at least 2–3 years of hardcore programming (not 2–3 months). Practicing the same structure hundreds of times and screaming at a screen full of gibberish in front of your mother.

A Basic Journey in The Field of?DSA

Your first 2–3 months will seem wasted, you understood nothing & you can’t solve a single problem given by the instructors. However, this is how you learn everything; keep going for a few months until the breakthrough happens.

For your 4–6th month, you should aim for a lot of Leet Code, try to solve 20–30 problems every month & practice everything you can find, not just specific DSA questions.

For the next 4 months or so, you should focus on reviewing all introductory concepts again. I would recommend going through “Introduction to Data Structures & Algorithms” and implementing every algorithm before looking at the code.

After that, you should focus on advanced concepts like Graph Theory & dynamic programming (Free Code Camp is a good choice at the moment) & solidify everything before you move on.

Beyond this step, you don’t really need a roadmap, but I would recommend moving on & just getting a life (Why did you learned DSA in the first place?)

A Visual Roadmap for DSA?Learners

Here’s a simple roadmap you can take to learn DSA. I have made it compact & used specific resources instead of topics. I believe this would be much easier to learn for beginners & much more useful for advanced practitioners.

You can also access the same roadmap using the following URL: DSA Learning Roadmap [Infographic]

Note: Frontend Masters is paid, but you can use GitHub Student Developer Pack to get a free six-month subscription, more than enough to complete these courses.

You can also access “Introduction to Algorithms” by downloading an E-book from here: IntroductionToAlgorithms/Introduction.to.Algorithms.4th.pdf at main · GenoWong/IntroductionToAlgorithms · GitHub

Note 2: If GitHub Student Developer Pack doesn’t work for you, try direct downloads, but it’s not recommended since they can become outdated or break your computer fairly easily. Introduction To Computer Science: https://drive.google.com/drive/folders/14KfcsfbKa9qfNJe2QA8lUP6OgcELyHVH

The Last Algorithms Course You Will Ever Need: https://forcoder.net/last-algorithms-course-need/

Practical Problem-Solving with JavaScript (older version published as “Thinking in Algorithms”: https://drive.google.com/file/d/1hy-lA4P0eo5MbRDGX2FcAQpk28HN20kU/view?usp=sharing

Conclusion

And that’s it, you have a complete roadmap of how I would learn DSA if I had to start over. The next articles would start with specific algorithms in DSA.

About Leet Code?101

Leet Code 101 is a free, open knowledge hub. We’re obsessed with making learning free and easy, so we’ve gathered all the good stuff from around the globe and put it in one place. No paywalls, no complicated jargon?—?just pure, unadulterated learning goodness. Because knowledge is power, and sharing is caring (and way more fun than hoarding)

要查看或添加评论,请登录

Faheem Anis的更多文章

社区洞察

其他会员也浏览了