I've been programming for 10 years and have done many free lance projects. I know basic mathematics (what an engineering student would know) but I want to move into more theoretical fields for a hobby. I am devoting 4 months of my summer this year to studying mathematics. I will be studying for 8 hours a day on average. My goal is to become better at programming algorithms, and the only thing that stands in my way is mathematics. (I already know how to program in general, i.e. object oriented, functional, procedural, basic algorithms & data structures, knowledge of many libraries and frameworks and other necessary topics like multithreading, debugging, etc etc) My plan for the summer is as follows. I would like suggestions from members here on how I can best use my short time. -Read How to prove it: a structured approach <--- 100% -Read spivak calculus <-- will probably skip some of late chapters, after integration finishes -Read a book on probability/combinatorics <--- 100% -Read Introduction to Algorithms <-- probably wont have time to finish 100% of this book Any advice for me, recommendations, tips, alternatives?