Day 0: A Journey Into GoLang: Chronicles of a Hobbyist Coder
Tags: go, gonegeekdev
Published: 2023-07-01 09:50:00

## Introduction

Imagine, if you will, a desolate digital ghost town. The flickering neon signs read “Kotlin” and “Python”. They are towns I once visited, intending to settle, yet never quite made my home. Sure, I sauntered through the syntax, flirted with the functions, and even tried to dance with data types, but always, always, I remained an outsider – a tourist in the realm of code.

Coding, much like the narratives spun by Lovecraft or Poe, is a haunting endeavor. It’s a realm not merely of stark logic and binary decisions, but of a beauty so profound and complex that it can send shivers down your spine. Yet, for a layman like myself, caught in the perpetual purgatory of programming proficiency, the beauty often felt obscured by overwhelming complexity.

A humble hobbyist I am, trapped in the twilight zone between my day job and my high-tech dreams. A job that pays the bills but does little to satiate my thirst for the mystic brew that is artificial intelligence and computer science. Yet, like a moth drawn to a flame, I can’t help but circle back, time and again, to the enticing luminescence of code.

Now, here I am, at the precipice of another journey. The neon sign this time reads “Go”. It’s a name that promises action, a call to adventure, an invocation to, well, go. I’ve decided to heed that call and step into the bright light. With the whispers of failed ventures echoing in my ears, I’m still here, unbroken and undeterred, toiling at the coalface of curiosity. And I invite you to join me as I wipe the slate clean and venture once more into the wild, wacky, and wonderfully bewitching world of coding.

In this blog post, I will chart my journey, from Day 1 of my Go adventure. We will walk hand in hand through the misty alleyways of programming as beginners, learning as we stumble, and stumbling as we learn. Because, dear reader, the journey is as essential as the destination. Welcome to my tale, a tale of a beginner’s tryst with Go, of embracing complexity while seeking simplicity, of getting our hands dirty while reaching for the stars.

I am no expert. I’m just a newbie in this grand theater of computer science, the protagonist of my own script, yet at the mercy of the plot twists. Like you, I’m simply here to understand and conquer, one line of code at a time. So, let’s buckle up and set off on this new journey, and let the story of Go unfold.

## Part 1: The Beginning of Curiosity

Every journey, no matter how grand, begins with an itch. A niggle. A curiosity. For me, it was the allure of artificial intelligence and computer science. Like the throb of a lighthouse in a foggy night, these subjects guided me towards an unseen shore.

This curiosity was no bolt from the blue, but rather a slow burn, a feeling that grew and festered within me, much like the small, insistent hum of cicadas on a warm summer evening. It wasn’t dramatic or sudden; it didn’t shake my world. Yet, it was persistent, relentless, gnawing at my edges until it consumed my thoughts. I found myself dreaming of neural networks and data structures, algorithms and AI, even when I barely knew what these terms meant.

Imagine a blank canvas of the mind, untouched and white. Then a drop of ink falls, spreading and coloring a small part. That’s what the world of computer science did to me. It was a drop of ink that seeped through the canvas of my thoughts, coloring and influencing everything.

In this world, every concept felt like a riddle wrapped in a mystery inside an enigma. Every idea was a puzzle waiting to be solved, a secret waiting to be unlocked. It’s like those intricate Matryoshka dolls – you open one, and there’s another one inside, and then another, and another. The depth, the layers, the complexity – it was all so enthralling.

Yet, in the face of such vast knowledge, I was but a wanderer in the desert of my ignorance. I tried, time and again, to quench my thirst, to delve into this fascinating world. I dipped my toes into Kotlin, dipped my toes into Python, but every time I was overwhelmed by the vastness of it all. It felt like trying to drink from a fire hose.

