How to Get Good at Computers
2 April 2025
I often hear things such as "technology moves so fast it's impossible to keep up with it" or "there is too much to learn when it comes to programming". While it takes some effort, I don't think it's really that complicated and I'd like to share my guide for getting good at computers. The goal of the guide is to learn enough to get a feel for how computers work which should hopefully dispel any fears of the unknown.
Step 1 - Learn C
The first step is to learn the C programming language. The reasons for learning C in the context of getting a feel for programming:
- C is minimalistic;
- C is commonly used in open source software;
- C is close to assembly.
The C Programming Language book is less than 300 pages long and it explains C in its entirety. Learn how to manage complexity of programs that have 1k-10k lines of code. Get a feel for what is an executable and what is a library.
Step 2 - Install Arch Linux
The next step is installing and configuring Arch Linux. Why Arch Linux? Because you start with a blank slate, and it comes with famously great Wiki pages that guide you through the entire process.
The goal is to set up a computer usable for your day-to-day computing tasks by starting from zero. Every part of your system will be chosen intentionally:
- how to format your hard drive;
- which file system should each partition be;
- how windows appear on the screen (desktop environment vs window manager);
- how files are organized;
- many, many more.
You will exercise reading and following the documentation. When something goes wrong, you will practice the skill of getting out from the mess you yourself have created. The setup process rewards discipline since you cannot just do whatever and hope for the best. Computers are deterministic creations - they do exactly what you tell them.
Conclusion
That's it! When you are done, you might observe that a good bit of software you used before is over-complicated mess for no good reason. Most of the software that you will install is written in programming language that is more than 50 years old so you should be reassured that not all programming knowledge is as fleeting as some would have you believe. You will understand computers from the OS to the arbitrarily complex programs. That level of understanding is satisfactory for me, at least for now...