Learning through self-destruction
Terminal is one of “the last remaining things that bestows absolute
power upon you”.
It allows you to witness the entire operating system disappear and then be reborn in a matter of seconds.
I strongly advise you to try this at home sudo rm -rfv /
When I wrote my first prompt two years ago, I was thrilled. I didn’t understand much of it, spending hours copying the file because it didn’t use the path to the cloud drive.
Nevertheless, I realized that the system was mine, and I alone determined what went in and what went out. As you can imagine, I wasn’t satisfied with the commands used in the Windows environment.
The most dangerous person in the entire programming industry is the beginner bash programmer
(especially if they are unaware of tools like ShellCheck)
When I wrote my first scripts, I didn’t care about encapsulating variables in double quotes;
I didn’t even know what **“*“** meant.
However, a friend of mine suggested I explore virtual machines for experimentation.
This proved to be an excellent choice, allowing me to recreate the system instantly without any fear.
(To this day, even though I’m a devoted Linux user, VMware and Windows still have their advantages.)
I spent countless hours reading about different distributions, associating them with various desktop environments, feeling the need to learn one after another, switching between them every couple of days. I also experimented with various disruptive changes, such as installing different package managers, relaunching VMs because I lost the plank layout, and casually messing up all my programs because of casual use ofsudo apt autoremove. I felt frustrated because I wanted to encapsulate them all, but it seemingly wasn’t possible. Finally, after about two months of continuous exploration.
I switched to Manjaro because I wanted to stay current and share the “I’m using Arch, by the way” badge.
Every Linux user should know this
It dawned on me that the desktop manager differed from the distribution itself.
I delved deeply into tiling window managers and the art of automating tasks.
I even started tinkering with desktop files because Qtile refused to run without the SSDM recognizing them. Reading and adjusting the Qtile config became my obsession, only to discover that after a minor change, it errored and moved to the default settings. Frustration led me to switch to i3.
But it wasn’t without a hassle. Once, I managed to unintentionally delete all the desktop sessions while attempting to use i3 with XFCE. It left me with no desktop environment and forced me into a full system format (a popular way to solve problems in the Linux world, fast and without excessive time consumption).
It wasn’t for nothing; format after format, I set up things faster and faster.
I realized how regular backups are important and how the system operates.
I became bolder, more daring, and that’s what ultimately inspired me to delve into serious programming.
Inputting the word of God/user can do anything
One of my first apps that I built in Python was my interpretation of the flashcards app with Flask and a templating engine. I was quite proud of my little project and wasn’t really worried about safety.
So, I gave the app to test to my friend in cybersecurity. He was clicking around when suddenly he copied the entire Bible and input it into the app.
What’s interesting is that the app didn’t break, but you can
imagine that it was not safe either.
However, the most hilarious aspect of my work for my friend was that you could input HTML inside the flashcards and query the database that way (cross-site scripting). But let’s leave that behind in the past…
What does not kill you makes you stronger
Don’t be afraid to try messing up your system!
Don’t be afraid to tinker with your system!
It grants you a deeper understanding of what lies beneath the surface.
By making mistakes, you not only learn to avoid problems but also gain the ability to fix them in the future.
I killed my system countless times, and yet it always came back. In the end, it’s just software…