Data Structures and Algorithms is a very dense field of study. Companies such as Google and Amazon include solving problems in this area as a large part of their application processes. As a web developer, I don’t think it’s as important to know, but I enjoy learning about it. In this article, I share the resources I have used.
Assumed knowledge
All the resources below assume basic coding skills and some assume basic knowledge of JavaScript, Python and/or JavaScript. If you feel you need to brush up on these skills, I would recommend:
- Learn how to code with these resources
- Learn Java with these resources
- Learn JavaScript with these resources
Resources
Algorithms - Khan Academy
I discovered this course a little bit later, but it would have been a great place to start because it is very beginner-friendly.
- Language: JavaScript
- Type: Course with exercises
Intro to Data Structures and Algorithms - Udacity
A nice place to start. The course goes through the most common data structures and algorithms and also demonstrates a mock interview.
- Language: Python
- Type: Video course with exercises
Cracking the Coding Interview - Gayle Laakmann McDowell
A practical guide to data structures and algorithms. This book has so much content, which can be overwhelming, but I found it useful and enjoyable. Examples and solutions are in Java, but there are community solutions in other languages as well.
- Language: Java
- Type: Book
LeetCode
Great for practice with varying levels of difficulty. Almost all problems have an official solution in Java, but there are also community solutions in other languages. You can also compare the runtime and memory with other submissions. However, I found this to be inconsistent sometimes. Nevertheless, I compared this website with a lot of similar ones and liked it the most.
- Language: Many
- Type: Exercises
Exploring the Two-Sum Interview Question in JavaScript - Nick Scialli
An in-depth article that looks at a common interview question solved using JavaScript.
- Language: JavaScript
- Type: Article
Other helpful resources
Other resources I haven’t used yet
Final Thoughts
Learning Data Structures and Algorithms can be quite challenging. LeetCode categorises their problems as easy, medium and hard but I haven’t even attempted a hard problem yet. I was surprised how much there is to learn in this space and how much you need to know to get a job at one of the big tech companies. However, I do get the impression it is only a matter of practice, and there are unlimited ways of doing that.