My Journey With Computers
Nearly two weeks ago (wow, time flies), I wrote a blog post about two truths and a lie where I presented three things about me and you would have to guess which one was a lie. There were a few people on the thread about the post who were surprised I’ve only been into computers for about three years. That, along with DistroTube’s latest video, and a recent post by Mike Stone is why I’m writing this post.
My journey begins before I can really clearly remember. I’ve always had computers and the Internet around me but I never really got into them or bothered to learn about them for most of my life; I really just played games and browsed the Internet. I distinctly remember the early days of Youtube, Facebook, Limewire, and so on. RuneScape, Club Penguin and flash games were also a big part of my childhood.
As time went on, I only learned what I needed to in order to fix whatever problems came up on my Windows 7 laptops (if you’re curious I’ve only ever used Windows XP, then 7, then 10). I learned the basics of looking things up trying to find solutions to whichever problems I encountered, I learned to use Malwarebytes and/or the built-in Windows Defender instead of whatever other garbage there is, I ran CCleaner for a while, and pretty much just got by with whatever I needed to by looking things up.
By late high-school I had learned what Linux was and played around with it a bit. I installed things like Ubuntu, Linux Mint, and some other variants of Ubuntu but never used it daily as I had no reason to. After all, they didn’t support my video games. I only knew to go to the command line to use
sudo apt-get not even knowing what those commands did, just that I had to use them to update my computer and install new software. I didn’t know what a shell was or who Richard Stallman or Linus Torvalds are, only that Linux was free (as in free of cost) and that’s what I found interesting at the time.
In my last year of high school, I signed up for Codecademy to learn how to program in Python. Not because I needed to, but because I heard it was a good language for beginners and I wanted to try my hand at this whole programming thing. I remember going through it but getting quite bored with it and not really seeing the point. I didn’t have anything I wanted to program and soon lost interest, especially since it didn’t do anything to explain programming concepts to me; it just threw what felt like syntax problems at me. To this day (even after giving it another shot later in life) I think Codecademy is somewhat similar to trying to use Duolingo to learn a language: one might learn the different words used in the language, but it can’t teach one how to use it properly.
I finished High School and went to university… but not for Computer Science! In fact, I first went to get a Bachelor of Science in Chemistry. In my first year I took some computer science electives because I still had that curiosity to learn Python. I learned and used Python in the first semester and Java in the second. Still, I was using Windows to do everything. I programmed Python in Sublime text and Java in IntelliJ IDEA. The flame was ignited; even though I really enjoyed chemistry (I still do), I knew working with computers is what I wanted to do. I switched my program to a Bachelor of Computer Science and entered second year as a full-fledged Comp. Sci. undergrad.
That winter I built my own PC during the Black Friday sales around American Thanksgiving. That was the first time I built a PC and the first time I had a relatively powerful gaming PC. I installed both Ubuntu Linux and Windows 10 on it (using a Windows 10 Pro key provided by my university) because I was still quite heavily into gaming, though I now did all my programming on Linux.
It was the summer of 2018 where I feel my knowledge really exploded and hasn’t stopped since. That summer I got an internship doing software development. It was the first time I used Git seriously, the first time I took the time to really customize the heck out of Vim, and the first time I encountered shudders other people’s code. Curiosity kept driving me and when I had downtime at that job I spent it reading various StackExchange forums, I learned all about FOSS licensing, what the FSF, EFF, SFC, OSI, and LF were, who Linus Torvalds, Richard Stallman, Eric S. Raymond and folks are, and so much more.
Things have kept growing since then. I switched from Ubuntu to Debian and used XFCE for a long time. Then I discovered tiling window managers from Linux youtubers such as Derek Taylor and Luke Smith and started using bspwm. When I moved into an apartment on my own, I started self-hosting the services you find me on today. I’ve tried various distributions like Arch Linux, Gentoo, and OpenSUSE in addition to the Ubuntu derivatives, Linux Mint, and Debian which I was already familiar with. I’ve also tried non-Linuxes like FreeBSD, OpenBSD, and Plan9. I’ve learned more about the history of computing than my naïve younger self ever knew existed. I’ve programmed in Scheme and Prolog. I was even tempted by Emacs at one point (scary, I know).
All that being said, I’m really only a little more than three years into this field and I am continuing to learn new stuff every day. It was only relatively recently when I began doing things like writing POSIX shell scripts instead of Bash-specific ones wherever I can, thinking about the impact of the software I write, and even properly using keys like
b in Vim. I went from not even having a good reason to use Linux to now running Debian Sid, using dwm and a bunch of other Suckless software, writing my own Vim statusline, self-hosting my own email server, participating in my first CTF and more.
I am deep in the rabbit hole now…
This is my eighty-fourth post for the #100DaysToOffload challenge. You can learn more about this challenge over at https://100daystooffload.com.