Readings

If you are looking for a way to fill an unsightly hole on your shelf, decorate you tea table, or wrap the fish, you may want to consider computer literature. Look no further.

Algorithms and programming in general

bent tree, Ostpark, Frankfurt

Harold Abelson and Gerald Jay Sussman
"Structure and Interpretation of Computer Programs" (2nd ed.).
A must read for any software developer. An invaluable introduction to programming, touching many important subjects ranging from recursion to meta-languages, from data abstractions to object oriented programming. As a side effect you will be introduced to Scheme, used throughout the book. See also the home page.

Vincent S. Mantis and James J. Little
"The Schematics of Computation".
Not surprisingly similar in contents and style to Structure and Interpretation of Computer Programs, it's a good introduction for beginners to many aspects of programming, through the user of the Scheme language. Although my favourite is probably still the SICP, this is a well written book. It has more modern and pleasant graphics, a neater layout, and touches certain subjects in a more modern/fresh style.
Have a look at its preface as well.

Donald E. Knuth
"The Art of Computer Programming".
Does this series need any introduction? A classic about computer algorithms. Not trivial, though.

Bruce Schneier
"Applied Cryptography" (2nd ed.).
The reference book of crypto-algorithms. If you have to work with anything that has to do with security on computers, this is one of the best books. Simple and clear, doesn't require previous knowledge of the subject nor a strong mathematical background.

Peter Norvig
"Teach Yourself Programming in Ten Years".

Languages

Railsway bridget, river Main, Frankfurt

Alfred V. Aho, Brian W. Kernighan, Peter J. Weinberger
"The AWK Programming Language".
An excellent, concise introduction and reference book about the most famous stream processing tool (as in Unix pipes, not Kafka). Written by the authors of the program. For those who are wondering, AWK happens to be the grandfather of the once-famous Perl language.

Adobe Systems Incorporated
"PostScript Language Tutorial and Cookbook".
Who said PostScript is meant to be read only by printers? This is a good introduction on this clever language and, as far as I know, the only one.

Leo Brodie
"Starting Forth" (2nd ed.).
It's a very simple introduction to Forth. Sometime annoyingly simple. If you don't have any background in programming languages this may be your book. trees and grass, Ostpark, Frankfurt

Patrick H. Winston
"On to Smalltalk".
Simple introduction to Smalltalk in a style that somehow reminds the The Little Lisper. It's brief and probably doesn't explore the full language, but its simplicity will certainly appeal those who want to get a taster without investing too much time.

James O. Coplien
"Advanced C++ Programming Styles and Idioms".
This is a book about C++ patterns that predates Design Patterns. Coplien explains a lot of precious idioms and patterns you need in your daily C++ programming. My favorite book on C++. white trees, Ostpark, Frankfurt

Bruce Eckel
"Thinking in C++" (2nd ed.).
These two volumes are not just books on C++, they serve as a sort of introduction to OOP. It could be seen as a blend of many other books on C++ and OOP with a lot of extra stuff I wouldn't have included, ranging from patterns to XP (Extreme Programming). IMO, the result is a bit superficial. If you are an absolute beginner these two volumes can be a good resource, but if you want to go deeper in any of these subjects, you need to look elsewhere.

STL Tutorial and Reference Guide

Lisp & Scheme

castle, river Mosel

Daniel P. Friedman and Matthias Felleisen
"The Little Schemer" (4th ed.).
A brilliant introduction to Scheme and recursion. It has a unique style; something you need few pages to get used to. It starts slow and easy but it soon gets challenging. It's not a sterile explanation of the syntax and semantics of the Scheme language. It's mostly aimed at training your mind on the functional paradigm. A classic.

Daniel P. Friedman and Matthias Felleisen
"The Seasoned Schemer".
The sequel to The Little Schemer. If you enjoyed the first one you ought to read this.

David S. Touretzky
"Common LISP: A Gentle Introduction to Symbolic Computation".
A brilliant introduction to Lisp and some of its fundamental ideas. Unfortunately this is a title out of print. On the other hand, the author has been so kind to make it available on-line. It's really worth downloading and printing.

Kent Dybvig
"The Scheme Programming Language" (3rd ed.).
Actually I've read only the first edition and I have been impressed. If you are looking for a complete tutorial on ANSI Scheme, this is the way to go. See also the author's home page where you will find this book, as well.

