Tuesday, December 28, 2004

Bibliography (Computer Science)

Java
====
There are many fine Java books, but here are the ones that come to mind...
Core Java 2, Vol 1 (basic) and Vol 2 (advanced) , by Horstmann and
Cornell. Nice coverage of many Java features.
Effective Java, by Joshua Bloch. Neat collection of intelligent Java tips.
Thinking in Java, by Bruce Eckel. Dense and complete coverage of
many Java topics.
Just Java, by Peter van der Linden. Relatively quick coverage of Java
with a sarcastic tone.


Software Engineering
===============
Refactoring, by Martin Fowler. Introduces Refactoring. The 1st book to
get.
Extreme Programming Explained, by Kent Beck. Introduces extreme
programming. The 2nd book to get.
The Mythical Man Month, by Brooks. A bit dated, but contains many
useful and influential observations:
Software Project Survival Guide, by Steve McConnell. Practical wisdom
for managing software projects
Design Patterns : Elements of Reusable Object-Oriented Software, by
Gamma, Erich / Helm, Richard ("the gang of four"). Patterns are
ok, but I'm not as excited about them as some people.

Miscellaneous
==========
Flow : The Psychology of Optimal Experience, by Mihaly
Csikszentmihalyi. A great psychology book about what makes a
process enjoyable. You've just got to love that last name!
User Interface Design for Programmers, by Joel Spolsky. A quick, funny,
and to the point introduction to the interface design. Joel also
publishs the joelonsoftware.com site, which has many neat ideas.