Second this. I credit this book for making me the programmer I am today. Scheme is such a wonderful language having come from C/C++ before it. Of all the subjects that affected me by learning Scheme, using Scheme to implement OO as message passing opened my eyes compared to C++.
Link to a pdf of the book: https://web.mit.edu/alexmv/6.037/sicp.pdf