13 RESOURCES to learn DATA STRUCTURES and ALGORITHMS

Shares

In my last post, The BEST way to learn Data Structures and Algorithms, I provided some practical advice, guidance and, RESOURCES to help you learn this challenging topic. Well, I am back to expand on those resources. I want to ensure that you have awesome resources at your figure tips to really help you get your head around this topic.

These resources are in no particular order. However, I have divided them into 3 categories; “websites”, “books”, and “courses”. The idea is to help you find what you’re looking for.

I have also tried to include resources aimed at various skill levels. So whether you’re just starting out and want to understand the basic concepts, or you’re diving deeper and need detailed implementations, there should be something for you.

Before we start, this topic DOES assume a basic knowledge of at least one programming language. You don’t need to be an expert by all means! You just need the programming basics. If you have never written code before you may want to bookmark this page and return to it later.

Courses 

1/ Udacity’s Intro to Algorithms 

I thought I’d start with this course as it provides as a great introduction and comes with the added bonus of being FREE!

As an introduction, this course will most likely be your first destination when learning this topic.

The course is written in Python, but don’t worry if you’re unfamiliar with Python. Luckily, the course takes a gradual approach, and it helps to know that Python is a very readable programming language.

To help cement your learning there are quizzes along the way to test your knowledge. After the course, you should have a practical understanding of algorithms and be ready to dive deeper.

2/ Algorithms and Data Structures by edX

Here is another brilliant FREE resource if you are looking to grasp the fundamentals of algorithms and data structures.

This course is brought to you by the good people at Microsoft, and again, it serves as an ideal introduction to the topic.

After the course, you will walk away with a sound understanding of popular algorithms and data structures.

BUT, you will also understand HOW and WHEN to use them.

Learning is great, but unless you can apply what you’ve learned, it’s not very useful. With that in mind, it’s worth mentioning that this course also sees you create an app for your final project!

Upon completion, there is an option to purchase a verified certification, but the choice is yours. If you just want the knowledge then there’s no obligation to spend any money.

3/ Data Structures and Algorithms on Udemy

If you have some basic knowledge of data structure and algorithm but want MORE! Check out this course…And if you’re a Java head, then DEFINITELY check out this course!

While it’s uses Java, it’s not a prerequisite of the course. As long as you know at least one object-oriented programming language you should be fine. So don’t be put off by the fact it mentions Java specifically.

This is a paid course on Udemy. However, if you are familiar with Udemy then you will know that they regularly have sales where courses can be discounted up to 95%! I regularly buy courses on Udemy for as little as £10.

The course covers a lot of the important stuff, such as Arrays, Linked Lists, Trees, Hash tables, Stacks, Queues, Heaps, Sort algorithms and Search algorithms. It goes through the theory but also the practical so you know how things actually work.

If you’re interested, feel free to watch the free sample videos. Of course, this is not the only data structures and algorithms course on Udemy. However, for me, this was a stand-out course.

4/ Coursera’s Data Structures and Algorithms Specialization

This course it’s arguably the meatiest on this list! It’s not just ONE COURSE, it’s, in fact, a SERIES OF COURSES!

However, before I go any further, you should know that this is another paid course. One which is a bit more expensive than the previous Udemy option.

If you’re interested it £36 a month (or equivalent). But as I say, this is a meaty course.

At present, the whole thing is actually made up of 6 courses, which cover various topics that go from introductory to advanced stuff. And it’s not all theory, there are problems to solve and projects to make. Cool projects at that. Just take a look for yourself.

Opinions will vary, and you may think this is quite a pricey course, but I am sure you will agree that the course looks very comprehensive. Plus, you also get a certification as well, which you can add to your CV and LinkedIn.

If you are considering this course they have a 7-day free trial where you can test the water. But if money is an issue there are other resources on this list.

Websites 

5/ Tutsplus.com

EnvatoTuts+ has a number of “How to Tutorials” on different programming topics. Including this series of posts titled ‘Data Structures Succinctly’.

Just as the title suggests, these posts aim to explain the basic concepts of data structures and algorithms, SUCCINCTLY.

While these posts won’t make you an expert, they do serve as a very useful introduction to things like Linked Lists, Binary Search Trees, and Sorting Algorithms.

Examples are in Java, but the simplicity of the posts do still make the information easy to grasp, and serve the purpose of a succinct overview.

6/ Geeksforgeeks.org

Geeks for geeks is another one to bookmark if you’re just starting out with data structures.

I really like it, and personally, I think it’s a great reference site. It does very well at explaining a number data structures and algorithms in a readable way (what I call noob proof).

There’s nothing worse than a confusing website which makes everything so complex!

