Hey everyone, I'm looking to dive into Data Structures and Algorithms (DSA) but I don't have a Computer Science degree. I've tried to get started, but I'm finding Algorithm Analysis particularly challenging. Some people have advised me to study Discrete Mathematics and Calculus 1 and 2 first. I'm wondering if that's really necessary and what the best approach would be for someone in my position.
4 Answers
You really don't need a CS degree for this! There are plenty of free online courses like Coursera and edX that cover the DSA fundamentals. Try focusing on project-based learning; it can really help solidify your understanding.
You definitely don't need a degree to learn DSA! I picked it up through books and classroom study before I even started my degree. These days, there are tons of online resources available, so you can learn at your own pace without needing to step into a university.
Honestly, Calculus 1 should be enough for getting started with basic DSA. My university required Calculus 2, but I didn’t use much of it in the intro course. Discrete Math isn't essential for basic DSA, but it can help when you move into design and analysis of algorithms. Plus, you'll want a bit of programming knowledge, whether it's through OOP or just learning a language like C.
If you're struggling with Algorithm Analysis, what specifically is tripping you up? As for the math background, it really comes down to how deep you want to go into the theory. For practical applications, you might not need extensive math knowledge. Discrete Math and maybe Pre-Calc should suffice, but you can get started with just the basics of DSA without stressing too much over math.

I'm only aiming to understand which algorithms are more efficient. Even if I use a calculator for the calculations, I want to grasp what the results indicate and know how to compare the efficiency of different algorithms.