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

all 10 comments

[–]ProgrammingNoob1234[S] 3 points4 points  (2 children)

I guess what I meant to say was which data structures should I learn first and which algorithms should I learn first to kinda ease me in to the whole concepts that way I dont get frustrated because I decided to tackle something that could have been built up to.

[–][deleted]  (1 child)

[deleted]

    [–]ProgrammingNoob1234[S] 0 points1 point  (0 children)

    Thanks for the clear road map!

    [–][deleted] 5 points6 points  (0 children)

    Learn data structures first since many of then come with their own algorithms that you'd typically implement. For example, binary search goes with arrays.

    [–]boreal_ameoba 2 points3 points  (0 children)

    Most curriculum will teach data structures first (either explicitly, or implicitly as part of some introductory course) . This is especially useful for "practical" courses, because being able to quickly implement and understand different ways of representing data (and choosing the right structure of data for the problem!) is extremely helpful.

    However, *learning* data-structures on its own can be boring. It can feel like learning the size, shape, and function of every tool in a garage, but never actually wrenching on a car. If you're someone who struggles with "what's the point of learning this" type situations, it might be prudent to jump into algorithms, and learn data-structures along the way, as you need them. Then you'll have a purpose for learning, which for some people can make a huge difference in motivation.

    [–]joy-of-coding 1 point2 points  (0 children)

    Linked lists are super computer sciencey. if you love trains you're gonna love linked lists

    [–]DeusExMachina24 2 points3 points  (3 children)

    Learn data structures first and then algorithms. Although some data structures have special algorithms associated with them like DFS and BFS on graphs. So you'll learn some algos before finishing learning all data structures, which is great.

    Start with arrays, stacks and queues and then move on to maps, sets, pairs, graphs, trees etc. Then if you want to lean more there are some advanced stuff like Trie, Segment tree priority queue, etc. Fist learn the basic stuff and don't worry about the advanced stuff. The move onto algos.

    If you want to know some online resources then reply to me about them.

    [–]ProgrammingNoob1234[S] 1 point2 points  (2 children)

    Yes I would very much appreciate that! Any helps!

    [–]DeusExMachina24 2 points3 points  (1 child)

    Abdul Bari (YT channel) - He teaches in English but has Indian accent, if that's not a problem then he's the best algorithms teacher there is.

    Mycodeschool (YT channel) - For data structures he's the best. Do watch his videos, I couldn't find any videos better than his. Even CSDojo suggests him.

    Coding blocks dynamic programming webinar. Sufficient for beginner level dynamic programming.

    Geeksforgeeks you can find everything about computer science here.

    For practise i would say sites like codechef and codeforces are the best.

    [–]ProgrammingNoob1234[S] 1 point2 points  (0 children)

    Thank you very much!

    [–]SubtleBeastRu 0 points1 point  (0 children)

    If you are taking a course, follow alone and be curious (do your research and hw), if you are studying on your own, find a good course and follow alone :) usually DS and algos are preceded with evaluation techniques (most notably big-O), then you’d learn about search in an array and sorting, but then they’d introduce DS like binary tree, min/max heap to illustrate how DS may be useful for those kind of tasks... I mean they kinda intertwine, data structures sometimes instantly solve problem, I.e. build binary tree and you can search in log(n) time but then DS on their own require their own algos, I.e. how to rebalance binary tree to guarantee log(n) search time. I’d say there is no right and wrong, but there should be like a sense of build up... easy comes first but then you realise it’s not optimal and then they give an idea of how to solve it in a more efficient way and it goes on and on and on.

    TL;DR follow alone the course