However, the taste, brief as it was, was enough to make me want more. It wasn’t long before I realized that to truly unravel the mysteries of computer science, to truly understand artificial intelligence, I had to start somewhere. Or, in my case, restart. Like Sisyphus, I was destined to push the boulder up the mountain, only for it to roll back down. But unlike the mythic king, my endeavor wasn’t a punishment, but a choice. A choice to try, to fail, and then to try again.

And thus began my new journey, a fresh expedition into the heart of computer science, equipped with lessons from past failures and a mind brimming with curiosity. I chose a different path this time, a path less traversed, a path marked with the sign – Go.

## Part 2: A New Journey with Go

Why Go? You might ask. Well, there’s a sort of poetic allure to it, isn’t there? Just the name itself – Go – is a forward-motion moniker, a signal to start, to move, to take action. As if it already contained within it an antidote to my cycle of starts and stops, an answer to my numerous reboots. It felt different, inviting, beckoning me to a fresh adventure with a promise of an uncharted territory. A journey not weighed down by past disappointments.

Go was like the proverbial old friend in a new town. Its syntax, so they say, is reminiscent of C – the long-forgotten language of my past endeavors. C and I had a fleeting romance, one that was marred by a complexity I couldn’t grasp back then. Go, on the other hand, felt like a soothing balm to my past coding woes. It promised the familiarity of C, but without its rigidity, its austere demands.

Also, there was the allure of the unknown, the curiosity about the alien terms Go seemed to throw around. Concurrency, goroutines, channels, generics – words that felt like magic spells to my beginner’s ears, words that held a world of possibilities, a promise of power. They were cryptic, yes, but instead of being intimidated, I found them to be irresistible. They were like the glittering stars in the inky sky – distant, mysterious, yet profoundly alluring.

But Go isn’t just about the unknown, it’s also about the simpler things. It feels like a cozy cabin in a tech forest, a shelter from the storm of complexities. In a world that seems to thrive on the mantra of ‘more is better,’ Go stands out with its ‘less is more’ philosophy. Its designers have intentionally kept it simple, minimizing the features to avoid unnecessary complexity. A lifeline for the drowning, a beacon for the lost. That’s Go for you.

Its bare simplicity appealed to me, the same way a clear, still lake appeals after a turbulent voyage. There is a Zen-like tranquility to Go that had me smitten from the get-go. I felt like a gold miner who has stumbled upon a virgin stream, untainted by the grueling demands of more convoluted languages.

A sense of renewed energy surged through me as I decided to embark on this new journey with Go. Here was a language that was both simplistic and powerful, a language designed with the modern problems of programming in mind.

From what I’ve read and watched, Go is quick, too – quick to compile, quick to execute. It was like a new-age, souped-up hot rod in the slow-moving traffic of my coding journey. In a world where time is of the essence, the promise of speed was too enticing to ignore.

So, there I was, a humble hobbyist, no expert, and no wizard of codes, standing at the threshold of a new journey. A journey that was as much about the destination as it was about the ride. As I took my first steps into the Go landscape, I couldn’t help but feel a sense of déjà vu. It was as if I was reliving my past adventures, but this time with a new companion – Go.

And as I dipped my toes into the refreshing stream of Go, I couldn’t help but wonder – am I about to rewrite my own tale of coding woes? Am I, like the Phoenix, about to rise from the ashes of my past failures? Only time would tell.

## Part 3: The Fast and the Curious

The world of programming is a lot like a high-speed motorway. There are the lumbering trucks, struggling uphill, belching out black smoke – they’ll get you where you need to go, but oh, the effort! Then, there are the nimble, zippy cars that simply swoosh past, leaving you eating their dust, their tail lights just a distant glow on the horizon. In this vivid analogy, Go is my new race car, sleek and speedy, the roar of its engine sending delightful shivers down my spine.

It’s not just the promise of speed that fascinated me; it was the reality of it. The Go programs I’ve run so far have compiled in a heartbeat and executed with the swift grace of a panther. The race car analogy isn’t an exaggeration. Go, I discovered, had a need for speed. And for a newbie like me, who’s eager to see the results of his code, this was nothing short of enchanting.

