Most upvoted comment
Most popular programming book on Reddit. rank no. 35
Where can you learn the things a CS degree teaches you, but not at a regular university? (more details inside)(r/learnprogramming)
To brush up on your algorithms consider checking out the Introduction to Algorithms by CLRS. It also touches on complexity. Another algorithms book that I personally found more accessible was Introduction to the Design and Analysis of Algorithms by Levitin
MIT has an Intro to Algorithms OpenCourseWare available online that uses CLRS. The video lectures are phenomenal.
If you want to brush up on computibility and theoretical computer science try checking out The Introduction to the Theory of Computation by Sipser. I was unable to find a free online course for this book but if you google the title you will find tons of notes from many university classes to accompany the text.
Anyway I hope some of this points you in the right direction.