Up to your eyebrows in free Lisp textbooks

If the internet has done anything, it's got people used to the idea of getting information wherever they are, for free. There's so much available online that you could keep learning languages your whole life and never need to buy another textbook.

If the internet has done anything, it's made people used to the idea of accessing information whenever and wherever they are, for free. There have been plenty of attempts to sell information -- or it's new incarnation, intellectual property -- over the internet, but consistently the market leaders in any category are the ones willing to give it away for free.

The same is true of learning a new programming language, there's so much available online that you could keep learning more languages your whole life and never need to buy another textbook. It's not just limited to web tutorials and the like, I mean the complete text of published, university recommended textbooks, some of which are regarded as the best available in their field.

To demonstrate this with an example, I'll take the language Lisp (including it's derivatives Scheme and Common Lisp) and list the free e-books available to the community.

To many though, there's nothing quite like holding the book in your hand, or having it on your shelf in case you need it for reference (besides, nothing impresses the opposite sex like programming textbooks). Most of the list below is available to purchase in hard copy if you wish to do so -- in fact, I've got a few of them on my desk right now. Making the full text available online allows you to examine and work with a textbook first, and then later decide if you want to buy it.

First up, the most famous example on the list is the Structure and Interpretation of Computer Programs, written by two MIT professors, Hal Abelson and Gerald Jay Sussman, who use it in their introductory computing course. You can also see video of the two presenting their course in 22 parts thanks to MIT, or view the course itself through MIT's excellent OpenCourseWare program.

On the Common Lisp side, a popular and accessible book for learning Lisp, including concrete examples of where Lisp is useful, is Peter Seibel's Practical Common Lisp. Google Video also provides a video overview by the author (1 hour and 12 minutes).

Another favourite is Paul Graham's On Lisp, an advanced book dealing with some of the more complicated things you can do with Common Lisp. Not something to start with, but can be an impressive read once you've mastered one of the other texts. I'm slowly making my way through it, but it's something you digest slowly, over time, rather than all at once.

Those are the three that I've had personal experience with, but a quick browse around turned up plenty more if you're looking for something that takes a different approach. Sometimes you just need to find the book that lays things out in the right way, so it doesn't grab you straight away, try something else.

For Lisp, you can try Common Lisp: An Interactive Approach, targeted at beginning Lisp programmers, or Successful Lisp, which is aimed at working programmers in other languages as an overview of Common Lisp.

Likewise, for Scheme, there's The Scheme Programming Language, Teach Yourself Scheme in Fixnum Days and Programming Languages: Application and Interpretation. The first two are introductory Scheme texts, while the third assumes some Scheme knowledge and goes into more depth.

This is just a smattering of the resources available to you, I'm sure there are many I've left out, and also plenty that I'm not aware of. If you know of any resources like this that are available for any language, post to the blog discussion or email editor@builderau.com.au and let us know.