FREE Delivery in the UK.
Only 2 left in stock (more on the way).
Dispatched from and sold by Amazon.
Gift-wrap available.
Quantity:1
Debug It!: Find, Repair, ... has been added to your Basket
Condition: Used: Good
Comment: Used Good condition book may have signs of cover wear and/or marks on corners and page edges. Inside pages may have highlighting, writing and underlining. All purchases eligible for Amazon customer service and a 30-day return policy.
Have one to sell?
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See this image

Debug It!: Find, Repair, and Prevent Bugs in Your Code (Pragmatic Programmers) Paperback – 25 Nov 2009


See all formats and editions Hide other formats and editions
Amazon Price New from Used from
Paperback
"Please retry"
£23.50
£12.65 £4.81
£23.50 FREE Delivery in the UK. Only 2 left in stock (more on the way). Dispatched from and sold by Amazon. Gift-wrap available.

Frequently Bought Together

Debug It!: Find, Repair, and Prevent Bugs in Your Code (Pragmatic Programmers) + Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems
Price For Both: £35.50

Buy the selected items together


Product details

  • Paperback: 232 pages
  • Publisher: Pragmatic Bookshelf; 1 edition (25 Nov. 2009)
  • Language: English
  • ISBN-10: 193435628X
  • ISBN-13: 978-1934356289
  • Product Dimensions: 19 x 1.8 x 22.7 cm
  • Average Customer Review: 4.5 out of 5 stars  See all reviews (13 customer reviews)
  • Amazon Bestsellers Rank: 595,612 in Books (See Top 100 in Books)

More About the Author

Paul Butcher started out writing games for 8-bit home computers before he was a teenager, and since then has worked in diverse fields at all levels of abstraction, from microcode on bit-slice processors to high-level declarative programming and all points in between. Paul's depth of experience derives from a history of working for startups in which he's had the privilege of working with several great teams on cutting edge technology.

Product Description

About the Author

Paul Butcher started out writing games for 8-bit home computers before he was a teenager, and since then has worked in diverse fields at all levels of abstraction, from microcode on bit-slice processors to high-level declarative programming and all points in between. He's been using agile approaches for the last several years, although had adopted many of the same techniques before the agile movement gave them a name. Paul's depth of experience derives from a history of working for startups in which he's had the privilege of working with several great teams on cutting edge technology.

In an attempt to demonstrate that he's at least as fast as Lewis Hamilton, Paul totaled his race-car last year. So no more playing with expensive toys for the time being-but he will be back on track soon!


What Other Items Do Customers Buy After Viewing This Item?

Customer Reviews

4.5 out of 5 stars
Share your thoughts with other customers

Most Helpful Customer Reviews

3 of 3 people found the following review helpful By William Turner on 1 Feb. 2010
Format: Paperback
Debug It! endeared itself to me on the very first page, with the statement that 'Debugging is more than "Making the bug go away"'. At last! Someone who understands! This sets the tone for the whole book, which takes a refreshingly sensible approach to debugging, and passes on a huge amount of essential knowledge in a clear and very readable manner. The frequent and amusing real-life anecdotes confirm that Paul has "been there, done that" - and learnt the lessons. I found the sections on concurrency and 'Heisenbugs' particularly useful - as an embedded systems programmer, these types of bugs are the bane of my life. The final chapter on "anti-patterns" was also interesting, showing how the team/department environment can influence code quality.

