Skip to main content

Command Palette

Search for a command to run...

How Recording Bugs Helps Improve My Programming Skills

Published
3 min read

Note: As English is my second language, I have relied on ChatGPT to optimize my article.

As a graduate of computer science, I often find myself feeling inadequate in my programming abilities. For the past 10 years, I always consider myself a novice. I struggle with feelings of inadequacy, despite receiving reassurance from friends.

In July of 2022, I embarked on yet another attempt to master programming as a novice. I vowed to commit executable code every day, even if it was as simple as printing "hello world." With this in mind, I began working on a project, I still recall the anxiety I felt when I encountered a bug that caused my code to malfunction. However, I persisted and relied on a guide to help me print the messages received by my bot, and respond to user messages. Despite my efforts, I was unable to get the bot to respond to double-checked messages, resulting in an endless loop that prevented me from handling other messages. I spent two days poring over my code and comparing it to the guide, but I still couldn't fix the problem.

Finally, I discovered that the root of the problem was that I had not opened my proxy. Once I corrected this issue, my code worked well! However, the bug reappeared a few days later, forcing me to spend half a day fixing it. I began to keep notes to help me keep track of each bug and its solution, a practice that proved invaluable as I continued to encounter and fix a series of bugs. The sense of excitement and accomplishment that accompanied each successful resolution of an issue was unparalleled.

I aim to enhance my daily learning objectives by committing code every day while simultaneously documenting every bug I encounter, no matter how trivial.

Below is a record of some of the bugs I encountered:

  1. The letters were lowercase, with the left side in uppercase and the right side in lowercase, rendering it impossible to locate the correct data.

  2. The calculation formula was incorrect.

  3. The authentication expired, causing the operation to fail, but no reason for the authentication expiration was logged.

  4. Why wasn't the reason logged? It was because the error type was incorrect.

  5. The action could not be reset during retry due to the uninitialized map of the action, resulting in it remaining empty at all times.

In a week, I documented 35 bugs for a small project. For my subsequent project, I encountered 25 bugs. To monitor my progress, I document the bugs I have resolved and their names using the "DONE/WIP - Num of bugs - project name" format. Each time I realize I have successfully resolved numerous bugs, a sense of accomplishment washes over me, spurring me on to continue coding and overcome my fears of bugs and failure.

I must confess that I used to dread the prospect of failure and bugs, having once spent a week stuck on a simple typo when I was just starting out as a novice coder. For many years, I was reluctant to identify myself as a programmer, despite having worked as one for years. However, I finally found a successful approach to learning last year by committing code every 100 days, and coding is no longer a source of anxiety for me.