I am in day 2 of programming school and am working my way through "How to Think Like a Computer Scientist" (python edition) by Downey, Elkner and Meyers. This book’s available for *free* as in free beer. It’s well written and fun to read.
Learning to think like a computer scientist is practical. In the author’s words: "The single most important skill for a computer scientist is problem solving. Problem solving means the ability to formulate problems, think creatively about solutions, and express a solution clearly and accurately."