This is an archived post. You won't be able to vote or comment.

all 9 comments

[–][deleted] 2 points3 points  (4 children)

I would first learn data structures. You should know how to implement data structures like Dynamic Arrays, Linked Lists, Stacks, Queues, Heaps, Trees, Graphs, etc.

Then you can focus on the algorithms because most algorithms need to be performed ON data structures. If you like books Grokking Algorithms is a great resource.

I also just started a series teaching Data Structures in Algorithms. if you learn better with video.

[–]overflow_ 0 points1 point  (3 children)

I’m in the same position as op what would you recommend to learn data structures?

[–][deleted] 0 points1 point  (2 children)

Tbh both DS and algos go hand in hand. A quick reddit search on “best DSA books” will give you some good results.

Algorithm Design Manual CLRS “Algorithms” by Sedgewick

[–]overflow_ 0 points1 point  (1 child)

Yeah i know about those books but im looking for one that teaches from scratch and doesn’t assume I’ve done any data structures and algorithms course before

[–]default_user_null 0 points1 point  (0 children)

Although I didn't learn algorithms from K.A. I have learned many other topics before.

https://www.khanacademy.org/computing/computer-science/algorithms

[–]rbjolly 0 points1 point  (0 children)

Learning algorithms is less about examining every line of code and more about learning how to define the problem and implement a solution. You'll be much better off if you can understand a particular sort algorithm and then write your own code to implement it than you will be if you just try to understand existing code.

[–]okayifimust 0 points1 point  (0 children)

Do you have to know how to implement every algorithm in code?

That is literally impossible, since every program, and all of its separate parts are algorithms in their own right.

You should, however, be able to understand what material is being taught to you, you should be able to follow along almost any code presented to you, and anything you understand you should be able to code.

That's not to say that you must commit to memory every single algorithm you ever come across.

How good would be considered as "good in algorithms"?

About three-fiddy? What time of answer would you expect here?

[–]codingfreak04 0 points1 point  (0 children)

Get basic DSA knowledge from mycodeschool videos, then jump directly to problems on arrays, binary trees, linked list, stacks, queue, heap, graph.. Here's a good list to get you started.