The website has a series of tutorials on various data structure and algorithm topics, and you can either go through them one by one or use the navigation menu to pick your topics of interest.

Luckily, this website is full of diagrams, videos, and heavily commented examples so you can really understand what’s being taught. And the great thing with these examples are they’re available in Python, Java and C/C++.

On a final note, there are also quizzes to test your knowledge. Plus a section to help you prepare for an interview.

7/ VisuAlgo.net 

If you like visuals, then you ‘ll love VisuAlgo.

This website is full of amazing interactive animations to help you understand how these structures are formed, and how various algorithms work.

Data structures are quite abstract in nature, which means they can be very hard to grasp without visual representation.

Without this visual element, you may find yourself doing mental gymnastics in an attempt to understand what’s going on!

You can fully interact with the animations, see the code that is playing out, and if need be, pause and rewind the animation to see the finer details. I’d recommend playing around with this website to really experience how it works.

Then when you feel comfortable you can move on to there quiz sections.

8/ Tutorialspoint.com

Tutorialspoint has a great introductory tutorial on data structures and algorithms for the budding young C programmer. Complete with code examples and interactive terminals to try out the code.

While this tutorial is clearly aimed at those who know C, it doesn’t mean its useless for everyone else.

I found the explanations are simple enough to be universally understood. Even if you don’t know C, you should be able to walk away knowing the fundamental concepts of a Binary Search.

You may even have some fun trying to convert the code to your language of choice. After all, that is the best way to learn.

Books

9/ Introduction to Algorithms by Thomas H. Cormen , Charles E. Leiserson, Ronald L. Rivest, Clifford Stein

Everyone has to start somewhere, and it helps to have a good introduction. Having a solid foundation is very important after all, which is why “Introductions to Algorithms” is a valuable book for any beginner.

This book has been designed to be both comprehensive and accessible to programmers of all levels. So while this book is branded as an introduction, it still covers everything you would need to know in detail.

Examples are written in plain English and pseudocode, which mean you don’t have to worry about programming language specifics. I am sure if you’re a beginner, that’s music to your ears!

Simply, this is the ideal book for your first foray into data structures and algorithms.

10/ The Algorithm Design Manual by Steven S Skiena

Sometimes it would be nice to have a manual for life. But at least we have a manual for designing algorithms!

If this is a subject you struggle with then this book is a recommended read thanks to its beginner-friendly approach.

The book is broken down into two parts, with the first providing practical advice and instruction when it comes to designing and analyzing algorithms. And the second part is filled with resources and reference catalog of common algorithms.

There is also a series of self-titled “war stories” that depict practical experiences of real-world applications. Having these practical examples are a nice touch, which help you see how this knowledge applies to the real world.

11/ Programming Pearls by Jon Bentley

Programming Pearls is somewhat of a golden oldie and regularly cited as a programming classic that has stood the test of time. So it felt only right to include it on this list.

It’s packed full of problems to work through and solve, which will aid the development of your problem-solving skills.

While this is a classic, you will also be happy to know that the second edition has been updated. So it includes modern programming methods and environments. Plus new examples.

This is an ideal book for new programmers, and it’s charm lies in helping you become a better problem solver. It educates it’s readers in fundamental algorithm design principles and practical programming techniques.

12/ Algorithms by Robert Sedgewick, Kevin Wayne

Here is another acclaimed classic book which is mentioned a lot in the academic community.

Java programmers will find themselves at home with the latest edition as it’s example are written in Java. Understandably for those unfamiliar with Java, there is a slight learning curve.

Along with the book, there is an accompanying website, which includes exercises, further learning materials and even links to Roberts Sedgewick’s course on Coursera.

So, all in all, there is a wealth of information available to the reader.

While this is a great book I get the impression it’s aimed more at the intermediate level programmer, rather than complete beginner. But it would defiantly be one to come back to.

13/ Cracking the Coding Interview by Gayle Laakmann McDowell

I will admit that this choice is a bit of a wild card, as the aim of this book is to help you “crack the coding interview”, rather than teach you all the in’s an out’s of data structures and algorithms.

It does cover this topic but in the context of a coding interview question, which is actually why I included it on this list.

One reason you may be learning this stuff is to land your dream job at a big tech company. If that’s the case why not make it as practical as possible.

The latest edition if full of 189 real-world practical examples of coding interview questions. Giving you ample opportunity to practice and master these types of questions.

This book also provides great advice, great insight, and lets you know what to expect from the whole ordeal.

Feature image designed by Freepik

Sharing is caring!

About the Author Owen

Creator of Code Dad, father and self-taught programmer. My mission is to balance life, work, family, all while learning to code, and hopefully help others who want to do the same.

follow me on: