Most upvoted comment
Most popular programming book on Reddit. rank no. 8
technical interview has shaken my confidence as a programmer; how can I learn from this?(r/learnprogramming)
What I did a few years ago after graduating from college in CS to brush up on my DS + Algs knowledge was the following:
Read the Algorithm Design Manual.
Go through some of the challenges on this interactive python algorithms website.
Practice coding simple and then more advanced algorithms on sites like Coderbyte (my site) and HackerRank which provide good explanations and solutions as well. Here’s a list of popular coding challenge websites in 2017.
Read as many algorithm explanations and code examples as you can on GeeksforGeeks.
Try and implement basic algorithms yourself like: shortest path, minimum spanning tree, DFS + BFS, tree traversals, different sorting algs, min/max heap, etc. and learn about their running times (big-o).
Aside from coding challenge sites, try and solve common coding interview questions you find online such as this list.
Eventually when you get a coding problem it will be sort of like a switch going off in your head because you will have had so much practice with different types of algorithms and data structures that you’ll be able to reduce the problem into a simpler problem you’ve done before. This is especially the case with dynamic programming problems. Once you’ve completed like 50+ DP challenges and understand how they work, you’ll be able to solve (practically) any DP problem because they’re all very similar.