The prelude
I started programming in Scratch when I was 10 or so years old, all of which I taught myself (this is a recurring theme). I didn't touch programming again until year 9 which is when I started my GCSEs. I took computer science as one of my options since I liked computers and I thought it would be fun. It was not. My class was the eldest year in this new school, we had no teachers at the time that actually did computer science, so we had a math teacher cobble together what he could for us. And later when we did get a teacher, we were given a booklet and told to complete it by the end of the year, it was awful.
Having completed my GCSEs, almost completely self-taught, I started my A-levels and I took computer science again. To my great surprise I had an not one but two amazing teachers, who were able to teach me a lot. I was able to learn a lot about java, and the deeper concepts behind programming and computer science.
Diving right into the deep end
I first started using Linux when I learned about self-hosting which came about from a friend of mine who was self-hosting a minecraft server. This prompted me to set up my own server in a virtual machine, all of this was brand new to me at the time and I found myself in the middle of a rush of information.
This all took place around, late February 2023. Following a tutorial on a now deleted YouTube video, probably not the best source. But despite that, I managed to get an Ubuntu virtual machine and bear in mind this is not even the server edition but the desktop version of Ubuntu which I chose.
Shortly after, I learned of Catppuccin, an amazing soothing pastel theme with 4 major flavors. I decided to try out their userstyles, a way to apply the theme to a website, done through the means of a browser extension. And I found myself with a beautiful theme for YouTube, but it was riddled with bugs. So I decided to try and fix them, and I did but only for myself, having almost zero idea on how to use git let alone GitHub.
I'm not drowning?
In March 2023, I joined the Catppuccin discord server and was greeted by a friendly community, and one person was kind enough to walk me through the process of creating a pull request. But this was not with Git but rather the GitHub web interface where I would drag and drop, copy and paste all the changes I had made. And unexpectedly, I became the maintainer of the userstyles? I was not expecting this at all, but I was happy to take on the role.
Needless to say this forced me to get more in touch with my tools like Git and GitHub, and I was able to learn a lot from this experience. I was also able to learn a lot about CSS and how to use it to style a website. This was a great experience, and I am damn thankful for it.
Trying to swim
In late April to early May 2023, I felt ready for more which prompted me to try and learn more about Linux and how to use it. This lead me to uninstalling windows from my laptop and installing Ubuntu. This was a big step for me as I had never used Linux as my main operating system before and at first it felt like a swing and a miss. I shortly after realized that it was ubuntu just was not the right distro for me.
So prompted by others once more I decided to try installing Arch Linux. Having tested installing in a virtual machine several times I felt ready to install it on my laptop. And I did, and it was a success. I was able to install Arch Linux on my laptop, and I was able to use it as my main operating system.
At this point I created my dotfiles repo, having learned it's a good idea to have the ability to easily install all my config files on a new machine. And I was able to learn a lot about how to use Git, and how to use the command line.
Learning to swim
In late May 2023, I was introduced to NixOS and I loved the idea, but I think I was not ready for it. So I didn't commit until much later around late July 2023. I was able to install NixOS on my laptop, and I was able to use it as my main operating system. By this time I was much more proficient with the command line and all my other daily tools.
Around mid-July, I managed to become a member of staff for the Catppuccin userstyles repo which introduced me to a whole new set of skills. Like how to manage a repo, how to manage issues and pull requests, and how to manage a community. One of the strongest skills I learned from this is CI/CD, and how to use it to automate tasks, this was necessary for the userstyles repo due to the huge number of tasks that repetitive. Now almost all my repos have some amount of CI/CD.
I really can swim
As of the time of writing, I am still using NixOS as my main operating system and I am still learning a lot about it. I have also been able to learn a lot about programming and how to use Git and GitHub. I have also been able to learn a lot about how to manage a community and how to manage a repo. And i'm thankful for all the people who have helped me along the way. I hope to continue learning and improving my skills.