Confident Programmer Debugging Guide: Confident Programmer
()
About this ebook
This guide will help you to boost your debugging skills.
Debugging is a critical skill for software developers and programmers, but it is not often taught well in many computer science classes. This guide gets you started on your way to becoming a more effective and confident debugger.
Next time you face a list of pesky bugs and feel frustration rising, check this guide to help keep crashes from becoming showstoppers!
This guide includes:
- A real-life example from a major project I worked on, complete with lessons and guidelines.
- Tips on how to stay calm and maintain your sanity when you are frustrated and overwhelmed by your bug list.
- Suggestions on how to research and find information on those pesky error messages.
- A sample bug tracker tool to help you stay organized.
- A debugging checklist to help you figure out the next step.
- A guided debugging exercise, complete with Java code and explanation, and suitable for beginners.
Cloudy Heaven Games
As an independent game development company, we create games with a focus on good game design and software development principles, because we feel that great software of any kind, is based on a solid development process. In addition to creating games, we offer educational opportunities and resources for aspiring software developers and designers, for all kinds of software development, not just games. Through our unique combination of games and education, we provide you with the tools to build your own heaven, whether through fun games or the software career of your dreams! Favorite games include: Final Fantasy series (particularly 4 and 6), Chrono Trigger, The Legend of Zelda: A Link to the Past, the Fallout and Oblivion series, and many more! As you can probably tell, RPGs are pretty popular here! Favorite books: Can't pick just one, but fantasy series such as Dragonlance and Lord of the Rings are up there. Margaret Weis and Tracy Hickman are particular favorite authors. Any books about my favorite games (such as the Japanese-language Ultimania series) are also great. However I do like a variety of genres, especially educational and nonfiction books. You can pretty much always find me with a book of some kind.
Related to Confident Programmer Debugging Guide
Related ebooks
Hello World: Student to Software Professional - a Transformation Guide Rating: 0 out of 5 stars0 ratingsMy First In Java Rating: 0 out of 5 stars0 ratingsSoftware Development Accelerated Essentials: What You Didn't Know, You Needed to Know Rating: 0 out of 5 stars0 ratingsJava Programming Interviews Exposed Rating: 0 out of 5 stars0 ratingsJump Start PHP Environment: Master the World's Most Popular Language Rating: 0 out of 5 stars0 ratingsMobile Device Management A Complete Guide - 2019 Edition Rating: 0 out of 5 stars0 ratingsPractical Django 2 and Channels 2: Building Projects and Applications with Real-Time Capabilities Rating: 0 out of 5 stars0 ratingsTwilio Cookbook Rating: 0 out of 5 stars0 ratingsImplementing Effective Code Reviews: How to Build and Maintain Clean Code Rating: 0 out of 5 stars0 ratingsHacker School Trilogy Rating: 0 out of 5 stars0 ratingsJava Web Developer A Complete Guide Rating: 0 out of 5 stars0 ratingsAsynchronous Android Programming - Second Edition Rating: 0 out of 5 stars0 ratingsFlutter for Jobseekers: Learn Flutter and take your cross-platform app development skills to the next level (English Edition) Rating: 0 out of 5 stars0 ratingsBeginning iOS Programming For Dummies Rating: 0 out of 5 stars0 ratingsSoftware Security For You Rating: 0 out of 5 stars0 ratingsMobile App Design A Complete Guide - 2020 Edition Rating: 0 out of 5 stars0 ratingsCommon Windows, Linux and Web Server Systems Hacking Techniques Rating: 0 out of 5 stars0 ratingsApple For Business: A Guide to Mac, iPad, and iPhone Rating: 0 out of 5 stars0 ratingsSoftware Knowledge Rating: 0 out of 5 stars0 ratingsAndroid Apps Security: Mitigate Hacking Attacks and Security Breaches Rating: 5 out of 5 stars5/5iOS Programming For Beginners: The Ultimate iOS App Developer's Guide Rating: 3 out of 5 stars3/5Unleash GoogleVoice's hidden power for 3G, WiFi, and free international roaming Rating: 0 out of 5 stars0 ratingsAndroid & Cellphones Rating: 5 out of 5 stars5/5Android for Beginners: Step by Step guide to develop Android App Rating: 0 out of 5 stars0 ratingsWeb app A Complete Guide Rating: 0 out of 5 stars0 ratingsJSTL: Practical Guide for JSP Programmers Rating: 3 out of 5 stars3/5Successfully Control Your iPad With Your Voice Rating: 0 out of 5 stars0 ratingsMastering MongoDB: A Comprehensive Guide to NoSQL Database Excellence Rating: 0 out of 5 stars0 ratingsChatGBT: Easily Make Money Online With ChatGBT Rating: 0 out of 5 stars0 ratings
Computers For You
Slenderman: Online Obsession, Mental Illness, and the Violent Crime of Two Midwestern Girls Rating: 4 out of 5 stars4/5The Invisible Rainbow: A History of Electricity and Life Rating: 4 out of 5 stars4/5SQL QuickStart Guide: The Simplified Beginner's Guide to Managing, Analyzing, and Manipulating Data With SQL Rating: 4 out of 5 stars4/5Standard Deviations: Flawed Assumptions, Tortured Data, and Other Ways to Lie with Statistics Rating: 4 out of 5 stars4/5Elon Musk Rating: 4 out of 5 stars4/5CompTIA IT Fundamentals (ITF+) Study Guide: Exam FC0-U61 Rating: 0 out of 5 stars0 ratingsProcreate for Beginners: Introduction to Procreate for Drawing and Illustrating on the iPad Rating: 0 out of 5 stars0 ratingsAlan Turing: The Enigma: The Book That Inspired the Film The Imitation Game - Updated Edition Rating: 4 out of 5 stars4/5The ChatGPT Millionaire Handbook: Make Money Online With the Power of AI Technology Rating: 0 out of 5 stars0 ratingsThe Hacker Crackdown: Law and Disorder on the Electronic Frontier Rating: 4 out of 5 stars4/5101 Awesome Builds: Minecraft® Secrets from the World's Greatest Crafters Rating: 4 out of 5 stars4/5Mastering ChatGPT: 21 Prompts Templates for Effortless Writing Rating: 5 out of 5 stars5/5CompTIA Security+ Practice Questions Rating: 2 out of 5 stars2/5Everybody Lies: Big Data, New Data, and What the Internet Can Tell Us About Who We Really Are Rating: 4 out of 5 stars4/5Childhood Unplugged: Practical Advice to Get Kids Off Screens and Find Balance Rating: 0 out of 5 stars0 ratingsThe Professional Voiceover Handbook: Voiceover training, #1 Rating: 5 out of 5 stars5/5People Skills for Analytical Thinkers Rating: 5 out of 5 stars5/5Going Text: Mastering the Command Line Rating: 4 out of 5 stars4/5Dark Aeon: Transhumanism and the War Against Humanity Rating: 5 out of 5 stars5/5Grokking Algorithms: An illustrated guide for programmers and other curious people Rating: 4 out of 5 stars4/5AP Computer Science Principles Premium, 2024: 6 Practice Tests + Comprehensive Review + Online Practice Rating: 0 out of 5 stars0 ratingsCreating Online Courses with ChatGPT | A Step-by-Step Guide with Prompt Templates Rating: 4 out of 5 stars4/5How to Create Cpn Numbers the Right way: A Step by Step Guide to Creating cpn Numbers Legally Rating: 4 out of 5 stars4/5
Reviews for Confident Programmer Debugging Guide
0 ratings0 reviews
Book preview
Confident Programmer Debugging Guide - Cloudy Heaven Games
Confident Programmer Debugging Guide
Confident Programmer
Cloudy Heaven Games
Published by Cloudy Heaven Games, 2020.
Confident Programmer Debugging Guide
Published by Cloudy Heaven Games at Draft2Digital
Copyright 2020 Cloudy Heaven Games
Draft2Digital Edition, License Notes
Thank you for downloading this ebook. This book remains the copyrighted property of the author, and may not be redistributed to others for commercial or non-commercial purposes. If you enjoyed this book, please encourage your friends to download their own copy from their favorite authorized retailer. Thank you for your support.
Introduction
A Debugging Story
The Problem Child
Tackling the Problem
Making Some Progress
Phantom Characters
Documenting Lessons Learned
Key Debugging Lessons
Gather any available output and data at the time of the crash.
Replicate the bug to get more information.
Take note of specific error messages, and identify parts of the code that seem to be related to the problem.
Know how to research error messages and find relevant information
Isolate the problem and get as much tracing/output data as you can, to track the course of the problem.
Be familiar with your software tools, so that you know how you can find and solve potential problems.
Once you've identified and fixed the problem, rerun the code with all test cases.
Document and share the lessons you learn while solving a bug.
How to Be a Calm, Confident Debugger
Understand the problem you are trying to solve.
Calmly establish the facts of the situation.
Know how and when to reach out for help.
Keep notes about the situation as you work through the bug.
Take a step away from the problem.
If you have a lot of bugs, use a bug tracking tool.
Using a Bug Tracker
A Debugging Process Checklist and Flow
The Checklist and Flow
A Practice Example
Not So Fast...
Identifying the Problem
Breaking Down the Program (Spoiler Alert!!!)
Doing Some Research
Putting It Together
A Possible Solution
...But Not Quite!
Another Handy Tip: Comparing Files
One Last Exercise
Some Recommended Resources
Accompanying Files
Text Editor
Search Engine and Research Skills
Bug Trackers and Defect Management
More About My Work
Appendix: Java Exercise Files
Numbers.java
Comments and Explanation on Numbers.java
Numbers2.java
Comments and Explanation on Numbers2.java
Numbers3.java
Comments and Explanation on Numbers3.java
Introduction
As a tutor, I often find that debugging even seemingly simple errors is a difficult task for many of my students. To be blunt, they usually have no idea how to even start approaching the problem. Sometimes they've been unable to make progress with an programming project, until our next session, in which I can help them fix the error in just a few minutes. So much frustration for them, and so much wasted time!
I've noticed that a lot of computer science courses don't seem to spend much time teaching students how to debug. That's a shame, because debugging and problem-solving are critical skills, not just in computer science and programming, but in other fields as well, even if no actual code is involved. For example, even in a field like management, professionals have to understand how processes work, document them, and pinpoint problems that occur so that they can develop, implement, and test solutions.
This guide is my attempt to help developers get better at debugging. It's mostly geared towards beginners, as experienced developers usually have a set of tools and tricks they've honed over the years, but anyone who feels they could use some improvement is welcome. As such, if an example seems to simple, or I seem like I'm