Ubuntu is the first distro you hear about when you start searching for Linux. It’s a custom version of Debian, which powers many other distros and is immensely popular. Ubuntu comes across as a simple, easy-to-understand alternative to Windows and macOS, with very little complexity. It’s got a GUI installer, no partitioning headaches, and can be up and ready in an hour.
But using Ubuntu doesn’t mean you become proficient in Linux. Along the way, you learn very little about actual Linux because the distro intentionally hides most of the complex stuff in plain sight. It’s good for beginners who just want another operating system. Still, Ubuntu focuses too much on simplicity, and that shrouds you from the real nitty-gritty of Linux.
A false sense of accomplishment
You only learn the Ubuntu way
Ubuntu is a heavily customized version of Debian, and there's nothing wrong with this approach if you just need to revive a spare PC with a reliable operating system. You can use it for basic media, browsing, and app tasks, and Ubuntu would never pose a problem. It hides complexity, and that can become a problem later on.
If you need an app, you can use the Store app to find and download one, just as you would on a Windows or macOS device. Similarly, you can tweak desktop settings and add custom features via GNOME extensions. There's also very little terminal interaction, and the most you'll do is run simple apt commands to install packages.
But Linux is way beyond these simplicities. I remember a time when there were no GUI installers, and you had to figure out disk partitioning, boot order, and driver installation all by yourself. You may wonder why that is necessary. I, too, didn’t have the faintest idea about these elements until I started using a custom Debian OS on a Raspberry Pi. Suddenly, I had to do everything via the terminal, including app installs, service management, startup behavior, and even mounting drives by adding an fstab entry.
All of the above is a piece of cake in Ubuntu, but when you move to other distros or suddenly land on a computer that’s devoid of a GUI, you’ll be in a bind. NixOS is also a great example of a distro where everything is managed via configuration files and forces you to learn the ropes.
For an Ubuntu user, a distro like NixOS is poles apart, as it focuses on a single file to control every aspect of the system. Ubuntu simplifies all these concepts to make Linux appealing, but if you intend to learn the actual thing, there are other distros to try.
Ubuntu pushes Snap
Confuses package management concepts
Snap was born out of a need to simplify app installs. But Ubuntu now heavily pushes it, and even if you specify apt in the terminal to download software, Ubuntu might install the Snap version instead. Snap packages all the dependencies related to a software package, so it doesn’t have problems running on any other system.
But that introduces a downside: you don’t know what additional information the software needs, such as storage locations and file permissions. Snap is also noticeably slow to launch the software, which introduces another problem no one asked for.
If you were to switch to another distro with a different package manager, you would still have to manage additional tasks, such as adding a new repository for the tool, configuring user permissions, and more. All of these seem overwhelming at first, and some apps require service and boot configuration as well. Ubuntu abstracts all of this, making it difficult to learn later on.
I learned more about these things when I started playing with SBCs and mini servers that needed a headless setup and often ran a lean version of Debian with some custom modifications. My experience with Ubuntu and the GUI didn’t come in handy, as most of the work required deep knowledge of the Linux file system. In NixOS, app installations occur via the Nix Store, which uses a different convention.
You still have to define everything, right from the user permissions to the service type and more details, and all that happens in one configuration file. In other distros, including Ubuntu, you have to modify multiple files if you want to change all these behaviors, and Snap doesn’t teach you most of these things.
Old habits die hard
Troubleshooting becomes difficult
After you become comfortable with Ubuntu, you rarely worry about scenarios where a feature, device, or tool doesn't work as intended. Whenever something major breaks, for example, your desktop environment or the boot order, you cannot fix it via GUI methods. It needs a slightly advanced knowledge of Linux systems and how to manipulate the system to fix these elements or replace them. Ubuntu rarely forces users to fix such problems, and they can feel challenging for a regular user who never ventures outside the settings app.
On other Linux distributions, you might have to take matters into your own hands, modify boot entries, turn off services, and even reinstall the desktop environment to get the system working again. All of this knowledge comes with firsthand experience, like I had when I began using other minimal distros and SBCs. There have been several such incidents in which I had to disable system components to resolve software conflicts.
Linux is more than Ubuntu
While Ubuntu might be the first choice for many Windows escapees and privacy enthusiasts, it's not the ideal way to learn Linux. Canonical tweaked it for beginners so much so that they never get to experience or learn the complex yet necessary Linux concepts. Other Linux distributions like Arch and NixOS are hard to understand and venture deep into Linux systems.
You learn how to control and manage individual Linux OS components, and that knowledge becomes valuable later on. Ubuntu makes Linux approachable, but there's more to learn beyond it.