Giovanni's Diary > Programming >

Offline Programming

I often practice offline programming and It is something I want to share with other people. Offline programming means what it means, to go totally offline while doing that I like: programming. Of course this is not limited to programming: It can be reading, writing, debugging, etc.

But Giovanni, just disconnect from the internet and that is It, you may say, and I would totally agree with you. Except the fact that we have become so reliant on the internet that this is not so straightforward. I grew up assuming I could find help in online forums whenever I needed it. New generations will grow up assuming they can use LLMs to answer all their questions (which can be good and bad, I will leave this discussion for another day). But when you are offline, you are on your own. It's just me, the computer / compiler and the program I am writing, and I LIKE this.

How do I use a certain API? how do I learn it? I may keep doing what I know but at a certain point I will need to do something I don't know, how can I learn new information?

I think being able to autonomously figure out all of this is a great skill to have. Moreover, when I program offline I have less distractions. Since I don't need an internet connection, I can be wherever I want as long as my battery lasts (so I am optimizing for power consumption in my kernel configuration). I may start looking at the sky or at the trees around me instead of a youtube video when I need a break. I may start paying attention to the sound of the birds or the movement of the clouds, or deeply reason about the problem I have, since there is no other way around.

Back to the question, how do you learn more stuff. Unsurprisingly, people have been collecting many forms of knowledge throughout history, even before the internet. In software, this can be documentation or actual source code. Of course, some programs are more documented than others, with the best example probably being emacs which has a huge offline documentation pre-installed in each emacs build, and each package is easily explorable. I will prefer simple, free and open source software over any other, so that I can understand it and modify It as I need / want. I will use something like Linux From Scratch instead of depending on an already existing linux distribution to do package management for me. Anyway, getting used to reading source code is probably the best thing you can learn.

But you already knew all of this, the question becomes how do I learn something that is not related to programming. People back in the day created what is referred to as an encyclopedia, a collection of basically everything. The modern version would be wikipedia, which you can download locally. I find this very helpful, especially for math and history.

To do offline work you will need software that works offline. Instead of google docs, you can use libre office or emacs. You can download music locally and use a local music player, or emacs. You can download book and films and store them forever in your hard drive.

When I am offline I feel like I am in total control of my computer, everything is compiled from source and my system is stable. Further, I don't need to worry about cybersecurity anymore.

The point of this page is that I like practicing being completely offline for long periods of time, while still doing what I consider productive tasks as a programmer. Of course, your work may require and internet connection, but you can choose how to spend your own free time afterwards and I decided to spend it offline.

Related article:


Travel: Programming, Index