Sonya E. Keene
"Object-Oriented Programming in Common LISP: A Programmers Guide to the Common Lisp Object System".
The only book, that I'm aware of, entirely dedicated to CLOS. A valuable introduction and reference book. A must have if you want to program with CLOS. Beware, this isn't an introduction to Common Lisp. trees, Ostpark, Frankfurt

Paul Graham
"ANSI Common Lisp".
From one of the most successful Lisp gurus around, a good tutorial on Common Lisp. The approach is more or less a fast description of most of the Common Lisp primitives. While I find it great, if you are looking for an introduction to Lisp I'd rather recommend Common Lisp, The Little Schemer or Structure and Interpretation of Computer Programs.

Paul Graham
"On Lisp".
The sequel to ANSI Common Lisp. Actually this is IMO the best of the two. It's a good tutorial on advanced Common Lisp programming techniques. Macros, generalised variables, continuations, logic programming, patter matching, OOP, it's all in there. It's sometimes succinct and requires you to have a background in related subjects.

Stephen Slade
"Object-Oriented Common Lisp".
The title is misleading. It's not bad and it covers almost everything about Common Lisp but, beside a chapter on OOP, there is not very much that justifies the title. I believe the title has been chosen because object-oriented was fashionable back then.

Structure and Interpretation of Computer Programs

Nick Levine and Kent M. Pitman
Common Lisp - Myths and Legends

Stuart Watt
Pride and Prejudice: Four Decades of Lisp

David B. Lamkins
Successful Lisp: How to Understand and Use Common Lisp

Erann Gat
Lisp as an Alternative to Java

David J. Cooper, Jr.
Basic Lisp Techniques

Guy L. Steele, Jr., Richard P. Gabriel
The Evolution of Lisp

Richard P. Gabriel
Lisp: Good News Bad News, How to Win Big

Java

ducks, Ostpark, Frankfurt

Arnold and Gosling
"The Java Programming Language".
The best tutorial I could find on Java at that time. It doesn't cover every aspect of the JDK and may be a bit outdated, but if you liked the K&R on C, then you like this one. It's a no-frills good introduction to Java for programmers.

Matthias Felleisen and Daniel P. Friedman
"A Little Java, A Few Patterns".
Perhaps not as good as it's predecessors, The Little Schemer and The Seasoned Schemer, but an interesting read all the same. The title suggests that this book is about patterns in Java but this is what all the other books of the series were all about, too. It covers mainly the GoF's visitor pattern providing clever variations to the theme. Compared to the Schemer books I found it a bit dull, but I guess it's difficult to do better than those.

Enterprise JavaBeans

Programming with Enterprise JavaBeans, JTS and OTS

Java Enterprise in a Nutshell

Unix

ducks, Ostpark, Frankfurt

W. Richard Stevens
"Unix Network Programming".
The Book about low level TCP/IP programming in the Unix environment. It's an excellent description of everything you need to know to program at the socket layer. Full of examples, it covers both BSD and System V.

Marshall McKusick, Keith Bostic, Michael J. Karels, John S. Quarterman
"The design and the implementation of the 4.4 BSD Operating System".
The reference book on the architecture of the BSD operating system. If you are interested in the internals of a very good Unix, written by some of its gurus, this is for you.

W. Richard Stevens
"Advanced Programming in the Unix Environment".
A must-have for every serious Unix programmer. It explains differences between various implementations taking special care of standards. While as a tutorial might look daunting, it can be used just as a reference provided you already have a Unix background. It goes far beyond Unix Network Programming, covering all the aspects of system libraries, but I wouldn't consider it a superset. UNP is still a better tutorial and reference book when it comes to IPC.

Bryan Costales with Eric Allman and Neil Rickert
"Sendmail".
The ubiquitous mail transfer agent for Unix systems. This book aims to be the definitive survival guide for the administration of this cryptic program.

OOP, OOD and patterns

Grady Booch
"Object Oriented Design with Applications".
It was a bestseller before Booch teamed up with Rumbaugh and Jacobson. I believe it's a good introduction to OOD in general but, using the Booch notation. In this respect, it may be a bit outdated now that UML has become an industry standard.

Martin Fowler and Kendall Scott
"UML Distilled Second Edition: A Brief Guide to the Standard Object Modelling Language".
Everything you need to know about UML, in as little as 170 pages, if you don't want to commit suicide reading one of the deadly boring masterpieces on the subject by Booch, Rumbaugh and Jacobson. Possibly the only book worth reading on UML.

Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides
"Design Patterns Elements of Reusable Object-Oriented Software".
This is the book that started the OO patterns fashion. Clear, with a good introduction. You need a basic knowledge of OOD/OOP.

