My Experience at ALX (And an excuse to talk about other things as well) | Kibet Ismael



My Experience at ALX (And an excuse to talk about other things as well)


April 14, 2024


At the tipping end of 2022, I finally got the courage to apply for the ALX Africa Software Engineering course. On 5th Dec 2022, I got the acceptance letter and was scheduled to start on 23rd January 2023. First, how did I get here, so let’s go back, way back.

Background

The year is 2009, I am 6 years old. This was my first encounter with Electricity. It was the most fascinating thing I had ever seen. It was probably because I had never seen it before, or that no one could explain it to me to my satisfaction. 5 years later, and 7 years after Steve Jobs introduced the smartphone to the world, I finally owned my first smartphone, a Huawei Ideos. I immediately created my email address and got my first phone number. I just browsed the internet all day, watched YouTube videos, and even rubbed some shoulders with early Bitcoin scams. 4 years later (2018), I started asking myself how the applications and websites I used were created. I knew that apps were used to do and create things, so they could potentially be used to create other apps, then who created the first app? So I was in a chicken and egg situation. So over the holiday, I dug myself a rabbit hole as I did research (google search). That’s when I discovered programming. My little research showed that I should start with Python. I used an app called Sololearn. A few months later I learned Python, HTML, CSS, and some little Javascript. I also tried to learn Java but couldn’t handle them complexity.

A year later (2019), I had a laptop and I could fully explore this world, in the little time I had in between holiday and school. 2020 hits, COVID hits and we close school indefinitely. I was in my final year of high school. During that time, I learned a lot, I focused on web development and did some PHP, Django, jQuery, Bootstrap, and Python automation. I remember writing a script to automatically log me into Zoom lessons we had during COVID-19. I ended up being home for 7 months before resuming school.

In November 2021, I was done with high school and had just joined University, studying what I found most fascinating, Electrical Engineering. Then, I decided to get into the modern side of Javascript. First, I started with Typescript, then jumped into Angular and later ReactJS and subsequently NextJs.

Culture

Throughout my time then, from what I had experienced, the world of tech was easily accessible and was usually free. If I want to learn about Docker, then surely there is the Docker documentation. Similarly, python comes with its official documentation. I don’t have to pay to be taught how to use Python, you have all the material at your disposal. There is also the issue of being issued with a certificate. I am not a big fan of such certifications especially when they seem like they are just taking some money. I would argue that someone who has used Amazon Web Services(AWS) over the past 6 years and does not have a certification is more qualified than someone who took a 3-month Bootcamp and did the expensive certification exams and passed. So in my opinion, getting a certification was not at all necessary.

warming up

Every once in a while, limiting to within Kenya in this theory, there is an opportunity so good you have to be part of, lest be left behind. A while back, while I still discovering the intricacies of programming, there was a program by Andela. The engineers who got to be part of this project are some of the best developers I look up to right now. I believed ALX was the Andela of my time and I knew I had to join, it was also a scholarship, which was not an issue for me since as I said earlier, I won’t pay to be taught something available.

Experience

Stepping into the ALX Software Engineering program felt like upgrading from a familiar neighborhood to a bustling city—the kind that never sleeps, always evolving, and filled with opportunities at every turn. Already armed with some programming experience, I thought I had seen it all, but little did I know, that ALX was about to take my skills to new heights and broaden my horizons in ways I never imagined.

From the get-go, ALX wasn’t just about learning—it was about diving headfirst into a vibrant community of tech enthusiasts, each with their own story to tell and skills to share. Whether it was tackling Linux commands or diving into the world of Vim and eventually Neovim, every moment felt like a revelation, unlocking new levels of efficiency and customization that I never knew existed.

But what truly set ALX apart was its hands-on approach to learning. Instead of drowning in theory, I found myself knee-deep in real-world projects, grappling with the intricacies of C, Python, Flask, Node.js, and more. With each line of code, I felt myself growing more confident and more adept at turning ideas into tangible solutions.

And then there were the mentors—seasoned veterans of the tech world who guided us through the maze of algorithms and best practices with the patience of saints. Their wisdom became my compass, steering me through the complexities of MySQL databases and the intricacies of DevOps tools like Docker and Kubernetes.

But perhaps the most rewarding part of my ALX experience was the camaraderie—the sense of belonging that comes from being part of a tight-knit community united by a common passion. Late-night coding sessions turned into impromptu brainstorming sessions, and every bug squashed felt like a victory shared among friends.

As I look back on my time at ALX, I’m filled with gratitude for the friendships formed, the skills honed, and the memories made. It wasn’t just a program—it was a journey of self-discovery, a testament to the boundless possibilities that await those willing to dive headfirst into the world of software engineering. And as I embark on the next chapter of my career, I do so with the knowledge that ALX has equipped me not just with skills, but with the confidence and resilience to tackle whatever challenges come my way.

Honourable mentions

At ALX, we tackled a lot of projects, but one of them stood out as the best - implementing a hashmap in C from scratch.

The journey began with a humble realization of just how ubiquitous hashmaps are in the realm of programming. From optimizing search operations to efficiently storing key-value pairs, their versatility is unparalleled. But understanding them at a fundamental level required more than just a cursory glance—it demanded a deep dive into the inner workings of these data structures.

I set out to build my hashmap implementation in C. Each line of code felt like a brushstroke on a canvas, slowly bringing to life a masterpiece of efficiency and elegance. From hashing functions to collision resolution strategies, every decision was deliberate, every choice a lesson learned.

As the project progressed, I found myself plumbing the depths of C’s syntax and semantics. But more than just a technical exercise, it was a journey of self-discovery—a testament to my ability to tackle complex problems head-on and emerge victorious on the other side.

And then came the moment of truth—connecting my C hashmap implementation to Python’s dictionary data structure. It was a bridge between two worlds, a testament to the universality of programming concepts transcending language barriers. With each key-value pair seamlessly passed between C and Python, I felt a sense of accomplishment unlike any other.

But beyond the technical triumph, this project taught me the value of perseverance and the importance of understanding the tools at my disposal. It was more than just a hashmap implementation—it was a journey of exploration and enlightenment, a testament to the power of curiosity and determination in the world of software engineering.

As I reflect on this project and the countless others that shaped my journey at ALX, I’m filled with gratitude for the opportunities it afforded me and the lessons it imparted. It wasn’t just about building a hashmap—it was about pushing the boundaries of what I thought possible and emerging stronger, wiser, and more confident in my abilities. And as I continue on my path as a software engineer, I carry with me the lessons learned and the memories forged, knowing that the journey is far from over.

Final thoughts

As I reflect on my journey through the ALX Software Engineering program, I’m filled with gratitude for the experiences shared, the skills acquired, and the friendships forged. From diving into the depths of Linux to crafting elegant solutions with C and Python, every moment has been a stepping stone toward growth and discovery.

ALX wasn’t just a program—it was a community, a support system, and a catalyst for transformation. It challenged me to push past my limits, to embrace the unknown, and to emerge stronger on the other side. Through it all, I’ve gained more than just technical proficiency—I’ve gained resilience, adaptability, and a passion for lifelong learning.

As I venture forth into the world of software engineering, I carry with me the lessons learned and the memories cherished. And while the road ahead may be fraught with challenges, I face it with confidence, knowing that ALX has equipped me with the tools and the mindset to thrive.