Your programming roadmap
stacks, queues, graphs, arrays, linked lists
There are a variety of ways to organize and structure our data.
Consider using the apply first, study second approach with the resources below: try a problem or exercise from the Apply It section first. If you get stuck, then use a course, book, or lecture in the Reference section. Or if you’re completely new to a topic, then learn just enough and apply right away. The point is: the quicker you get to the “doing,” the better the learning. Make your learning active.
Get comfortable using a variety of data structures—such as stacks, graphs, arrays, and linked lists—by solving problems on AlgoExpert. Once you sign up for an account, you can filter problems by category, which is useful for our purposes here. That way, you can target specific data structures, like arrays, linked lists, and stacks. From there, you can take on easy, medium, hard, or very hard problems.
There’s a lot to like about this platform:
Tip: Here’s a way to enhance your problem-solving skills: solve a problem in one language. Then, solve the same problem in another. AlgoExpert allows for this, and it’s a great way to strengthen your skills.
But, as I mention elsewhere in the Pyramid, where AlgoExpert really shines is in the video explanations it provides. After you solve a problem, take time to watch, study, and work through the videos, which contain a conceptual overview of the problem and code walkthrough.
Make the learning you gain from these videos active: let a day or two pass, then re-solve the same problem using a technique or approach that you learned. This is a great way to solidify your knowledge.
LeetCode is another platform to check out. It offers a variety of quality problems, many of which are free. Create an account and filter the problems by type: "Graph," "Stack," and "Queue," and "Linked List." After you complete a problem, check out the “Discuss” tab and study the solutions of others who’ve solved the same problem.
"The most difficult thing is the decision to act, the rest is merely tenacity."
-Amelia Earhart
AlgoExpert is also useful because it offers a Data Structures Crash Course, which I recommend if you get stuck or want to take a deeper dive into a particular data structure. The Crash Course contains video lectures on several core data structures, like arrays, linked lists, and graphs. The videos nail the fundamental concepts, without making huge leaps.
Aditya Bhargava’s book, Grokking Algorithms, which I reference throughout the Pyramid, is another useful reference to keep on hand for its clear (and fun!) explanations of data structures (as well as recursion and algorithms). Bhargava makes the abstract concrete with pictures, which makes abstract content more easily accessible and retainable. The data structures Bhargava covers are sprinkled throughout this book.
Tip: Consider using Grokking Algorithms and AlgoExpert’s Data Structures Crash Course in tandem. For example, if you’re stuck on linked lists, then start with Grokking Algorithms to get a high-level understanding of them. Then, check out the Data Structures Crash Course for another perspective.
Although Interview Cake isn’t free, their “Glossary” is. It contains explanations of algorithms and data structures. Click "Glossary" at the top of Interview Cake's website, and a drop-down list of algorithms and data structures will appear. Click on a topic from the list to get an explanation. Plus, LeetCode’s Learn offers free free tutorials and problems that’ll help you learn data structures.