One of the reasons Linux is great is because of how flexible it is. For example, it can run on everything from servers to your old laptop to a Raspberry Pi. For this reason, it’s also a fantastic platform for developers.
Whether you’re a seasoned developer or just using Linux to learn to program, you still have to choose a distribution. You could just choose Ubuntu and run with it, but there are plenty of “other options available to you.”
Though he hops from distribution to distribution, Linux creator Linus Torvalds favors simplicity of setup. For a long time he mentioned Fedora as one of his preferred distributions, which speaks to that ease of use. We could recommend Fedora based on the kind words from the famously blunt Torvalds alone, but that’s just the start.
Fedora might be easy to install and configure, but it’s anything but dumbed down. Many new technologies make their way to Fedora before they end up in other distributions. If you’re looking to stay caught up with what’s happening in the world of Linux, this is a great distribution. Fedora’s updates eventually make their way into Red Hat Enterprise Linux, as Red Hat is a sponsor of the project.
You’ll find three core varieties of the distribution: Fedora Workstation, Fedora Server, and Fedora Atomic. This is handy for developers, as you get a version to run on your laptop, your server, and even one to power your cloud services.
Like Fedora, CentOS is closely tied with Red Hat. In this case, instead of looking into the future, CentOS is instead the community-developed analog of Red Hat Enterprise Linux. This means you won’t find the newest packages included in the distribution, but those that are there are well-tested. This is great if you’re looking for a rock-solid system.
Stability is always great, but CentOS is especially useful if you’re developing enterprise software. The main reason is that software meant to run on Red Hat Enterprise Linux will usually run on CentOS. Even if you only eventually plan on working in this space, learning the Yum package management system can prove useful to your career.
Arch Linux is popular among many users because of its rolling release schedule. This means instead of waiting for big releases for major updates, Arch’s packages are updated much more frequently. If you like to live on the bleeding edge, as many hobbyist programmers do, Arch is a great option.
When you install Arch, you’re essentially building your system one piece at a time. After the initial installation, you won’t have a whole lot installed, so everything that is installed is there because you wanted it there. This extends to development tools, so you’ll be able to build the perfect development environment for you.
If you’ve tried a handful of Linux distributions, chances are at least one of them was based on Debian. Ubuntu, for example, is built on top of Debian. If all of these different distributions are built on Debian, it has to be doing something right.
Debian also powers a lot of servers on the Internet. Because of this and the sheer amount of distros it powers, many Linux tutorials focus on Debian-based systems. This is great if you’re trying to get a piece of software to build but keep running into mysterious errors.
Another reason Debian is useful for developers is the amount of software in its repositories. If you want to spend less time building your software instead of getting someone else’s code to compile, Debian is a great choice.
One of the many distributions based on Debian, Kali distinguishes itself with its focus on security. Specifically, it focuses on penetration testing and breaking security. If you’re working on a web app and want to make sure it can stand up to different types of attacks, Kali will be an excellent tool to have in your inventory.
Kali also runs well on devices like the Raspberry Pi. If you’re looking to use another distro as your main computing platform, having Kali as a battery-powered “backup” can be handy.
Any Linux distribution can be a good distribution for programming. However, those in the above-mentioned list are more polished and can give you a head start when setting up your programming environment.