Working in an environment where all team members do a regular "tour of duty" on product support (avoiding anti-pattern 11.3...), I shall definitely be recommending this book to my colleagues - it's invaluable as a "best practice" guide for novices, as well as a handy "hang on a minute..." reference for more experienced coders.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
2 of 2 people found the following review helpful By Amazon Customer on 24 Jan. 2010
Format: Paperback
While some of the tips may seem obvious to those with even a few years experience (you do use some form of source control, don't you?), Paul not only helps find bugs after they have occurred but also before with tips about automated testing, the use of asserts, logging, etc. Reading all the obvious tips written down in one place helped me remember that all is not lost when trying to debug the thorniest of issues. While many of the of the code examples are Java, other languages are not forgotten. There is some Python, Ruby, and C and C++.

In the section on Anti-Patterns, Paul gives advice and tips on office politics, for example dealing with Prima Donnas and issues of code ownership. The tools section covers a wide variety, not just focused on digging out bugs, but tracking them and, just in case you don't, source control.

The book is written in a very easy going style and I can imagine a talk by him being very well received at conferences like The Association of C and C++ Users.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
2 of 2 people found the following review helpful By Carl on 9 Jan. 2010
Format: Paperback
This is a very well-written book about the process of debugging. It's easy to read without compromising on depth or quality. The real-world examples are both memorable and realistic, including examples of both success and failure in debugging (as well as the printer pixies). The treatment of the subject matter is broad as well as deep, and contains discussions on test-led development, continuous integration and automated testing, as well as giving examples of debugging, integration and testing tools for further investigation. The user-friendly asides and terminology (e.g. "heisenbugs") means that the concepts and examples really stick in your mind.

I will be recommending it to my colleagues, and attempting to implement as much as possible in my next project.

In-depth coverage of the subject, *and* printer pixies. WNTL?
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
1 of 1 people found the following review helpful By D. Hooper on 1 Feb. 2010
Format: Paperback
I started reading this book expecting a few tips on that most difficult aspect of programming - debugging that impossible to find bug.

After a few pages it became clear that it's not written in the usual dry textbook manner as Paul's friendly, informative and frequently entertaining style covers the subject at a perfectly balanced pace.

Even as an experienced software engineer I found the book added many more tools to my debugging armoury. Further to this it also reminded me of many things I'd forgotten, usually by means of an anecdote that was both insightful and entertaining.

Despite it's excellence as a book for the older coder, its manner is also perfectly suited to novice programmers. Each technique is clearly explained in a practical way with advice on when to use it in a way that empowers the reader. It is then followed by techniques on how to prevent the bug (and similar bugs) reoccurring.

However, perhaps the book's greatest achievement is that the above style results in it covering the majority of modern software engineering practice by demonstrating that each part is simply the most sensible way to keep bugs out of your code. On reflection this may seem obvious, after all, software engineering is the practice of creating reliable programs without bugs. But to cover all this ground so clearly in 232 pages without once rushing, or patronising, such a wide range of readers is a remarkable achievement.

I will be recommending Debug It! to all my department - experienced and beginner alike. I will also be rereading it regularly as it made me want to get out there and get cracking to write great code!
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
1 of 1 people found the following review helpful By Samuel Halliday on 12 Dec. 2009
Format: Paperback
"Debug It!" is more than a book on debugging best practices - it's a motivational tool that succeeds in making debugging sound like fun.

Full of humorous and insightful anecdotes, the main message is "nobody writes perfect code - this is how you deal with it".

Paul Butcher does a great job of succinctly documenting the different types of bugs that show up in the wild, and best practices on how to find them and stop them appearing again. The book places a strong emphasis on development in a team environment, not neglecting the human factors that are often the trickier bits to manage.

For a good programmer, many of the best practices in "Debug It!" will not come as a surprise, the true value is in having all this experience documented in a single place - you're not the only one who's had to solve these problems. That said, even seasoned programmers will feel challenged at times by thought provoking advice such as Butcher's recommendation that you occasionally work on Customer Support to get closer to your customers.

Despite having thoroughly enjoyed reading "Debug It!", I cannot help but disagree with much of Section 10.1 "Assumptions and Assertions". This is perhaps a cultural approach between languages, with my primary language being Java. I prefer explicit checks on method parameters, with appropriate exceptions being raised - greatly simplified by the Google Collections API - than Butcher's recommendation on the use of "assert". For me, bad parameters should be discovered as soon as possible, using "assert" to catch them will only lead to difficult-to-track bugs on production deployments. In my opinion, "assert" is best used to check parameters in non-public APIs and for checking variables deep within an algorithm.
Read more ›
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

Most Recent Customer Reviews



Feedback