This article is for students looking to switch to Linux for learning programming and are in the process of selecting the best distro to install in their machines. Let’s go ahead and explore what choices we have and analyze their differences in an attempt to choose the best Linux Distro for Learning Programming!
Let us start by look at the short version of the answer for those of you in a hurry to start your quest of learning programming!
The Short Version Of The Answer
Distro#1: Ubuntu and its derivatives
Distro#2: Fedora and the RHEL family of distros
That is just the short version of the answer, let’s go ahead and look at the longer and more informative version and learn what were the factors considered, what other choices you have and see why the above distros are chosen as the best for Programming Students along with some valuable resources for getting started with your quest!
If you have done some research on finding the best Linux distro for learning programming, you will find that most answers around the internet will say go for any beginner distro and install the necessary software on them. While this is true for Advanced Linux users, this is not true for beginners to the world of Linux!
That’s because advanced users, who have been using Linux for a few years already can tinker around and hack their way to solve possible issues that come up during day to day programming activities, but this tinkering around without experience can be a daunting experience for beginners and will certainly reduce their overall productivity for the first few months to say the least. So our goal is less tinkering around with the operating system and more learning programming skills!
Another goal of this analysis is to find out what factors are important for students who wish to learn programming and find the best distro that can fulfil these needs and can be set up with the least amount of hassles.
Linux & The Desktop Arena
Linux has already captured a huge percentage of the server market and it is the most dominant player there. As Linux is getting more and more famous lots of distros are being developed to enhance the desktop support for Linux.
The setup programmers would need for coding will be radically different than the setup artists and video editors would need for content creation and editing! Hence some factors that are considered important for using Linux as a workstation depends upon the kind of work that you are planning to do with it.
But some factors are common across all types of work. These include
- support &
If you plan to do all of your productive activities over on your next Linux distro then I suggest reading the article I wrote recently given in the link below where I have analyzed and compared several options in order to figure out what is the best distro for workstation purposes.
Reasons Linux is The Best for Programming Students
It is no secret that programmers love Linux. This is despite the fact that many better IDEs for software development are available for use exclusively in other operating systems like Windows and Mac’s OSX. I myself have recently switched to Linux and have moved all my software development work to Linux from Windows. In this section let’s explore some of the reasons which push Software engineers to Linux.
The Top 7 reasons that make programmers love Linux are the following!
- Reason#1: There are more devices running Linux than Windows and OSX running devices combined!
- Reason#2: Freedom that comes with Open-Source free software
- Reason#3: Lack of options on the other operating systems
- Reason#4: Ability to automate tasks using GNU Tools
- Reason#5: Sophisticated tools
- Reason#6: Easy of installing and updating software
- Reason#7: Efficient usage of resources
If you wish to read more about the above reasons I recommend reading this article below where I have described the above 7 reasons in detail!
Next let’s look at the needs of software developers, so that we have a list of factors to consider while choosing the best distro!
Needs of Programming Students
The following needs are the common ones among all programming students
Basic needs of all programming students
- A good code editor: VS Code, Atom, Sublime Text or Brackets.
- Source code management software like Git
- Good community support for solving any issues that might come up
Programming Language-specific needs
These are the 4 main platform-specific tools that you are going to need!
- Support for your programming language/technology
- Support for the IDEs being used on your courses
- Support for frameworks, libraries and software development kits for your programming language
- Support for any other special tools that you might need
Now that we have seen the Needs of programming, let’s go ahead and have a look at the distro choices we have to fulfil the above needs
The Distro Choices To Fulfil These Needs
The below are the 4 most popular distro families
- The Debian Family: Debian, Ubuntu, Linux Mint, etc
- The RedHat Family: Fedora and CentOS
- The Arch family: Arch, Manjaro, etc
- Other distros like Gentoo, Solus, etc.
The above distros are the most popular distro families, as such they come with excellent online community support and good online repositories with most software packages.
Now that we have seen the distro choices, let go ahead and have a look at 7 different field of software development and see which distro is best for those particular fields.
8 Different Software Development Fields of Study
The majority of programming students build apps that run on the web, smart phones, and computers. Application software development is a huge arena filled with various technologies targeted at various sectors. There are several types of software engineers like the ones who develop web applications (front end, backend or Full-Stack), Java developers, Python developers, Android developers, Firmware developers, Machine Learning and AI developers etc.
I have written separate articles on the following platforms, be sure to check them out if you courses matches with one of these platforms.
Java Programming Students
The article below is an analysis to choose the perfect distro to do Java programming in. The article explores the available choices we have and analyses their differences in an attempt to choose the best Linux Distro for Java Programming activities.
Android Programming Students
The article below is an analysis to choose the perfect distro to do Android development in. The article explores the available choices we have and analyses their differences in an attempt to choose the best Linux Distro for Android Programming activities.
Python Programming Students
The article below is an analysis to choose the perfect distro to do Python development in. The article explores the available choices we have and analyses their differences in an attempt to choose the best Linux Distro for Python Programming activities.
Front end Programming Students
The article below is an analysis to choose the perfect distro to do Python development in. The article explores the available choices we have and analyses their differences in an attempt to choose the best Linux Distro for Front-end Programming activities.
Node.js Programming Students
The article below is an analysis to choose the perfect distro to do Python development in. The article explores the available choices we have and analyses their differences in an attempt to choose the best Linux Distro for Node.js Programming activities.
Full-stack Web Programming Students
The article below is an analysis to choose the perfect distro to do Python development in. The article explores the available choices we have and analyses their differences in an attempt to choose the best Linux Distro for Full Stack web Programming activities.
Machine Learning and AI Programming Students
The article below is an analysis to choose the perfect distro to do Python development in. The article explores the available choices we have and analyses their differences in an attempt to choose the best Linux Distro for Machine learning and AI Programming activities.
Linux Programming Students
The article below explains the game you need to play if you wish to master Linux!
Best Distros for Programming Students
After researching and writing all these articles, one thing I noticed is the fact that for most of the above categories (Android being an exception) Ubuntu came out on top and Fedora came in second place! Analysing the reasons, it became clear that the main reason behind Ubuntu and Fedora coming out on top is because of the following 6 facts
- Biggest user base in the Linux World
- Best Online Community Support for solving day to day issues
- Most IDE companies test their products against these 2 distros
- Most software developers use these distros
- Official repository support for most packages: Both software applications and drivers
If you are interested in reading more about the 6th fact above, I recommend that you read the article below.
These are the 6 facts that make Ubuntu and Fedora come out on top among a multitude of distros in the Linux world when it comes to programming and software development activities!
Reason Ubuntu and derivatives gets 1st place
The reason Ubuntu gets the first place over Fedora are the following
- Ubuntu has a slightly larger user base and online community as opposed to Fedora
- Ubuntu is more beginner-friendly
- Ubuntu is considered more stable than Fedora, as only the tested software gets released from the official repos.
- Most of professional programmers do their development activities on Ubuntu and hence it makes sense for students to use the same distro!
If you are uncomfortable with their Unity desktop, you can go ahead with one of their other flavors like Kubuntu, Xubuntu, Lubuntu, etc. You can read more about these flavors in my other article given below.
Debian is considered to be a distro for advanced users and hence it does not have a big user base. The same goes for other derivatives of Debian which does not have a large user base as Ubuntu. This leaves us with Ubuntu and flavors of Ubuntu as our best bet for IDE compatibility purposes!
Reason Fedora gets 2nd place
Fedora is from the RedHat family, it is used as a testing ground by RedHat to test their latest features before releasing them in their RHEL enterprise edition. Hence Fedora is the most popular distro in terms of support for the latest advancements in the field of Linux. It also has a big user base, only second to Ubuntu. Due to their big user base, this is another distro IDE developers test their software again.
If your app is supposed to be run from a server or a cloud, then since most of the servers are running RHEL, it makes sense that you use Fedora do develop your app. As a bonus, you get to work with some experimental features months and sometimes even years before you get them in Debian based distros like Ubuntu!
What about Arch and Family?
Arch and its derivatives are all about catering to the needs of advanced users who can tinker their way through problems. Hence Arch Linux is not a good distro to start with for programming students!
Thus as a beginner I would recommend going for Ubuntu family of distros. If you were to ask me to recommended a particular distro/flavour I would recommend trying out either Linux Mint or Kubuntu for your development activities. If the latest packages are not available on the official repo, you can always download directly form the software provider and install the latest packages! If you have been around the Linux world for a while and you wish to change from Ubuntu, then try out Fedora!
After a few months of developing on these beginner-friendly distros, you can always move your development activities to a more customized and efficient environment, perhaps just a terminal and a window manager!
And with that, I will conclude this article!
I hope you guys enjoyed this article and learned something useful.
If you liked the post, feel free to share this post with your friends and colleagues!
Here are some of my other articles that might interest you!