Top Five Ways to Learn Data Structures
Tags: computerscience, algorithms, datastructure
Published: 2021-07-13 21:17:56

Data Structure is a notable class that many Computer Sciences majors take in university. Learning this topic helps improve the way you store, organize and collect data in a given software or program. Also, many companies use data structures in their interview questions. I will present my top five ways to learn data structure. 

#1. YouTube
There are many different channels dedicated to teaching data structure. When I was taking Data Structure, the top two youtube channels I heavily depended on was [Michael's Sambol channel](https://www.youtube.com/c/MichaelSambol/videos) and [mycodeschool channel](https://www.youtube.com/user/mycodeschool/videos). Sadly, both of the channels haven't been updated in years. But they are still useful to this day. 

Michael does a great job explaining many of the data structures in five or fewer minutes. Also, he goes over the summary of each topic in easy-to-understand details. When I was learning red-black trees, his channel helped me a lot. It's a great channel if you don't have a lot of time in your day to learn due to work or school.

Mycodeschool has many videos focusing on the various topics in data structure. One of my favorite thing about the channel is when he writes out the algorithm to show you a step-by-step procedure of any particular data structure. Also, he has good drawings and annotates them for you to have a better understanding of what is going on.

#2. GeeksForGeeks
GeeksForGeeks have a [data structure](https://www.geeksforgeeks.org/data-structures/?ref=shm) and [algorithms](https://www.geeksforgeeks.org/fundamentals-of-algorithms/?ref=lbp) sections on their website. They go into great detail explaining how each data structure works. There are also pictures and videos attached to each article for better explanation.

In each article, there is a difficulty level of how hard the concept is. As a beginner, this is beneficial because it gives you a clear idea of what you should be currently learning. You can also lookup questions of examples of how a particular data structure is used. They give an example of the data structure code in C++, Java, Python3, and C#. I like it a lot because of this implementation. 

#3. HackerRank
 [HackerRank](https://www.hackerrank.com/dashboard) is one of the best websites for practicing implementing data structure. They give you problems based on the difficulty level you want (easy, medium, and hard). Plus, if you have a problem with a subtopic, like trees, you can select it under the subdomain. Then, you will only get problems with that particular topic. They have 8+ programming languages you can use to practice the problems. This website was recommended to me by a Computer Science master's student. 
 
#4. Coursera
 This [course](https://www.coursera.org/specializations/data-structures-algorithms#about) from UC San Diego is very similar to what I learned when I took a data structure class. It takes eight months to complete the entire specialization. Also, there are a total of six courses within it. If you need a structured schedule to help learn data structure then this is the course for you.

#5. Books
Here are the two books that I find helpful in learning data structure. 

The first book I find helpful is [Cracking the Coding Interview by Gayle McDowell](https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850). The book takes you through how a technical interview works. Also, the book outlines how each data structure works. After the explanation is done, there are problems in the book for you to practice. 

The second useful book is [Data Structures & Problem Solving Using Java 4th ed. by Mark Allen Weiss](https://www.amazon.com/Data-Structures-Problem-Solving-Using-ebook/dp/B004J4WPRO). When I took the class, this was the book used to explain data structure. Even you don't know how to program in Java, the explanation is good. Plus, I find the diagrams and codes given to be helpful with understanding the concept. 


Overall, learning data structure helps improve your skill as a programmer. You will be able to tackle difficult problems by implementing data structure. Enjoy, learning data structure!