John Vlissides
"Pattern Hatching Design Patterns Applied".
I would have preferred that the few patterns explained in this book made their way into Design Patterns. The deeper insight of other GoF patterns is interesting at least as a mind stretcher (but I prefer A Little Java in this respect). The bickering between the GoF members on this or that subtle detail of certain patterns is not exactly thrilling.
While not a bad book, for the price, I was expecting better ideas, not just a collection of papers and e-mails.

Advanced C++: Programming Styles and Idioms

A Little Java, A Few Patterns

Object-Oriented Programming in Common LISP: A Programmers Guide to the Common Lisp Object System

Software production techniques

ducks, Ostpark, Frankfurt

Bill Curran
"What is Software Engineering?"
It explains why this section is called the way it is.

Frederick P. Brooks, Jr.
"The Mythical Man Month Essays on Software Engineering".
This book has been written in 1975 and you can tell. Although not all the material survived the test of time, the concept of the nonlinear economy of scale in collaborative work is, of course, still valid and probably the most interesting part. The 20th anniversary edition sports four new chapters with rather more updated insights on software production techniques.

William J. Brown, Raphael C. Malveau, Hays W. McCormick III, Thomas J. Mowbray
"Anti Patterns Refactoring Software, Architectures, and Projects in Crisis".
A collection of recurring mistakes in software engineering. You don't need to read it from cover to cover. It's organised a bit like the GoF so you can read it little by little.
While it might not keep people from making mistakes (these and others) it's an amusing read.

Richard P. Gabriel
"Patterns of Software Tales from the Software Community".
The title is a bit misleading, in the sense that the book is not just about patterns or software. It contains a remarkable essay on patterns (as explained by Alexander not the GoF) applied to software engineering. It's a book full of wisdom and enjoyable to read; two rare qualities in computer books.

Robert M. Pirsig
"The Zen and the Art of Motorcycle Maintenance".
It's not a book about computers nor programming. But it's perhaps the best book about Quality. A great novel that introduces you to the concept of Quality from a philosophical perspective. However you might be involved in quality of software, you should never start without reading this book before. swan, Ostpark, Frankfurt

Scott Adams
"The Dilbert Principle".
Do you think you are doomed to a miserable corporate life? Read this and cheer up: you are not alone!

Edward Yourdon.
"Death March The Complete Software Developer's Guide to Surviving Mission Impossible Projects".
A classic. The author has obviously a large experience on Death Marches and project management. The book is only 200 pages, but still too long for the subject and the author is a bit too self referencing.

Kent Beck
"Extreme Programming Explained: Embrace Change".
I like the idea of putting together common sense pills in a single paper. I wonder if applying all these recommendations could improve your developer's life; they certainly don't hurt. I appreciated the attention payed on continuous refactoring and micro development cycles.

Technologies

ducks, Ostpark, Frankfurt

Musser, Saini
"STL Tutorial and Reference Guide".
Back in the days, STL was not part of the C++ standard, yet. STL was the missing part to make C++ a useful language: this was the companion to your favorite C++ book.

Bil Lewis and Daniel J. Berg
"Multithreaded Programming with Pthreads".
From the pen of Guy L. Steele Jr.: Bil Lewis and Dan Berg explain clearly the concepts of multithreaded programming as well as the useful little tricks of the trade, illustrated by helpful diagrams and coding examples. It's focused mainly on the Posix standard but it's a very good introduction to threads in general. It considers other APIs mainly for portability.

David Flanagan, Jim Farley, William Crawford and Kris Magnusson
"Java Enterprise in a Nutshell a Desktop Quick Reference".
Everything you need to know to get started with the now-obsolete J2EE. It's short and straight to the point.

Robert Orfali, Dan Harkey, Jeri Edwards
"Instant Corba".
A short non technical introduction to what Corba is and what it is meant for. The Martians thing is sort of annoying.

Bob Blakley
"CORBA Security: An Introduction to Safe Computing with Objects".
Just an overpriced waste of paper.

Richard Monson-Haefel
"Enterprise JavaBeans." (2nd ed.).
A very good introduction and reference book for EJB. It covers many aspects including the most recurring issues in implementing three-tier distributed applications using this ancient technology.

Andreas Vogel and Madhavan Rangarao
"Programming with Enterprise JavaBeans, JTS and OTS. Building Distributed Transactions with Java and C++".
It's mainly focused on transaction monitors and the EJB part is fairly small. The book wouldn't be too bad if it wasn't ridden with incredible typographical errors.

