tl;dr: Struggling with self-doubt while diving into the world of programming, I’ve been exploring ways to improve my skills and streamline my workflow. Despite encountering challenges, I’ve managed to create a simple CLI in Go, a small but functional step forward. Embracing curiosity and the learning process, I remind myself that progress takes time. Although it’s easy to get overwhelmed, I strive to keep my desire for creating alive, overcoming doubts and growing as a programmer.

Lately, I’ve been posting less, engrossed in programming rather than just sharing ideas and procrastinating. Rarely have I found the time to truly code, as I’ve been more of an application user, focused on understanding how to utilize and make the most of the packages, rather than how they function.

In my last post, I talked about my desire to automate the creation of a journal using Markdowns to ease my work and test my ability to turn ideas into reality, viewing it as a simple project.

After a brief search, I found some open-source projects that already solve the tasks I want, but not to my complete satisfaction. It bothered me that these packages didn’t utilize the official API or the intended API token, so I set out to write something of my own or transform a significant amount of code to better align with my idea.

However, I didn’t want to reinvent the wheel entirely, so I examined the code of these packages to understand the approaches and ideas implemented. Honestly, I’ve never tackled such a task before and was dismayed to discover that reading and comprehending the code proved challenging. It took me several evenings just to grasp the rough structure of the packages, and I’m still not fully there on a detailed level.

Self-doubt crept in, and I thought, if I can’t even understand this code, then it’s all pointless. My aspirations exceed my capabilities, and I’m uncertain if I’ll ever attain them. There are so many brilliant and excellent programmers out there, and I struggle to grasp basic inheritance.

However, wallowing in despair didn’t get me anywhere, so I considered what I could do with what I have. Perhaps I can’t write excellent code, but I can write mediocre and simple code that works.

With determination, I embarked on my attempts and allowed failures to make my ignorance less ignorant.

It’s easier to write, conceptualize, and dream than it is to execute. So, I created my first simple CLI in Go, allowing me to generate pre-defined Markdown files, sparing me the need to repeatedly copy the same points from elsewhere. While I mostly used ChatGPT for that, listed is done. Rudimentary like a brick, but it serves its purpose, for now.

Writing and teasing projects gave me a sense of productivity, but I hadn’t truly created anything. In the end, the code must be written. Even though the beginning was dreadful and emphasized my sobering abilities, I found great joy in experimenting and exploring. It’s been a long time since I’ve had such focused concentration on a single endeavor.

I felt like a child who has fun exploring, trying, and failing, but with the anxiety, self-doubt, and impatience of an adult. Just being curious and embracing the learning process is so hard, yet it’s the very essence of growth. It reminds me that every journey starts with small steps, and even though my progress may feel slow and imperfect, each stride brings me closer to becoming the programmer I aspire to be. So, I hope that the wish of creating will always be bigger than self-doubt that may arise.