Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems
P**L
Short, funny, memorable. Learn to be a better debugger and save time.
Buy it and read it. Reading this short book is time very well spent to get better at debugging and troubleshooting. By systematically finding and fixing bugs, you will waste much less time spinning your wheels and guessing. These are useful problem-solving skills with broad applications. The book is concise, memorable, and funny. Each chapter expands on one of nine debugging rules along with memorable "war stories" and end-of-chapter summaries connecting back to the stories. The stories are interesting, unique, and funny. Our brains are wired to remember narratives and learn through making connections; these stories really help cement the rules in your memory. The rules might seem obvious after reading them at first glance. The hard part is remembering, recognizing, and applying the rules to a particular situation; this book helps with that.Here are the rules. Even if they're familiar, you'll likely come away with better skills or new ideas after reading the book.9 Debugging Rules- Understand the system- Make it fail- Quit thinking and look- Divide and conquer- Change one thing at a time- Keep an audit trail- Check the plug- Get a fresh view- If you didn't fix it, it ain't fixed
J**S
Critical work for anyone who works on any sort of system, machine, or software
This book is absolutely indispensable for anyone working in any job where things occasionally work in an unexpected manner. It's concise, funny, well-written, and full of immensely useful tips on how to go about debugging problems.One of the great things about this book is that it's generalistic in nature, not specific. Agans's decades of troubleshooting experience has given him great insight on how to go about debugging in all sorts of environments, so he lays out nine rules for approaching any problem:Understand the SystemMake it FailQuit Thinking and LookDivide and ConquerChange One Thing at a TimeKeep an Audit TrailCheck the PlugGet a Fresh ViewIf You Didn't Fix It, It Ain't Fixed[...]Debugging isn't an art performed only by folks with some odd genetic disposition, it's a critical craft which can and must be learned. I was fortunate to have some good troubleshooters as mentors during my days working radar inflight in the Air Force, but I've fallen out of many of the good practices those folks beat^H^H^H^Hinstilled in me. Agans's book is helping me pull out of the thrash and churn mode of debugging.This book's only 175 or so pages long and is well-worth adding to your library. Actually, substitute "a critical addition" for "well worth adding". I'm also going to make sure this book gets added to the professional development reading list I'm working on creating.
O**0
Excellent non-technical book
I greatly enjoyed reading this book on the metro because it was non-technical and it sounded just like when I help my father solve various electronic/mechanical issues. In fact, it was like he was right there telling me the war stories despite him being 5800KM away.As per pros for the book:* Rang true with me by stating, don't get lost in the details, but actually get in there and LOOK at the problem - not read about it.* Good stories and examples* Good flow and not boring* Good techniques for problem solving* Good price for the contentCons:* Reads a bit like a personal opinion like rant* Needs a bit more editing (small typos)* Slightly repetitive (but I understand that this may have been a literary tactic)Honestly, this was a good read and I would gladly recommend this book for any person attempting to improve their thought process regarding debugging or solving problems. Undergraduate and graduate students + professors should seek to read this book or have it among the required readings for advanced programming classes.
A**R
Get this if you serious about improving
I am a software engineer, and my for the longest time I thought I was a good troubleshooter. Until I started going to interviews, talking about how I would debug this and that problem. Hearing people's feedback, asking how they would solve it sometimes. Too often I get stuck in the same ways of doing things. And I definitely was not understanding the system, it was more like poke this, then that, and hope it works, if not try poking again. I did not learn anything this way and it has really hurt my professional career growth. Which is why I got this book. It is very high level. I like understanding fundamentals. I have learned the hard way that you cannot skimp on them. What is nice about this book is that I think it will apply to all areas of problem solving in my life. Of course it does not give you the magic answer, you will need to still do the hard work, but at least if gives you a framework within which you can understand what you are doing, what could be done better, provide self feedback, not overlook important aspects or get in a bad habit of assuming too much which is one of my bigger issues. Can't recommend this book more. If you want to get better as a software engineer, this book will give you an excellent road map.
M**N
Fantastic Book That's Good for Non-Engineers
In Debugging, the author takes us through some key rules on how to solve even the thorniest problems. You'll get lots of examples in the form of war stories. While the text is aimed mainly at engineers (primarily hardware, with some software thrown in), many of the war stories are about things as simple as car trouble. Everything is written in a lighter tone. Nothing too dry or heavy.If you've been in the field for more than a couple years and you don't absolutely suck at it, a lot of the content in Debugging will be the equivalent of preaching to the choir. That said, it never hurts to have a reference on hand because after so many years, you *will* forget something here or there.If you're looking for another book in a similar vein to this one, read Stop Guessing by Nat Greene. In fact, there's a lot of crossover between Stop Guessing and Debugging, the biggest one being...stop guessing/quit thinking and look.
R**O
Todo Web Dev debe tenerlo
Un must en los conocimientos como programador, fundamentos e ideas para poder hacer debugging en código de manera eficiente.
R**I
Simple & Effective
Written in a simple style.
V**N
An Absolute Game-Changer
This book saved my bacon as a new developer. Now I have a simple process for figuring out how to fix things, and when it's time to ask someone else. I can fix more bugs in less time. I am a much more confident developer.I keep the nine rules printed out next to my PC which helps me course-correct whenever I start getting lost in the weeds.This should be required reading for new developers. It will easily pay for itself a hundred times over given the amount of time it will save you!
R**N
Universel et pragmatique
Une méthode de debugging systématique, présentée à l'aide d'un recueil d'exemples ("war stories") issues de l'expérience de l'auteur. Utile et général, absolument pas centré sur un domaine ou une technologie: les "war stories" couvrent aussi bien une installation électrique défaillante qu'un logiciel de téléconférence, une fuite d'eau inexpliquée ou une chaudière trop tiède.Agréable, utile et divertissant.
G**S
Klasse Metaanweisungen zur Fehlersuche
"Debugging" ist ein Buch über das Vorgehen beim Debuggen von beliebigen Problemen in beliebigen Anwendungsfällen. David Agans stellt 9 Regeln (plus Subregeln zu jeder Regel) auf, um gezielt Fehleranalyse zu betreiben. Zu jeder dieser Regeln mehrere Beispiele, wie diese voll eingesetzt werden oder zum Teil wie die Missachtung dieser Regeln zum Desaster führt. Die meisten dieser Beispiele sind aus dem Bereich der elektrischen Schaltungsentwicklung.Ich debugge Computer Programme nun seit 20 Jahre und ich habe in diesem Buch viel gelernt. Ich fand "Debugging" leicht, gut und schnell zu lesen. "Debugging" ist darin meiner Meinung, dass man ein wiederholbares Problem (Regel 2 "Make it fail") durch strukturiertes Herangehen vollständig und korrekt lösen kann (nur eine Frage der Zeit). Die Regel 1 "Understand the system" hätte ich für Software Leute in der Form "Verstehe deine Architektur und alle Komponenten" dargestellt. Leider habe ich an dieser Stelle zu oft Probleme erlebt (gerade bei Multi Tier Architekturen), da viele Entwickler die Grundlagenlernschritte aus Zeitgründen gerne überspringen (um dann wie wild JAVA auf unschuldige ORACLE Datenbanken loszulassen ;-). Ich finde "Debugging" sehr schön pragmatisch, verständlich und praxisnah, ohne Wasserkopf.Für mich ist dieses Buch ein echter Klassiker und an sich zeitlos (reine Methodik unabhängig von der Anwendungsdomäne). Ich werde dieses Buch weiterempfehlen (habe ich auch schon) zusammen mit den "Pragmatic Programmer" Büchern (siehe meine weiteren Rezensionen).