Speed in the realm of programming isn’t just about the thrill. It’s about efficiency and productivity. It’s about getting more done in less time. It’s about the gratification of seeing the fruits of your labor sooner rather than later. In essence, it’s about time. And time, as they say, is the most valuable commodity.

Yet, even as I found myself marveling at the speed, I realized that being fast wasn’t just about quick execution times or lightning-fast compilation. It was also about learning quickly. The simplicity of Go allowed me to grasp the basics at a rate I hadn’t experienced before. It was like finding a quicksilver stream amidst a dense, convoluted forest. Go didn’t just run quickly; it allowed me to learn quickly.

But let me pause here for a moment and wave a cautionary flag. I am still a newbie, a mere fledgling in the grand scheme of things. I am learning as I go, no pun intended. My observations and experiences, while true to my journey, may be different from the coding veterans’ perspectives or the experiences of others diving into the Go waters.

That said, isn’t it the beauty of being a beginner? To be excited by every new discovery, to celebrate every small win, to learn from every failure. To view the world through a wide-eyed wonder that hasn’t been tarnished by cynicism or dulled by routine.

My experiences with Go have thus far been exciting and enlightening. But, don’t just take my word for it. Let’s seek the expert opinion of someone more qualified than a hobbyist like me. Let’s ask ChatGPT about the merits of Go. And who knows? The answers might surprise you as much as they surprised me.

## Part 4: Seeking the Expert Opinion

As I found myself neck-deep in Go’s refreshing waters, I couldn’t help but wonder – am I swimming in the right direction? Is Go the golden thread that will lead me out of my labyrinth of past failures? To validate my choice and to gather more insights, I turned to an unexpected ally – an artificial intelligence model, ChatGPT.

In the grand theater of artificial intelligence, ChatGPT plays a leading role. It’s like a sagacious oracle, with an answer for every question, a solution for every problem. It’s a knowledge powerhouse, a digital Yoda, if you will. So, I posed my questions to it. Why Go? Why should a beginner, a novice, a hobbyist like me dive into Go?

ChatGPT, in its classic style, answered with an eloquence that was as insightful as it was straightforward. It told me that Go, with its robust simplicity, is an excellent choice for beginners. The language is designed to be easy to learn and use. It has a clean syntax, which makes the code easier to read and write. It also incorporates some of the best features from other languages while removing the extraneous elements, making it an efficient and optimized tool for programmers.

Go’s strength, ChatGPT explained, lies in its strong support for concurrent programming, a feature that allows multiple tasks to run simultaneously, thereby maximizing efficiency. Go’s inbuilt support for concurrent process channeling, via goroutines and channels, makes it a powerful tool for building efficient, high-performance applications.

The language’s approach to error handling is another feature that sets it apart. Instead of using exceptions, Go uses explicit error checking. This makes the code robust and less prone to bugs. Plus, Go also features garbage collection, which automatically manages memory, freeing the programmer to focus on the problem at hand rather than managing memory resources.

Finally, Go’s powerful standard library and thriving community are also significant boons for new programmers. The rich library provides a wide range of inbuilt functions, reducing the need for third-party modules. The active community means that help is always at hand, and there are plenty of resources and tutorials available for new learners.

My chat with ChatGPT was like finding a treasure map in my coding adventure. The more it spoke about Go, the more convinced I was about my choice. However, ChatGPT also reminded me that the choice of a programming language depends on several factors, including the specific project requirements, the performance needs, and the programmer’s comfort and familiarity with the language.

As a beginner, I found this conversation enlightening. It reinforced my faith in Go and made me even more excited about my journey ahead. With newfound energy, I was ready to dive deeper into the Go waters, ready to ride the currents and brave the waves.

