FullStack Labs

Please Upgrade Your Browser.

Unfortunately, Internet Explorer is an outdated browser and we do not currently support it. To have the best browsing experience, please upgrade to Microsoft Edge, Google Chrome or Safari.
Upgrade

Linux for Developers

Two years ago I moved to Linux, and let me tell you, the experience has been amazing.

Written by 
Fabio Posada
,
Senior Software Engineer
Linux for Developers
blog post background
E2E Testing with Nightwatch.js
Anatomy of a Phoenix App
What is Deno?
Fusion.js: The Power of Plugins
10 CSS Properties You Might Have Missed
Coding, Best Practices

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

-- CODE language-jsx keep-markup --
$ git clone https://AUR.archlinux.org/visual-studio-code-bin.git

Make

-- CODE language-jsx keep-markup --
cd visual-studio-code-bin/ && makepkg -s

Install

-- CODE language-jsx keep-markup --
sudo pacman -U visual-studio-code-bin-*.pkg.tar.xz

Change workspace

Switch between workspaces.

-- CODE language-jsx keep-markup --
Super + Home
Super + End

Launcher

A little modal to launch an application.

-- CODE language-jsx keep-markup --
Alt + F2

New Terminal

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

-- CODE language-jsx keep-markup --
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.

Fabio Posada
Written by
Fabio Posada
Fabio Posada

As a Senior Software Engineer at FullStack Labs, my responsibilities involve creating and delivering mobile applications that help people in their lives. I have over 7 years of experience in software development, solving problems through technologies like JavaScript, .Net and Python and with a huge knowledge about frameworks in these technologies. My passions are my family, software development and pc games!

FullStack Labs Icon

Let's Talk!

We’d love to learn more about your project. Contact us below for a free consultation with our CEO.
Projects start at $50,000.

company name
name
email
phone
Type of project
Reason for contact
How did you hear about us?
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.