I’m moving away from Windows and I’m looking for distro for coding and occasional gaming. If more context is needed please let me know.
There are a bajillion distros out there and you already have a lot of suggestions here, so instead, allow me to note a few things I think are handy while learning Linux.
- Most Linux distros are customized versions of a few base distros. Once you learn how the base distro lays things out, that knowledge is transferable (more or less) to other distros in the same family. But solutions that work in one family of distros may not work on another!
Some common base distros:
- Debian: Stability-above-all; all-rounder distro. Updates slowly, but provides a very-well-tested base that many other distros build on. Ubuntu and its derivatives are built on Debian.
- Red Hat: A commercially-focused distro that I haven’t used in a looong time, so I won’t say too much about it. Slightly less popular as a desktop basis than Debian, perhaps, but also a solid all-rounder.
- Arch: If computers were cars… Arch is for the Hot-Rodders. You have a ton of control to optimize and tweak Arch to precisely meet your needs. When you want to really dig into the machine and tune it to peak performance, this is where you begin. Fortunately, Arch-based distros often forego the detailed install of their parent and just provide a fast-updating, highly-tuned Linux experience. SteamOS is said to be a customized Arch.
- Software installation / updating is simpler and more confusing than either the Windows or Mac worlds.
It’s very rare to have a Linux program require an installer like Windows, and it’s not as simple as drag-and-drop install like Mac. Linux has had the equivalent of “app stores” for a looong time, just minus the tracking and selling parts.
Most programs in Linux get installed via a package manager tool. There are various front ends, but under the hood, there’s usually a command line program handling installation and updates.
Generally speaking, Debians use “apt”, RedHats use “yum” and Arches use “pacman”. There are also “flatpak” and “snap” both of which are more recent managers that attempt to solve dependency hell.
- The terminal is gonna come up. Love it or hate it, the terminal is still at the heart of the Linux experience. There are guis for pretty much anything you want to do, but because Linux is so highly customizable, help forums and such tend to give solutions in the one constant: bash scripts.
That said, you can get around just fine without it if you really want to. Just recognize that you might be swimming upstream at times.
- You can customize anything! Your desktop environment is pretty much a given on Windows and Mac. On Linux you can install something comfy, like Gnome (customizable, lightweight, akin to Mac UI) or KDE (less customizable, very pretty Windows-style UI).
Or try something experimental like Ratpoison - a window manager that requires no mouse inputs!
Part of the fun of Linux is trying out alternatives and truly customizing your personal computer.
…That’s it, I think!
Good luck! Have fun!
Garuda is a great Arch distro which is gaming-focused. I do some coding, and it works fine for that, too, but I actually don’t know which distros are better for that than others.
On the other hand, Garuda also does things a bit differently than other distros, so I don’t know if it would be good for somebody new to Linux. I recommend checking out some videos on YouTube just to see what it looks like.
LMDE (Linux Mint Debian Edition).
I’m an Ubuntu user, which is built off of Debian, but as most others have said Snaps can be annoying. It also typically uses more resources than Debian (depends if you use the base version or some derivative). My next install will be LMDE (or some other Debian distro) because I prefer starting a little more barebones then getting things just how I like it. Ubuntu is more like Windows where things are nice and convenient OOTB but it’s more of a pain to dial it back. With Debian you’ll need a little extra work to get proprietary drivers installed but it’s nothing that has been done by thousands of others.
If you don’t really want to tinker with the OS and focus more on games and coding (non-OS) then Ubuntu is a safe bet.
I recommend an Ubuntu fork, like Pop OS, just because Ubuntu forks seem to be more stable in my experience.
But if you want to do a lot of tinkering to get random weird hardware to work, then use an Arch fork, like Endeavour OS or Manjaro. Because normally if you find an obscure project on GitHub that you want to try out, it’ll probably need you to download, compile, and then install their package on Ubuntu. But if you’re on Arch they will likely have an AUR package that you can just go and install with a single command.