In the discussions I've had with a few engineers recently I realized that everyone comes to learning data structures and algorithms (DSA) differently. For example, for those of us who are self-taught we have to go out of our want to learn this stuff. If you go to school for CS you likely took a course on them. I have spent thousands of dollars trying to find a shortcut because I didn't want to put the work in. I can tell you that even after buying some of the top courses, books, subscriptions, etc. there is no substitute for putting in the work. However, you can still work smarter so that it won't feel like an endless grind. The way to do that is to identify and learn the common patterns to the solutions to DSA problems. Also, there are some patterns that give you more for your learning time. I've seen extensive lists for DSA patterns. Many of them are really sub-versions of other patterns. Examples include: - Sliding Window pattern is a variation of two pointers, - Backtracking is usually a variation of depth-first search - Breadth-first search is close enough to topological I'll include them There are lots of different lists to consider but I've found the ones from Algo Monster to be good enough. I have their lifetime premium subscription so I don't know how much of the data used to generate these is public so I'm just including the images. There are 12 patterns in the pie chart but that includes "misc." so I can't say how many that represents. There are 12 in the table are the ones I have stuck to for years. If you don't have a premium subscription with them I'll save you a bit of time/money. They did a bunch of analysis on LeetCode data. The data does include some of LC's premium questions. Short version, that analysis is how they concluded the values in the ROI column. The closest thing to a shortcut I've found is to work on learning the patterns in the ROI order.