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
Corona SDK Mobile Game Development: Beginner's Guide - Second Edition Rating: 0 out of 5 stars0 ratingsJump Start PHP Environment: Master the World's Most Popular Language Rating: 0 out of 5 stars0 ratingsPHP Team Development Rating: 3 out of 5 stars3/5Rails 4 For Startups Using Mobile And Single Page Applications Rating: 0 out of 5 stars0 ratingsSpring Security: Effectively secure your web apps, RESTful services, cloud apps, and microservice architectures Rating: 0 out of 5 stars0 ratingsMastering OpenCV 3 - Second Edition Rating: 0 out of 5 stars0 ratingsMicrosoft .NET Framework 4.5 Quickstart Cookbook Rating: 0 out of 5 stars0 ratingsInstant Java Password and Authentication Security Rating: 0 out of 5 stars0 ratingsThe Comprehensive Guide to Kotlin Programming : A Complete Reference Guide Rating: 0 out of 5 stars0 ratingsLPI Web Development Essentials Study Guide: Exam 030-100 Rating: 0 out of 5 stars0 ratingsUltimate SwiftUI Handbook for iOS Developers: A complete guide to native app development for iOS, macOS, watchOS, tvOS, and visionOS Rating: 0 out of 5 stars0 ratingsJava Web Developer A Complete Guide Rating: 0 out of 5 stars0 ratingsNoSQL Essentials: Navigating the World of Non-Relational Databases Rating: 0 out of 5 stars0 ratingsAndroid Studio Hedgehog Essentials - Kotlin Edition: Developing Android Apps Using Android Studio 2023.1.1 and Kotlin Rating: 0 out of 5 stars0 ratingsMastering OpenCV with Python Rating: 0 out of 5 stars0 ratingsBuilding Android Games with Cocos2d-x Rating: 0 out of 5 stars0 ratingsMastering Google App Engine: Build robust and highly scalable web applications with Google App Engine Rating: 0 out of 5 stars0 ratingsAndroid Application Programming with OpenCV Rating: 3 out of 5 stars3/5Harnessing the Power of Firebase and Google Cloud Platform: A Comprehensive Guide for Developers Rating: 0 out of 5 stars0 ratingsjQuery Game Development Essentials Rating: 0 out of 5 stars0 ratingsMastering Android Wear Application Development Rating: 0 out of 5 stars0 ratingsNode Cookbook Rating: 0 out of 5 stars0 ratingsLearning LibGDX Game Development - Second Edition Rating: 0 out of 5 stars0 ratingsAndroid Studio Electric Eel Essentials - Java Edition: Developing Android Apps Using Android Studio 2022.1.1 and Java Rating: 0 out of 5 stars0 ratingsObject Oriented Programming Inheritance: Fundamentals and Applications Rating: 0 out of 5 stars0 ratingsASP.NET Application Development Fundamentals Rating: 0 out of 5 stars0 ratingsAndroid Application Development with Maven Rating: 0 out of 5 stars0 ratingsHTML 5 Shoot 'em Up in an Afternoon Rating: 0 out of 5 stars0 ratings
Computers For You
Deep Search: How to Explore the Internet More Effectively Rating: 5 out of 5 stars5/5Mastering ChatGPT: 21 Prompts Templates for Effortless Writing Rating: 4 out of 5 stars4/5Creating Online Courses with ChatGPT | A Step-by-Step Guide with Prompt Templates Rating: 4 out of 5 stars4/5Procreate for Beginners: Introduction to Procreate for Drawing and Illustrating on the iPad Rating: 5 out of 5 stars5/5Elon Musk Rating: 4 out of 5 stars4/5The Self-Taught Computer Scientist: The Beginner's Guide to Data Structures & Algorithms Rating: 0 out of 5 stars0 ratingsThe ChatGPT Millionaire Handbook: Make Money Online With the Power of AI Technology Rating: 4 out of 5 stars4/5The Innovators: How a Group of Hackers, Geniuses, and Geeks Created the Digital Revolution 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/5CompTIA Security+ Get Certified Get Ahead: SY0-701 Study Guide Rating: 5 out of 5 stars5/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/5Microsoft Azure For Dummies Rating: 0 out of 5 stars0 ratingsEverybody Lies: Big Data, New Data, and What the Internet Can Tell Us About Who We Really Are Rating: 4 out of 5 stars4/5CompTIA IT Fundamentals (ITF+) Study Guide: Exam FC0-U61 Rating: 0 out of 5 stars0 ratingsLearn Typing Rating: 0 out of 5 stars0 ratingsStorytelling with Data: Let's Practice! Rating: 4 out of 5 stars4/5What Video Games Have to Teach Us About Learning and Literacy. Second Edition Rating: 4 out of 5 stars4/5Fundamentals of Programming: Using Python Rating: 5 out of 5 stars5/5A Quickstart Guide To Becoming A ChatGPT Millionaire: The ChatGPT Book For Beginners (Lazy Money Series®) Rating: 4 out of 5 stars4/5The Musician's Ai Handbook: Enhance And Promote Your Music With Artificial Intelligence Rating: 5 out of 5 stars5/5Alan Turing: The Enigma: The Book That Inspired the Film The Imitation Game - Updated Edition Rating: 4 out of 5 stars4/5Computer Science I Essentials Rating: 5 out of 5 stars5/5The Professional Voiceover Handbook: Voiceover training, #1 Rating: 5 out of 5 stars5/5The Hacker Crackdown: Law and Disorder on the Electronic Frontier 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