(Web) Publishing

ducks, Ostpark, Frankfurt

Donald E. Knuth
"The TeX book".
The Bible of TeX (the text processing system famous mostly in the academic circles) from the author of the program. The book, while being an entertaining read, can't be used as a reference.

Donald E. Knuth
"The Metafont book".
The companion of The TeX book if you are interested in designing your fonts or modifying existing ones.

Leslie Lamport
"LaTeX A Document Preparation System".
The tutorial and reference book for LaTeX, the macro package for TeX. It's concise and clear. My copy is outdated; look for the newest edition.

Patrick J. Lynch and Sarah Horton
"Web Style Guide".
This is a small but good book that has plenty to teach about web style. Beautifully typed and in itself a source of inspiration. Unfortunately, on the technical front, the first edition is outdated (CSS are merely mentioned as future evolution). It's also weird the abundance of photographic examples that are meant to show colour differences, but are all printed in black and white.
There is already a 3rd edition that is likely to be more up to date with the latest web trends. You may want to have a look at it on its web page.

Philip Greenspun
"Philip and Alex's Guide to Web Publishing".
A good introduction to a broad range of subjects on Web publishing from someone who does have knowledge and experience to sell. It may be a little outdated, but it's nevertheless valuable. Funny to read and enjoyable in every sense.
The author has made this title available on-line. The book is heavy because of the high quality paper required for the reproduction of the numerous beautiful photos.

Håkon Wium Lie and Bert Bos
"Cascading Style Sheets Designing for the web" (2nd ed.).
An authoritative introduction and reference book to CSS. It also introduces HTML to the absolute beginner and contains plenty of examples. Easy and clear. The page numbers of the reference card, inside the covers, are messed up, though. Pity, as this would have been a good idea.

Misc

exhibitionist duck, Ostpark, Frankfurt

Paul Graham
"Hackers and Painters Big Ideas from the Computer Age".
The long awaited collection of on-line articles from one of the most successful Lisp gurus. Yes, you can actually read most of them from his web page, but the laptop makes an awkward bedside book. The book has a fair share of witty remarks that you may want to quote to friends, when they come over for a drink.

Kevin D. Mitnick & William L. Simon
"The Art of Deception Controlling the Human Element of Security".
Although the author got famous for his talent for working around security systems, the book, I'm afraid, doesn't live up to his fame. The stories are interesting, but they are focused on the human factor, the weak link, not the technical.

Tim Berners-Lee
"Weaving the Web".
Past, present and future of the World Wide Web according to its inventor. It unveils curious details regarding the origins of the Web, gives an overview of the state of the art and gives hints about its future. jogger and bench, Ostpark, Frankfurt

Donald E. Knuth
"Selected Papers on Computer Science".
Some are fairly interesting, some others not quite. Although, the papers are about CS you probably need a higher math education to fully appreciate them.

Steven Levy
"Hackers Heroes of the Computer Revolution".
Hardly a technical book. It's written by a journalist who, with patience and dedication put together a remarkable collection of interviews, memories and gossips that otherwise would have risked to be lost in the minds of the few pioneers who started it all. This is a book about the real hackers, not about computer criminals.

Olof S. Kylander and Karin Kylander
"GIMP The Official Handbook".
While available in electronic form on the net, I believe the printed copy is more relaxing to read and the pictures look better. Unfortunately the artistic talent of the authors is not equalled by their writing skills. The organisation is less than perfect, the index is more or less nonexistent, the cross references are vague or missing at all, and the material is not laid down in an organic way.
The book is packed with brilliant ideas, but as a reference it's a complete disaster. Kira having a nap, Frankfurt

Jennifer Edstrom and Marlin Eller
"Barbarians led by Bill Gates Microsoft from the Inside".
This is a book for those who failed to realise that what people learnt to love, was actually shoved down their throat. It also explains how little technical superiority matters to make billions of dollars and crush the competitors. A must read.

Simon St. Laurent
"XML A Primer".
Just a book among the many available on the subject. I suggest it because it's concise and reasonably sized, yet clear and complete.

Linus Torvalds with David Diamond
"Just for Fun The Story of An Accidental Revolutionary".
If you are a fan of this famous hacker, it may be worth a read. Although some anecdotes are funny and well written, I found the book overall a bit bland and premature. You should buy a copy at least as a sign of appreciation towards Linus' work.


home
Copyright © Walter C. Pelissero, all rights reserved
Last modified: Fri Aug 20 14:53:15 CEST 2010