Dr. Dobb's Journal May, 2005
Crystal Clear: A Human-Powered Methodology for Small Teams
Alistair Cockburn
Addison-Wesley, 2004
336 pp., $34.95
ISBN 0201699478
Java Reflection in Action
Ira R. Forman and Nate Forman
Manning, 2004
273 pp., $44.95
ISBN 1932394184
An Introduction to Bioinformatics Algorithms
Neil C. Jones and Pavel A. Pevzner
MIT Press, 2004
435 pp., $55.00
ISBN 0262101068
Python Scripting for Computational Science
Hans Petter Langtangen
Springer, 2004
726 pp., $69.95
ISBN 3540435085
Hiring the Best Knowledge Workers, Technies & Nerds: The Secrets & Science of Hiring Technical People
Johanna Rothman
Dorset House, 2004
352 pp., $37.95
ISBN 0932633595
Computer book sales have been dropping steadily for the past few years. This isn't just because the dot-com boom is over; it also reflects the fact that most of us can find more things on Google, faster than in a pile of thinly sliced trees.
Coincidentally (or perhaps not), fewer massive, poorly edited tomes are landing on my desk today than in 1998. Instead, I am getting more books about the "how" of programming, more tutorials, and more analysis. Alistair Cockburn's Crystal Clear is a good example. It describes an agile development methodology aimed at medium-sized teams working on a two- to three-month cycle. Cockburn combines a refreshing lack of hype with real-world stories; more importantly, he repeatedly emphasizes the notion that methodologies are signposts, not destinations, and that what matters is not dotting is and crossing ts, but achieving results. His writing style is rather dry, but after all the shouting and counter-shouting about Extreme Programming in the past few years, that's no bad thing.
Johanna Rothman's Hiring the Best Knowledge Workers, Technies & Nerds is another "how to" book. As you can guess from the title, its focus is how to find and hire programmers and other technical staff. Everything she says is common senseprioritize requirements, use technical quizzes to determine whether résumé claims are overblown, make sure the people you're hiring will fit into your existing teambut unless you've been making hiring decisions for several years straight, you're probably only doing half of the things she suggests. I would have liked some discussion of how to handle nondisclosure and intellectual property issues during hiring, and a chapter on how to let people go would have been welcome, too, but those are minor points. If you've come to management from a technical background, do yourself a favor: At $45.00, this book may be one of the best investments you make this year.
Ira and Nate Forman's Java Reflection in Action is as "hard" as the previous two books are "soft." Over the course of 10 chapters, the authors explore the Java reflection API, a powerful abstraction layer that lets you treat classes as objects, and invoke their methods in flexible, generic ways. Every large Java library or application I know uses reflection to load extensions; the more advanced ones use it to construct or customize classes on-the-fly, inspect the call stack, and profile performance. This book contains the best discussion of Java's dynamic proxies that I've ever come across, and also has notes on relevant new features in Java 1.5. It's not for the faint of heart, but is required reading for anyone who's serious about making Java work for them.
Neil Jones and Pavel Pevzner's Introduction to Bioinformatics Algorithms also isn't for the faint of heart, although it does take programmers' ignorance of biology, and biologists' ignorance of computer science, into account. If you're a biologist, this book is an all-in-one survey of the core concepts from theoretical computer science that are revolutionizing your discipline. If you're a programmer, it will show you how what you know about sorting, searching, and graph theory can be applied in DNA sequencing, evolutionary biology, and other areas. There's more math than code, but lots of diagrams and clear explanations make it all digestible. And hey, I've always wondered how Batman gets dressed in the morning...
Last, but not least, is Hans Langtangen's Python Scripting for Computational Science. The book's aim is to show scientists and engineers with little formal training in programming how Python can make their lives better. Regular expressions, numerical arrays, persistence, the basics of GUI and web programming, interfacing to C, C++, and Fortranit's all here, along with hundreds of short example programs. Some readers may be intimidated by the book's weight and the dense page layout, but what really made me blink was that I didn't find a single typo or error. It's a great achievement, and a great resource for anyone doing scientific programming.
And now, a self-serving footnote: When I'm not writing for DDJ, I supervise undergraduate programming projects at the University of Toronto. By the time you read this, a description of how those projects are run will be up at http://pyre.third-bit.com/. I'd be grateful for your comments.
DDJ