Intro to Linux for New Developers
Tags: beginners, linux
Published: 2019-11-18 08:16:55


Programming is a magical *art*. Like any artist, reliable tools are important to your ability to become the best you can at your craft. Luckily for you, this one won't cost much. 


Your **operating system** is a tool and you should give it some thought. You have more choices here than you might realize!

Windows, OS X, and iOS are well known but there are _hundreds_ more operating systems out there in large part thanks to **Linux**.

I'll explain what that is and why, as a developer, using Linux will be beneficial for you.

##**What is Linux**

Linux is a **kernel**. 

A kernel is program at the core of a computer's operating system and is **one of the first programs loaded on start up.** It controls almost *everything else* in the system - how files are stored, how memory is managed, and even interactions with peripherals like USBs and printers. 

The Linux kernel is *freely available* ([check it out on github](https://github.com/torvalds/linux)), and as such many operating systems have grown from it, piling on other programs to make up a fully functional OS.

These OSs are called Linux **distributions** or *flavors*. 

Due to its modulearity and accessibility, Linux is super popular among DIY-ers who like to customize their setup, and people will happily share their "Linux builds". 

So when someone says "I use Linux", they probably mean that they use some **distribution** of Linux. 

##**Benefits of Linux OS**

####There are 3 main benefits:

![Top three Reasons](https://thepracticaldev.s3.amazonaws.com/i/tl7hatnw2mzot5iijzzq.png)

You don't have to empty your pockets by choosing a open source Linux distribution. Many were spawned from the same ideology  that humanity improves when technology is accessible. [Ubuntu](https://ubuntu.com/about) for example.  

Like the buffet your grandparents brought you to as a child, you are free to gleefully try all the different distros out! 

Don't worry about bloat, because Linux was originally created for programming, so most flavors are light and agile. In addition, the **majority of programming languages (if they aren’t limited to a particular OS) work on Linux.** Have you tried working in WSL (Windows Subsystem for Linux)? Its awful slow and the set up can be very confusing. 

With Linux, you're in control of customization - no unnecessary software or bloatware if you don't want it. Desktop environments are abundant. 

**Large and small companies all over use Linux** so its highly likely you'll eventually come into contact with a distribution (if you haven't unknowingly already!). It is used in many if not most IOT (internet of things) devices and enterprise servers. 
1. Amazon uses Ubuntu servers as well as their own distribution, Amazon Linux. 
2. [Linux usage surpasses Windows in Microsoft's Azure cloud](https://www.techrepublic.com/article/how-linux-took-over-everything-including-microsoft-azure/). 
3. Google even has two proprietary desktop distros (so you wont find them online) called Goobuntu and gLinux.  🤔

Get familiar now to sharpen up those chops and add experience in your next resume! 

##Which one is for me?##
There are **A LOT** of distributions. 

Because the Linux kernel is open source and anyone and use it build their own custom operation system, its impossible to say exactly how many, but the Linux wiki mentions over 400. 

There are however about a dozen that are popular in general use. 

These include Arch, Mint, Ubuntu, Debian, and enterprise grade CentOS - all well established and supported distributions. 
![Linux Logos](https://thepracticaldev.s3.amazonaws.com/i/xrlfrza87b6c5njs5z0z.png)

If working with a new operating systems sounds intimidating, [Linux Mint](https://www.linuxmint.com/) is a solid start.

Mint includes software like LibreOffice and outright support for multimedia formats, making a transition from Mac or Windows more comfortable. Its powerful and easy to use while sill maintaining that sweet customization Linux is known for. 

Each of the popular distributions have their strengths, so check out a few and search around Dev.to to see what other developers are using. ;)

Good luck explorer!