News on Monday
more>>
SharePoint Tech Report
more>>


   

 
 
Download Current Issue
ISSUE 7/1/2009 PDF

Need Back Issues?
DOWNLOAD HERE

Receive the print Edition?


 
Is the mystery Borland suitor Serena?
Borland software is considering an offer from another company after a preliminary deal with MicroFocus. Is Serena the new company?
06/30/2009 01:55 PM EST

Windows 7 - An eBayer's dream product?
Windows 7 pre-orders can make people money on eBay.
06/29/2009 03:48 PM EST

Know thine cloud provider
Cloud computing require companies to understand compliance and regulation. Third parties will play a big role in regulated industries.
06/29/2009 02:58 PM EST

 

Microsoft Worldwide Partner Conf.
7/13/2009 to 7/16/2009
New Orleans
Microsoft

OSCON (Open Source Convention)
7/20/2009 to 7/24/2009
San Jose
O'Reilly Media

XBRL Technology Workshop & Summit
7/28/2009 to 7/30/2009
Santa Clara
XBRL US

ACM SIGGRAPH
8/3/2009 to 8/7/2009
New Orleans
ACM SIGGRAPH

OpenSource World (formerly LinuxWorld)
8/12/2009 to 8/13/2009
San Francisco
IDG World Expo


 
Most Read Latest News Blog Resources

Off-the-Shelf Education




May 1, 2007 — 
I normally leave my summer reading column until June, but between global warming and some exceptional offerings from the publishing companies, the time seems ripe to suggest some books to accompany you to the beach. In the interest of full disclosure, I should state that I’m friends with several of the authors whose works I’m recommending.

I’ve already written in this column about my favorite book of last year, “Refactoring Databases” by Scott Ambler and Pramod Sadlage. Along with Ambler’s “Agile Database Techniques,” this book brings database development into the change-embracing, unit-tested 21st century.

Manipulating relational databases stands in complex relationship to manipulating text-based source code and “regular” software development. On the one hand, relational theory is a vastly more stable foundation than mainstream programming paradigms; even the most recalcitrant corporations understand the value of their data stores; and database servers are tremendously sophisticated tools. On the other hand, programming databases, whether manipulating data or table structures, is rarely treated with the same kind of respect that we give to compiled code; there’s often an assumption that the database will somehow be trivially derived to suit the needs of the “real code,” or perhaps, that a tyrannical DBA is forcing compromises on an otherwise pristine design.

In truth, databases in the real world scream for refactoring and unit-testing, and either slavish devotion to or callous disregard for existing database structure is among the most common mistakes I see. (Just this morning, I spent an hour and three-quarters in a design meeting that centered around this very problem.) These two books plainly and simply saved my butt in a big project last year, and I think it’s a rare bookshelf where they won’t find a permanent spot.

Whatever book you may have used previously for “the one book about OOA&D to have if you’re having only one,” you may well want to retire it in favor of “Head-First Object-Oriented Analysis & Design” by Brett McLaughlin, Gary Pollice and David West. I’ve not been the biggest fan of the “Head-First” series. The graphically busy design of these texts and their multimodal approaches to learning are definitely in keeping with modern pedagogy, but I’m not at all convinced that this is necessarily the best way to learn, for instance, a programming language.

OOA&D, though, with its high concept count, communication demands and specialized jargon, is excellently suited for the approach. Even more important, the book does a good job of covering the broad array of subjects in play in modern OOA&D, including such things as the current emphasis on iterative development and testing and their influence on analysis and design.

The book is light on UML—perhaps too light. You don’t have to work for IBM Rational to like Activity Diagrams, for instance. But pair “Head-First OOA&D” with Martin Fowler’s still-unsurpassed “UML Distilled,” and you’ve got 90 percent of what you need to do OOA&D. The other 90 percent of what you need is experience. (And if you haven’t yet experienced a software development project that’s consumed 180 percent of effort…)

Charles Petzold’s work is always noteworthy. Last year brought “Applications = Code + Markup,” which is the best tutorial on Windows Presentation Foundation I’ve seen. This summer we can look forward to a book by Petzold on 3D programming for WPF, but I want to recommend his book “Code: The Hidden Language of Computer Hardware and Software,” which came out in 2000. “Code” is a technical history of computers, touching on mechanical predecessors (abaci, Napier’s bones, Babbage’s works) but focusing primarily on what we’ve done so far by combining Boolean logic, information theory and electronics.

Code is, by popular standards, technical (it doesn’t have pictures of trains carrying 1s and 0s), but if you want some fiber in your diet, pair it with “Inside the Machine” by Jon Stokes. Subtitled “An illustrated introduction to microprocessors and computer architecture,” this is a handsome text that gets to the nitty-gritty of branch prediction, cache architecture and vector execution. As is inevitable with a book this close to the metal, it’s already a tad outdated, ending with some too-brief words on the Intel Core 2 Duo.

If your eyes are too tired to read, I highly recommend the audiobook version of John Hodgman’s “The Areas of My Expertise,” which he labels “an almanac of complete world knowledge.” Not a lot of developer-specific stuff, but Hodgman is the guy who plays the PC in those Macintosh ads, and he’s accompanied on guitar by Jonathan Coulton, composer of the anthem “Code Monkey,” and the obsessive list-making nature of the endeavor makes it clear: He’s a member of our tribe.

Larry O’Brien is a technology consultant, analyst and writer. Read his blog at www.knowing.net.


Share this link: http://www.sdtimes.com/link/30512
 

Add comment


Name*
Email*  
Country     


  • Comment
  • Preview
Loading