Diagnosing the Problem – Finding and Communicating the Bugs That Plague Our Systems


From the author of the popular ebook “The Programmers Idea Book“, veteran programmer and Sitepoint mentor Tim Hurd (aka Martyr2) takes you into the wild world of computer bug hunting with his new book “Diagnosing the Problem”. This book will show programmers of any level, or any language, how to be better programmers by:

  • Properly observing and identifying problems in software
  • Understanding where software bugs live and what they look like
  • Using techniques for finding and fixing bugs with examples
  • Knowing what you cannot control and isolating future risks
  • Learning how to communicate problems to non-coders
  • Building a framework to find bugs that appear later
Category: Tag:


What is this ebook all about?

With this new ebook programmers of all levels get on the fast track with over 26 years worth of programming experience in bug hunting and problem solving from the mentor Tim Hurd on Sitepoint.com. He shows you how to first identify the true nature of a problem in a piece of software, not just its symptoms, and shows you where bugs are often found in applications of all types. He provides some code techniques for locating bugs so you can eliminate them using small code examples in such a way that the ideas are easily transferable between any language.

However, once you find a bug you may not have the ability to actually fix it. So in Chapter 4 he dives into talking about how to deal with tool and other system limitations and how to reduce the risk these limitations may impose on you for fixing problems. Martyr2 then shares some pointers on how to go about dealing with superiors who might not be coders themselves. How to get them on board with securing resources so that you can push past previous limitations.

In later chapters Tim discusses the idea of building a framework to finding future bugs easier as well as discusses how the ultimate tool to preventing bugs is simplicity. By knowing how to identify bugs, how to develop solutions that fix them instead of their symptoms, communicating with those who have the resources you need and how to prevent future bugs you will gain the knowledge you need to not only pump out code but truly solve problems in software.

The skills you will acquire in this book is great for anyone who wishes to get a leg up on their competition in the computer programming job market…whether you are right out of school or changing careers. It is also helpful for anyone wanting to just increase their overall competency in software development or wanting to change their thinking about problem solving in computer programs.

Table of Contents

Chapter 1 – Observing the Problem

  • How Do We Go About Finding Out What the Problem Actually Is?
  • Comparing the Inputs and Outputs of the Affected System
  • Logging as a Witnessing Tool in Systems That Are Less Intimate
  • Catching the Elusive Random Case

Chapter 2 – Hedging Your Bet

  • Finding Bugs is Like a Binary Search
  • How Experience Stacks the Search in Your Favor
  • Understanding Error Messages
  • Dangers in Just Assuming
  • Identifying What is Not Causing the Problem

Chapter 3 – Techniques for Finding Bugs

  • Readability and Its Role in Finding Bugs Faster
  • Finding Choke Points in Code
  • Simple to Implement is Often the Quickest Method to Rule Out Code
  • Debugging and Breakpoints
  • Isolating the Variables
  • Test Driver Programs and Testing
  • A Word About Testing Tools
  • Retesting Your Old Test Cases

Chapter 4 – Knowing What You Can’t Control and Isolating Risk

  • Outdated Systems Occasionally Break Down and Rot
  • Tool Limitations
  • Other Systems
  • Some Bugs Are Just Too Expensive to Fix

Chapter 5 – Dealing With Non-Coders

  • Dealing With Pressure from Others
  • Explaining That Bugs Are the Rule Not the Exception
  • Communicating the Importance of What You Need To Fix the Problem
  • An Analogy Is Worth A Thousand Lines of Code
  • A Quick Patch Is Not a Fix, It Just Bides Time
  • How Keeping a System Up is Usually a Good Thing, Usually

Chapter 6 – Building a Framework to Find Bugs Later

  • Techniques for Preventing Future Problems
  • Make Code Better Than When You Found It, WITHOUT Introducing Anything New

Chapter 7 – Where to Go from Here

  • Building Your Skills
  • Never Stop Learning
  • Gather a List of Resource Sites

The Coding Survival Guide: Habits and Pitfalls Included FREE

Do you know when to use an abstract class vs an interface? How do you handle complex conditionals? This new free e-guide, included with your purchase, covers 12 good habits you should adopt as a programmer and 12 pitfalls to watch out for as you code. In addition, it provides some small code snippets to help illustrate important points and is formatted to be easy to read. The 20 page guide is a perfect companion to “Diagnosing the Problem” and can be referred to as you code your next blockbuster app.

In these ebooks you get:

  • Proven strategies for identifying and fixing numerous types of bugs.
  • Computer language agnostic approaches which help programmers of any particular system to quickly find problems.
  • Expert advice on techniques you can use to deduce where a bug may be hiding.
  • Tips on how to communicate recently discovered issues to others in a way that assists in acquiring needed resources easily.
  • Identify what you can and can’t control and how to reduce the risk of future bugs creeping into your systems.
  • PDF formatted for maximum portability across numerous devices including your desktop, laptop, tablet wherever your like to read and develop!
  • The new e-guide “The Coding Survival Guide: Habits and Pitfalls” absolutely free

Want to super charge your problem solving skills or just help nail that next interview or job promotion by showing others that you know how to find and fix bugs as well as be able to communicate what you actually did to others? Then give this book a go and gain some insight that over 26 years of experience gives you.

About The Author

Martyr2 is the founder of the Coders Lexicon and author of the new ebooks "The Programmers Idea Book" and "Diagnosing the Problem" . He has been a programmer for over 25 years. He works for a hot application development company in Vancouver Canada which service some of the biggest tech companies in the world. He has won numerous awards for his mentoring in software development and contributes regularly to several communities around the web. He is an expert in numerous languages including .NET, PHP, C/C++, Java and more.