Book Reviews

This page contains reviews of some technical books I've read since June 2005. My long term goal is to create lists of recommended reading on different subjects.

Lisp

The Joy of Clojure by Michael Fogus and Chris Houser

Clojure Programming by Chas Emerick, Brian Carper and Christophe Grand

Practical Clojure by Luke VanderHart and Stuart Sierra

Programming Clojure by Stuart Halloway

Structure and Interpretation of Computer Programs by Abelson and Sussman

Let Over Lambda by Doug Hoyte

ANSI Common Lisp by Paul Graham

Practical Common Lisp by Peter Seibel

Object-Oriented Programming in Common Lisp: A Programmer's Guide to CLOS by Sonya E. Keene

The Seasoned Schemer by Daniel P. Friedman, Matthias Felleisen

The Little Schemer - 4th Edition by Daniel P. Friedman, Matthias Felleisen

C++

Multi-Paradigm Design for C++ by James O. Coplien

The C++ Standard Library Extensions: A Tutorial and Reference by Pete Becker

Advanced C++ Programming Styles and Idioms by James O. Coplien

Beyond the C++ Standard Library: An Introduction to Boost by Björn Karlsson

Effective C++ Third Edition by Scott Meyers

C++ Template Metaprogramming by David Abrahams, Aleksey Gurtovoy

Erlang

Erlang and OTP in Action by Martin Logan, Eric Merritt and Richard Carlsson

Erlang Programming by Francesco Cesarini and Simon Thompson

Programming Erlang: Software for a Concurrent World by Joe Armstrong

Multicore

Professional Multicore Programming: Design and Implementation for C++ Developers by Cameron Hughes and Tracey Hughes

The Art of Multiprocessor Programming by Maurice Herlihy and Nir Shavit

.Net

Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries (2nd Edition) by Krzysztof Cwalina and Brad Abrams

Fluent C# by Rebecca M. Riordan

Pro .NET 4 Parallel Programming in C# by Adam Freeman

Parallel Programming with Microsoft .NET: Design Patterns for Decomposition and Coordination on Multicore Architectures by Colin Campbell, Ralph Johnson, Ade Miller and Stephen Toub

C# 4.0 in a Nutshell: The Definitive Reference by Joseph Albahari and Ben Albahari

Effective C#: 50 Specific Ways to Improve Your C# by Bill Wagner

Patterns

Patterns of Software: Tales from the Software Community by Richard P. Gabriel

The Patterns Handbook : Techniques, Strategies, and Applications by Linda Rising (Editor)

The Timeless Way of Building by Christopher Alexander

OCaml

Practical OCaml by Joshua B. Smith

Java

Clean Code by Robert C. Martin

Implemenation Patterns by Kent Beck

Beyond Java by Bruce Tate

Processing, Generative Art

The Nature of Code: Simulating Natural Systems with Processing by Daniel Shiffman

Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction by Daniel Shiffman

Forth

Thinking Forth by Leo Brodie

JavaScript

JavaScript Patterns by Stoyan Stefanov

JavaScript: The Good Parts by Douglas Crockford

JavaScript: The Definitive Guide, 4th Edition by David Flanagan

Prolog

Programming in Prolog by Clocksin, W.F. and Mellish, C.S.

Python

Dive into Python 3 by Mark Pilgrim

Learning Python by Mark Lutz

Testing

Agile Testing: A Practical Guide for Testers and Agile Teams by Lisa Crispin and Janet Gregory

Ruby

Programming Ruby, Second Edition by Thomas, Fowler, Hunt

Psychology and Learning

In the Theater of Consciousness: The Workspace of the Mind by Bernard J. Baars

Forensic Psychology by David Canter

On Intelligence by Jeff Hawkins

The Mind of a Mnemonist - A little book about a vast memory by A. R. Luria

Psychopathology of everyday life by Sigmund Freud

Dreaming by J. Allan Hobson

The Mind Map Book by Tony Buzan and Barry Buzan

The Time Paradox by Philip Zimbardo and John Boyd

A Whole New Mind by Daniel H. Pink

Pragmatic Thinking and Learning by Andy Hunt

The Lucifer Effect by Philip Zimbardo

Design

The Architecture of Happiness by Alain De Botton

Machine Beauty by David Gelernter

Domain-Driven Design by Eric Evans

Business

Founders at Work: Stories of Startups Early Days by Jessica Livingston

Eric Sink on the Business of Software by Eric Sink

In Search of Stupidity: Over 20 Years of High-Tech Marketing Disasters by Merrill R. Chapman

Web Development

Head First HTML with CSS & XHTML by Eric Freeman, Elisabeth Freeman

The CSS Anthology: 101 Essential Tips, Tricks & Hacks by Rachel Andrew

PHP 5 Objects, Patterns, and Practice by Matt Zandstra

PHP Bible, 2nd Edition by Tim Converse and Joyce Park

Modeling, UML

Agile Database Techniques : Effective Strategies for the Agile Software Developer by Scott Ambler

The Elements of UML 2.0 Style by Scott W. Ambler

A UML Pattern Language by Paul Evitts

The Object Primer : Agile Model-Driven Development with UML 2.0 by Scott W. Ambler

User Interface Design

The Design of Everyday Things by Donald A. Norman

User Interface Design for Programmers by Joel Spolsky

Biographies and Computing History

Coders at Work by Peter Seibel

Masterminds of Programming by Federico Biancuzzi and Shane Warden

Soul of a New Machine by Tracy Kidder

Dreaming in Code by Scott Rosenberg

iWoz: Computer Geek to Cult Icon by Steve Wozniak (Author), Gina Smith (Contributor)

Hackers: Heroes of the Computer Revolution by Steven Levy

Cube Farm by Reverend Bill Blunden

General Programming Books

Making Software by Andy Oram (ed.) and Greg Wilson (ed.)

97 Things Every Software Architect Should Know edited by Richard Monson-Haefel

The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt, David Thomas

The Best of Verity Stob by Verity Stob

Facts and Fallacies of Software Engineering by Robert L. Glass

Extreme Programming Refactored: The Case Against XP by Matt Stephens, Doug Rosenberg

The Tao of Programming by Geoffrey James

Hackers and Painters: Big Ideas from the Computer Age by Paul Graham

The Best Software Writing I by Joel Spolsky (Editor)

Extreme Programming Explained : Embrace Change (2nd Edition) by Kent Beck with Cynthia Andres

Joel on Software by Joel Spolsky

Code Complete, Second Edition by Steve McConnell

Working Effectively with Legacy Code by Michael C. Feathers

Leadership, Management

Rework by Jason Fried and David Heinemeier Hansson

Drive: The Surprising Truth About What Motivates Us by Daniel H. Pink

The Design of Design by Frederick P. Brooks

Smart and Gets Things Done by Joel Spolsky

The Wisdom of Crowds by James Surowiecki

The Psychology of Computer Programming: Silver Anniversary Edition by Gerald M. Weinberg

Toyota Production System: Beyond Large-Scale Production by Taiichi Ohno

Flipp eller Flopp? Om Misslyckandets Dynamik by Lars Strannegård (Review in Swedish)

Fursten (Il principe) by Niccolo Machiavelli (Review in Swedish)

Linux

The Art of UNIX Programming by Eric S. Raymond

Linux and the Unix Philosophy by Mike Gancarz

The Cathedral & the Bazaar by Eric S. Raymond