Title: Structure and Interpretation of Computer Programs
Author: Harold Abelson
License : N/A (The MIT Press)
The readers should have a good feel for the elements of style and the aesthetics of programming. They should also have command of the major techniques for controlling complexity in a large system.
This book uses Scheme – a dialect of Lisp – but it doesn’t formally teach the language. The purpose of this book is not to deal with the syntactic details of the language, but rather to get on with the real issues – figuring out what to compute, how to decompose problems into manageable parts, and how to work on those parts.