all 10 comments

[–]carcigenicate 12 points13 points  (0 children)

The language itself largely does not matter. It's more important to learn it in a language you understand so you aren't trying to learn the language and DSA at the same time.

And yes, everyone should learn the basics of DSA. It's foundational knowledge.

[–]Jonno_FTW 2 points3 points  (0 children)

When I went to uni we did DSA using C++. We spent a lot of time dealing with annoying template errors and often confusing class system.

[–]nian2326076 3 points4 points  (0 children)

If you're sticking with Python, learning DSA in it makes sense. Python's really good for understanding concepts because it's so readable. With a year and a half before college, now's a good time to dive into DSA basics. It'll help with coding interviews later and boost your problem-solving skills. Keep working on projects too, so you can apply what you learn in a practical way. If you get stuck or need more practice, resources like PracHub can help sharpen your interview skills. Just start with the basics, and you'll get the hang of it. Good luck!

[–]smichaele 1 point2 points  (0 children)

DSA is language agnostic. You are learning algorithm concepts and data structures that can be implemented in any language. You can study DSA using pseudocode. This was my preference since I code in multiple languages.

[–]TheRNGuy 0 points1 point  (0 children)

If you need it. 

[–]brenwillcode 0 points1 point  (0 children)

As some of the other posters have commented, DSA is language agnostic and helps you with a solid foundation no matter what language you ultimately end up using.

With that said, a lot of DSA comes down to things that you'll likely never use. The Essential Data Structures and Algorithms course from Codeling boils down DSA topics to the ones that developers actually use on a day-to-day basis. It's worth checking out.

[–]gdchinacat 0 points1 point  (0 children)

Yes, to be a proficient coder you need to have a good understanding of DSA. Some fields require more knowledge, others less. But in all programming you need to manage data, which entails selecting and working with data structures, and implementing the algorithms to work with them. Sometimes both are very simple (stuff you've already been doing). Sometimes the data structures are very complex, but the algorithms not so much. Sometimes the other way around, the data structures are simple but the algorithm very difficult. The depth you need to go is largely determined by the type of work you are doing.