Last Thursday after a great discussion at Cafe Society, I had a conversation with a man who currently works at Etrade about technology and about learning to program.
Had I known about this series of open books, this would be what I suggested to him to start with. Three books, one for Java, Python, and C++ all freely available and open (under the GNU license) with rich content about how to learn to program and "think" like a computer scientist.
This is nearly my exact suggestion to him - before he got focused on learning a particular technology or a particular programming language and toolkit, he should first take a class that would teach him how to "think" like a programmer. I'd suggest to him that he look for a class that used one of these books.