VisuAlgo - http://visualgo.net/ - is an incredible resource for learning data structures and algorithms. I'm a visual thinker and it was so helpful in fostering connections between the code and the theory.
I would say go through a few of the algorithms there and then try coding some up yourself in your favorite language. Then, once you have a feel for the algorithm I would recommend looking for literature about the algo or whatnot and see if you are able to read the math / logic behind it.
If you want to get a really solid bottom-up grounding, you could also just read all of Feynman's book on computation. His clear and crisp lecturing style is much easier reading material than e.g. Knuth or CLRS https://www.scribd.com/doc/52657907/Feynman-Lectures-on-Comp...