VIJAY MATHEW

home > books

Structure and Interpretation of Computer Programs by Abelson, Sussman, and Sussman.
A classic published in 1984 by the MIT Press. Using a dialect of the Lisp programming language known as Scheme, the book explains core computer science concepts, including abstraction, recursion, interpreters and metalinguistic abstraction, and teaches modular programming.

The Art of Computer Programming by Donald E. Knuth.
A comprehensive monograph that covers many kinds of programming algorithms and their analysis. American Scientist has included this work among the best twelve physical-science monographs of the twentieth century, and within the computer science community it is regarded as the first and still the best comprehensive treatment of its subject.

I often find myself going back to read portions or even whole of these books, and there is always something new to learn!

A few more favorites:
Lisp in Small Pieces by Christian Queinnec
On Lisp by Paul Graham
Paradigms of Artificial Intelligence Programming by Peter Norvig
Essentials of Programming Languages by Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes
Programming Languages: Application and Interpretation by Shriram Krishnamurthi
How to Design Programs by Matthias Felleisen, Robert Bruce Findler, Matthew Flatt and Shriram Krishnamurthi
The C Programming Language by Brian W. Kernighan and Dennis M. Ritchie

Other books that I found useful:
The Algorithm Design Manual by Steven Skiena
The C++ Programming Language by Bjarne Stroustrup
Programming Collective Intelligence by Toby Segaran