A recollection of how I started. The exact timeline may not be accurate.
My journey into the world of computers and programming didn’t begin with a course or a teacher—it started with curiosity. I wondered how computers worked, how they communicated, how sound and graphics were presented, how they calculated, and how something so compact could do so many things.
I began with the basics: binary numbers and logic gates. I borrowed books from the library, but everything felt very abstract. I would stop and resume from time to time, but it remained difficult to grasp. Whenever I met friends studying computer science, I would ask questions about computers and programming. But either they didn’t fully understand my confusion, or perhaps the field was just too broad to explain in a casual chat.
Eventually, I came across the C programming language and the classic “Hello, World” example. Still, it didn’t quite explain how computers could do so much.
So I moved on.
During university, I always intended to take at least one introductory module in programming, but scheduling conflicts meant it never happened. One day, a friend mentioned she was attending a Python bootcamp at a training centre. I looked it up and signed up straight away. It was an introduction to data analysis using Python.
That sparked more questions than it answered. Why did I need to install Python separately? What were Conda and Miniconda? What was Jupyter Notebook? What were environment variables? Why did we need to install and import packages? Why do some programs require compiling, while Python doesn’t? What does it mean that Python is an interpreted language?
I also began using code editors—but there were so many: PyCharm, VS Code, and others. Again, I was unsure which to choose. I could write some code, but didn’t know how to apply it. At this stage, I had more questions than solutions.
But I kept going.
I followed tutorials on YouTube, Coursera, and Udemy. People said Linux was everywhere, so I decided to explore it. It felt like entering a never-ending world. I learned how a computer boots, the difference between root and non-root users, bash scripting, the sudo
command, and basic network configuration.
I completed a Google IT Support course on Coursera. It included many hands-on tasks using cloud terminals, where I practised commands like chmod +x
, sudo
, cd
, and more. But even then, I wasn’t sure how it all connected to real-world usage.
I still wasn’t building anything fun.
Then I found David Bombal’s YouTube videos on cybersecurity and started learning Linux commands with new enthusiasm. Cybersecurity looked interesting. I began learning about routers, switches, and basic networking. I explored the Windows Subsystem for Linux and learned how to connect to another PC remotely. I was fascinated by the idea of running one operating system inside another.
Next, I moved on to Git and version control. I learned how to install packages in Linux, configure Git with my username and email, push code to GitHub, and clone repositories.
Then I discovered the Raspberry Pi. I wanted to host my own server at home. I set up a remote desktop, configured my router, and learned about IPv4 and port forwarding. Since my public IP address wasn’t static, I explored dynamic DNS and discovered Cloudflare. I even bought a personal domain.
I followed a YouTube video to set up OpenMediaVault on a Raspberry Pi.
At some point, I stumbled across GitHub Pages and saw some really nice personal blogs using the Jekyll Chirpy theme. I followed the steps, set one up using Jekyll, and configured DNS settings. For the first time, I felt I had actually built something.
And I kept going.
I explored Docker, virtual machines, and different types of virtualisation software. Then came cloud computing. I experimented with free virtual machines on Microsoft Azure.
Back with the Raspberry Pi, I explored accessories and different casings. I set up WireGuard VPNs and learned the basics of iptables
and firewalls.
Then came machine learning. I signed up for a course from AI Singapore, which included a one-year subscription to DataCamp. It covered Python basics, data cleaning, and more. I completed the course but found the syntax, functions, and packages overwhelming. I learned about virtual environments, Conda, and Miniconda.
Then ChatGPT arrived.
I joined the waitlist and started experimenting with the API via Google Colab. My interest in hardware grew. I built a desktop PC, learned about GPUs and different interfaces, and even disassembled and reassembled the components. I bought more Raspberry Pis and started building a NAS server. I set up TrueNAS and Proxmox, running various virtual machines—Windows, macOS, and OpenSUSE.
I experimented with Home Assistant (HomeLab), set up VPNs with Raspberry Pi, created cron jobs to update dynamic DNS via Cloudflare, and used Pi-hole to monitor my home network. I configured Nginx Proxy Manager to create local domains and used Docker and Portainer to manage Docker containers.
As ChatGPT improved, I used it to write code. I built simple web interfaces to interact with the OpenAI API. I became more confident with WireGuard and PiVPN, and gained a better understanding of iptables
rules.
Still fascinated by hardware, I bought mini PCs to build custom routers using OpenWRT—my Asus router was limited to just 1Gbps.
I enrolled in a CCNA course and began learning about switches, VLANs, and Cisco networking terminology. I still struggle with gaining practical experience, but it added another layer of understanding.
As AI tools became more powerful, I used them to write Google Apps Script, build static websites, and host them on GitHub Pages. I explored HTML, CSS, JavaScript, Node.js, React, and web security—HTTP, HTTPS, and various JavaScript libraries. I even created Chinese learning web apps and hosted them online.
Raspberry Pi remained a constant. I explored SMTP servers, Google authentication, SSH login configuration, SSH keys, Let’s Encrypt certificates, and more Cloudflare settings.
Now, I’m learning WordPress—another deep rabbit hole.
Looking back, there has been a lot of confusion, and even now I often feel like a beginner. But through continued learning and building, things have started to make more sense. At the beginning, it all felt like darkness—I didn’t know where to start and was full of doubts.
Now, with tools like ChatGPT, answers come more easily, and the path ahead feels a little clearer.
Leave a Reply