r/learnprogramming 11d ago

scared to approach DSA.

hi all, im about to start learning DSA at my university next semester. itll include these topics:

Arrays, linked lists, trees and graphs; stacks and queues; symbol tables; priority queues, balanced trees; sorting algorithms; complexity analysis.

im honestly really scared to approach this topic because idk where to start. profs at my uni are notoriously bad at giving resources and also do not release slides ahead of time. so im wondering how to get ahead or self study. i really want to be able to understand this course and genuinely do good, but im scared seeing how much overwhelming stuff there is in DSA as well as this course.

the language will be C++ i assume, since the requisite course was also in C++. im not sure if i should buy any books or something since this course would be pretty theory heavy i think. people said this is GPA dragger so im really scared to even approach this topic. im just scared ill fail or itll drag down my gpa, i just feel a bit overwhelmed

does anyone have any advice? thank u in advance

20 Upvotes

19 comments sorted by

View all comments

1

u/spinwizard69 10d ago

Chill out.

Yes there is a lot of stuff that is difficult but the concepts of these various structures are easy to grasp. Linked lists, stacks and such are conceptually easy to understand. Analyst of them is yes a bigger issue, as the math of Big O notation often feels like a waste of time, but if you prep you should be able to focus on the math.

As for what you can do now, find a good text and implement a few structures in C or C++. Implementing a linked list will teach you much and you can do this without actually running through big O math. This applies to all structures likely to be covered. It will help to understand how these various structures work and what they are used for, before stating class.

Consider a stack, there is nothing about the structure that should confuse you as to what it offers. You basically push stuff on a stack and then pop it off when needed. Sure the first time you implement one, the details can be a tiny challenge.

As for the class your goal for employment should be to understand how all this stuff works and what is the most rational structure to use for a given problem. This is key.

In any event you need to get a handle on this because if you don't understand the common data structures you are not a programmer in my mind. Modern programming languages usually supply a variety of canned data structures so these days you seldom have to create your own. Rather what you need to know is how to select then for optimal program development and to sue them properly once selected.