Linux for Developers

Written by

Here’s what happened: I needed to deliver a solution to the QA team and was running out of time.

I needed to hurry to finish my work quickly. I thought I was just a couple of clicks away from finishing. I planned to double-check that everything was in place and working. But when I started the computer that morning, the Windows operating system began an update without my permission. You know the drill, maybe 5 or 7 minutes updating stuff that I don’t need. That was my breaking point. I asked myself: do I really need Windows for development? Since I did not use .Net or Adobe Suite, the answer was no. Right then and there, I decided to switch to Linux. By the end of the day, I was backing up my data to start over in this strange and exciting new operating system. 

Choosing a Linux distro

At first, it wasn’t easy. I started my computer science training using Windows, so it was all that I knew. However, the die was cast, so the next step was choosing the best Linux distribution for developing and one that would be most comfortable coming from a Windows background.

There are tons of Linux distributions on the market. I wanted a nice lightweight OS with a friendly user interface. From my experience and research, I suggest one of the following:

Manjaro

Based on Arch and includes its package manager, Pacman. This distro is my favorite but not recommended for beginners, however, an experienced developer knows their way around a terminal. In my opinion, it’s the best way to optimize PC hardware, good for machine learning, and you can install Android Studio from PaMac (the package manager IDE). Additionally, three lines in the terminal and you have docker installed and running.  It’s awesome.

Pop!Os

A nice choice for developers based on Debian, its package manager is aptitude. If you’ve seen Ubuntu before, you’ll be familiar with it. The OS has good support and stability. For machine learning, it’s awesome because most of the Python packages required are preconfigured.

Ubuntu

Ubuntu is the world’s most popular Linux distribution used for both servers and end users. It’s based on Debian and its package manager is aptitude. For development it’s great for beginners because it provides lots of good documentation and helpful packages.

Why use Linux instead of Windows for development?

From my point of view, there are three reasons:

1. Performance: Linux desktops are lighter than Windows. Running Linux you realize Windows takes a lot of memory just for the explorer and a bunch of background processes. My Manjaro OS, with more than 30 Brave browser tabs, as well as other programs open, uses a little more than 4.5GB of RAM. 

2. Software: In most cases, installing software is easier. If you’re familiar with the terminal, you just need a couple of commands. If not, you can go to the IDE to search for the packages you want to install. The Linux terminal is awesome for developers.

Software
Software

3. No forced updates: As I mentioned at the beginning of the article, this was one of the main reasons I switched to Linux. It doesn’t force you to update the kernel or software, it asks for your permission.

How do I set up my distro for development?

If you work in web development, you probably use some of the following:

  • Code editor
  • Git
  • Node and NPM
  • PostMan
  • Docker
  • Internet Browser

Git is preinstalled in most Linux distributions, so you probably don’t need to do that. If you need to install VSCode, Atom, or any other software, you have two options: do it via the terminal or the IDE.

Let’s say you need to install VSCode. The easiest way is to go to the package manager IDE, search for it, and click on the “Install” button. That’s it!

Distro

The second option is to follow the instructions for your package manager. For example, to install VSCode in Pacman you need to clone a git and then compile the package.

Getting started with Linux

One of the best features of Linux is the ability to customize the OS. Many Linux users first configure their keyboard shortcuts.

Each desktop environment in Linux has a Settings section. I use Budgie and some of the shortcuts I use are:

Clone

$ git clone https://AUR.archlinux.org/visual-studio-code-bin.git

Make

cd visual-studio-code-bin/ && makepkg -s

Install

sudo pacman -U visual-studio-code-bin-*.pkg.tar.xz

Change workspace

Switch between workspaces.

Super + Home

Super + End

Launcher

A little modal to launch an application.

Alt + F2

New Terminal

Once you have all the software installed and keyboard shortcuts set up, you’re ready to go!

Super + T

Conclusion

As a developer, I think moving to Linux is the best decision you can make. However, if you’re working in .Net, you should probably stick to Windows or use a virtual machine.

But the experience for other types of programming, like Machine Learning and Android development is much better. For example the Android emulator runs better and more smoothly on Linux than Windows.

So don’t be scared, take the plunge and move to Linux today! You’ll never look back.

Frequently Asked Questions