Recently I've been asked by friends for advice on where to start with Linux. Linux guides are a dime a dozen these days, but naturally, I have some opinions here and I have found that I get completely lost in the sauce in personal conversations so I decided to write down my thoughts in a structured format. We will mostly focus on how to choose a distro for now.
My credentials
I started daily driving Linux in 2023 after a Windows partition failed on me and I switched to Pop!_OS. But my first experiments with Linux go back to ca. 2017 when I got myself a Raspberry Pi 3. Last year, I got into homelabbing in earnest and bought a mini-PC which originally ran Debian, but I have since switched it and my desktop PC to NixOS.
My current setup shown with fastfetch
When should I not use Linux?
Before I proceed, I should in good conscience address reasons not to use Linux. For the most part, I do firmly believe Linux is for everyone, especially those who consider themselves "good at computers" and the tinkerers among us. That being said, there are limitations. Notably, if you professionally, academically or otherwise depend on software like the Microsoft Office suite or Adobe products and you can't switch to open-source alternatives like LibreOffice, GIMP, etc., I would keep Windows around for now. There are compatibility tools like WinBoat which make it possible to run those products, but it might be too much of a headache for a new user.
If you're a gamer, you can rest assured that thanks to Proton, most of your games will work on Linux. However, some competitive online multiplayer games like Fortnite, Apex and PUBG simply won't work because of kernel-level anticheat.
Which distro should I choose?
The shortest answer
Use Linux Mint. If you're getting a headache just thinking about all of this and want something that "just works", pick Mint. It's the gold-standard of stable, beginner-friendly distros and it makes a lot of great choices (like prioritizing flatpaks over snaps), more on this later.
The slightly longer but still short answer
It doesn't really matter. Linux shines in how customizable it is, so whether you start with Mint, Ubuntu, Fedora, CachyOS, etc. etc., you can customize your user experience in such a way that the underlying distro becomes less important and even less obvious. Hearing good things about Bazzite or Pop!_OS? Just go for it, I think there is limited utility in being hyper-focused on perceived strengths and weaknesses of any given distro, they all are totally usable for the most part and you will be able to customize them later to address most annoyances that might present themselves as you go. Just steer clear from distros that have a reputation of being "advanced" like Arch, NixOS and Gentoo for now.
The desktop environment
An overlooked part of choosing a distro is the choice of desktop environment ("DE"). The DE for most desktop users overwhelmingly dictates how you interact with your operating system, from file explorer to app stores to simple applications like a terminal emulator, text editor, media viewer etc., you will spend a lot of time interacting with the DE and as opposed to Windows and Mac, there are many to choose from and people tend to have strong preferences here!
I would advise spending some time looking at desktop environments beforehand because they often come bundled with a distro (Linux Mint comes with Cinnamon, Pop!_OS comes with COSMIC), and while it is technically possible to rip out your preexisting DE and switch in a different one, depending on the distro it is often not recommended and will lead to jank and headaches. If you hate the look of Cinnamon, don't pick Mint! Many if not most distros however will let you pick your own DE, especially the two most popular ones, KDE Plasma and GNOME.
I will post some screenshots of popular desktop environments below. As you can probably tell, some of those are more reminiscent of Windows, while other are more reminiscent of macOS. You might want to pick one based on what you are most familiar with.
KDE Plasma (image credit kde.org)
COSMIC (image credit System76)
GNOME (image credit Wikipedia user Guilieb)
Cinnamon (image credit Linux Mint Devs)
A word on tiling and scrolling window managers
Once you've spent a little time in the Linux community, especially if you ever look into the phenomenon of "ricing", you will notice that a significant subsection of users eschew the classic desktop environment entirely in favor of so-called tiling window managers like Hyprland and Sway. These are designed to create and automatically tile desktop windows, especially with keyboard hotkeys. While I will admit it is eye-candy, I don't think they are for me, I just am very mouse-focused.
The nitty gritty
So what difference does the distro make then?
The way I like to differentiate distros is by pointing out release cycles on the one hand and choice of package manager on the other hand.
Some distros like Debian, Ubuntu, Fedora and others are on fixed release cycles, only releasing software updates every few months with the philosophy of providing users with stable releases. Other distros like openSUSE, Arch and Gentoo on the other hand go for "rolling releases" where users are constantly given access to the bleeding edge of software updates at the risk of lower stability. If a rolling release breaks some feature, it is understood that the user themself should take steps to fix it by consulting resources such as the ArchWiki. There are also hybrid models, NixOS offers users to pick software packages from the stable and unstable branch. For new users, I would caution against rolling release cycles, but ultimately it is up to personal preference.
When you install software on Linux, you will quickly find out that the Windows model of downloading a setup.exe does not really apply to Linux. Whether you're using the command line or an app store GUI, most of the time you will install software via a package manager. As with desktop environments, there are also a variety of package managers to use: Fedora uses DNF, Arch-based distros use Pacman, Debian- and Ubuntu-based distros use APT, NixOS uses Nix and then there is also Flatpak and Snap and many others.
So what package manager should I use?
For many this is also a matter of personal preference but I think Valve has settled the debate by hedging their bets on one of the aforementioned when designing SteamOS. I'm glossing over some of the finer details like immutability, but most of the time, you will install stuff on the Steam Deck with Flatpak. Flatpak installs come containerized and "sandboxed" with fine-grained permission sets so you can rest easy knowing that any given software will only have access to the files it needs to access. Here, Flatpak has totally superseded alternatives like Snap. Why does this matter? Well, some distros are opinionated here: while a lot of distros like Mint, Pop!_OS, etc. ship with Flatpak out of the box, Ubuntu for example still bets on Snaps. Does this really matter? Perhaps not, but I am opinionated here as well and if I was forced to use Ubuntu, I would probably uninstall Snap and install Flatpak.
I also should differentiate between Flatpak and "system installs". Flatpak is my recommendation for installing everyday software like Steam, Discord, VLC, LibreOffice, etc., but for more baseline software packages like for example Git, you will have to resort to the package manager that comes shipped with your distro like DNF, APT, Pacman et al.
An advanced user's note on Nix
While I again don't recommend Nix or NixOS for new users, I have become enamored with Nix over the last year. The difficulty comes with the declarative approach that Nix takes, all of your software installs are prescribed in a central configurations file written in the Nix language, but once you get the hang of it, Nix will offer many benefits like portability and its insanely huge library of 120,000 software packages. It also works everywhere basically and I wish I had discovered it sooner.
Closing remarks: perhaps it does matter after all?
I stated above that it doesn't really matter what distro you go for, but now that we have been through the nitty gritty, let's reexamine that claim.
Linux Mint does make excellent choices across the board, but its focus on the Cinnamon desktop environment is unfortunate, I find it not particularly visually appealing and it's too cumbersome to switch it out with KDE Plasma or GNOME.
Arch-based distros like CachyOS, EndeavourOS, Manjaro and others are more user-friendly than baseline Arch, but they still rely on the rolling release cycle, which I hesitate to recommend to new users.
Pop!_OS comes with a brand new desktop environment, COSMIC, which is very promising, but still in beta. Expect fewer and buggier features than with KDE Plasma and GNOME.
Admittedly a minor complaint, but Ubuntu simply bet on the wrong horse with Snap packages.
Fedora & Bazzite? Perhaps those two are the perfect distros. After all, Linus Torvalds, the creator of Linux uses Fedora and Fedora & Bazzite frequently rank as the most popular Linux distros.
A very important note on distro-hopping and the /home partition
A lot of Linux users engage in "distro-hopping" which refers to frequently switching distros to sample the wares so to speak, but also because they are on the search of "the one" distro for them. I encourage you to do the same if you feel like it, however I urge you to set up a dedicated /home partition. A lot of Linux installers will thankfully give you an option to do this without having to manually set up partitions, but I can't stress enough how having a separate /home partition is awesome: all of your personal files including Flatpak installs, Steam games, etc. will exist on a different partition than your root Linux installation which means you can uninstall Linux from underneath your /home, install a new distro and continue to use your personal files. You can even go further, why not have two Linux distros use the same /home partition if you can't decide on one? Right now, I have set up my /home partition on a separate 1TB SSD with no other partitions, which makes all of my personal files portable! Also it might come in handy one day if there is a drive failure because I will be able to diagnose whether it is my root Linux drive or my /home drive that is failing. Separation of concerns!
A note on dual-booting Windows
Don't. It's not worth it. It just happens too frequently still that after a Windows update, suddenly the Linux bootloader is gone or broken. If you have to dual-boot Windows: do yourself the favor and have Linux and Windows on separate drives.