Find the Bug

I just received a complimentary copy of a book that was just published by Addison Wesley titled Find the Bug, by Adam Barr.  Adam's a PM on the Windows Server team at MSFT and author of another book (that I haven't read) called Proudly Serving My Corporate Masters: What I Learned in Ten Years as a Microsoft Programmer.

The book contains the source for 50 programs - divided up across 5 chapters that focus on a different programming language (C, Python, Java, Perl, x86 assembly); each with 10 program listings.  Each of those chapters starts with a primer on the language that covers the syntax necessary to understand each listing.  None of the bugs are tricky language-level syntax issues.

The premise of the book is that regardless of what debugging techniques & tools you use, the core skill required is the ability to identify bugs in source code using 2 anotomical tools: your eyes and your brain.  And given that practice makes you better at something, working your way through a book identifying the 1 bug in each program will arguably make you better at debugging.

I've only read the preface and chapter 1 (Bug Classification), but I love the premise of the book and the approach he's taken to presenting the information.  I had a C.S. professor that used the term “calibrated eyeball” to describe the ability to inspect something objectively (source code listings, disassembled instructions in a debugger window, core dumps, etc) and use the microprocessor called your brain to compute what the outcome was/would be without being biased by the names of variables, routines, or the colleague whose code you're reviewing.  IOW, determine what the routine does, not what the routine's name says it does.

Given the timing of the release, I'm a little surpised the book didn't include samples in at least one .NET language.  But regardless, I'm looking forward to working my way through it - especially trying my hand at the listings in languages like Python that I've never worked with before.

-M


Posted Oct 13 2004, 01:43 PM by mike-woodring

Add a Comment

(required)  
(optional)
(required)  
Remember Me?