I'm no expert, just a humble hobbyist. But with Go as my compass and ChatGPT as my guide, I felt ready to navigate the vast ocean of computer science. And I invite you, fellow beginners, to join me in this fascinating journey. Let’s learn, explore, and grow together. 

## Conclusion: The Chronicles of a Hobbyist Coder

We often think of coding as a cryptic, enigmatic language that only the chosen ones can understand – a complex web of ones and zeroes, tangled loops and structures, techie jargon that sounds like spells from a wizard’s book. However, my journey with Go so far has made me realize that programming can be much more approachable, more human, and at the same time, immensely exciting.

To embark on a journey, especially one that has repeatedly brought you to a crossroads, requires a mix of courage, curiosity, and, most importantly, a steadfast commitment to learn and grow. In Go, I found a companion that made this journey less daunting and more enticing. Its simplicity, speed, and efficient design opened up a world of opportunities for me. The prospect of harnessing the power of computer science suddenly seemed within reach.

Yet, my voyage has only just begun. The vast ocean of knowledge is still before me, filled with unseen depths, uncharted territories, and new mysteries to unravel. However, the beauty of embarking on such a journey is not just in reaching the destination but also in appreciating the journey itself. Every concept I learn, every program I write, every problem I solve – these are my small victories, my moments of joy.

Yes, I am a newbie, a hobbyist, not an expert by any stretch of the imagination. But as ChatGPT rightly pointed out, every coder starts somewhere. My start has been with Go. Your start could be with a different language. What’s important is that we take that first step, that we dare to plunge into the vast sea of possibilities.

As I chronicle my experiences, my victories, my failures, my learning, I invite you to join me. My story is not unique, it’s a story that many of you may resonate with. We are all explorers, voyaging into the great unknown, looking for that elusive treasure of knowledge and skill. As we traverse this path, let’s share our experiences, let’s learn from each other, let’s grow together.

So, to all my fellow beginners out there, let’s keep our curiosity burning. Let’s be patient with our progress. Let’s enjoy this journey into the world of programming. And most importantly, let’s never stop exploring.

Remember, the beauty of the journey lies in the journey itself, not just the destination. And as I continue my coding journey, dipping my feet into the Go waters, I look forward to the challenges, the triumphs, and the lessons it will bring. Because, in the end, that’s what makes this journey worthwhile.

The road may be long, and the path may be tough. But as long as our spirit of curiosity remains unbroken, as long as our thirst for learning remains unquenched, no challenge is insurmountable. And who knows? The journey we embark upon today might just lead us to become the coding wizards of tomorrow.

Here’s to the curious, the tenacious, and the daring! Here’s to the journey! Let’s Go!

## Call-to-Action: Join the Journey

It’s been an exhilarating ride so far, hasn’t it? We’ve taken our first steps into the realm of Go, fueled by curiosity and a burning desire to learn. But the journey doesn’t end here. In fact, it’s just the beginning.

If you’ve found my chronicles helpful, engaging, or perhaps even a little entertaining, I invite you to join me on this incredible journey.

Follow me, @GoneGeekDev, on all my social media platforms. You can join the ride on YouTube, TikTok, Twitter, Instagram, Facebook, GitHub, and LinkedIn. I share a lot of fascinating stuff there – tips, tricks, updates, and even the occasional programming meme for a good laugh.

If you want to delve deeper into my coding adventures and get exclusive behind-the-scenes access, you can subscribe to my Patreon page. As a patron, you’ll get early access to my blogs, videos, and much more!

For those who would like to support my journey in a more tangible way, you can buy me a coffee by transferring some funds to my PayPal account. Every bit of support helps me create more content, explore more technologies, and share more of my journey with you.

And now, as we part ways, I leave you with a quote that encapsulates our shared journey, “In the world of programming, the journey of a thousand lines begins with a single character.” So, here’s to that single character that sets us on our path, here’s to our shared passion for learning, and here’s to our shared journey. Until next time, keep exploring, keep learning, and most importantly, keep coding.

Let’s Go!