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
Welcome to FullStack Labs. We use cookies to enable better features on our website. Cookies help us tailor content to your interests and locations and provide many other benefits of the site. For more information, please see our Cookies Policy and Privacy Policy.

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
Recent Posts
Six Ways to Handle Concurrency in the JVM
Is there value in learning Vanilla JavaScript?
How to be efficient in remote design work in multicultural teams

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

Table of contents

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

When I was 22 years old, a developer told me,  "Development is not just code, it's an entire world in your head ready to emerge and create amazing things. It's your mark in the world." I abandoned my degree in design for one in systems engineering and I never looked back. As a Software Engineer, I love the fresh challenges and acquired knowledge that each project brings. I thrive on working on projects that matter in people's lives; currently, I'm writing the code to manage Philips's ultrasound technology. I'm most at home using React and other JavaScript frameworks for their ability to seemingly do anything. When I'm not programming, I enjoy playing videogames, watching soccer, and playing with my son.

People having a meeting on a glass room.
Join Our Team
We are looking for developers committed to writing the best code and deploying flawless apps in a small team setting.
view careers
Desktop screens shown as slices from a top angle.
Case Studies
It's not only about results, it's also about how we helped our clients get there and achieve their goals.
view case studies
Phone with an app screen on it.
Our Playbook
Our step-by-step process for designing, developing, and maintaining exceptional custom software solutions.
VIEW OUR playbook
FullStack Labs Icon

Let's Talk!

We’d love to learn more about your project.
Engagements start at $75,000.

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