DEV Community

Douglas R Andreani
Douglas R Andreani

Posted on

Moving your workflow to Linux

Since forever, I've been a Windows user with almost zero knowledge of other Operational Systems. But I always found to develop inside Windows environments to be a little tricky since and if you are out of the Visual Studio environment things are even more complicated.

After a period considering a change to a MacOSX environment, I decided to try Linux, since it's free and work on (most) any hardware that works with Windows.

Linux TUX

HOW:

First, you will need to choose a distribution (flavor) of Linux that will suit your needs. I like to recommend Ubuntu Mate to new users for a couple of reasons:

  • It has the support and features of one of the most used distributions on the Linux world plus a great UI (Mate) that have a lot in common with other OS.

Just use Etcher to burn the image into a USB stick and plug into the PC before booting it. Your BIOS/UEFI must be set to read from the USB. Follow the instructions on the screen to install the OS (Backup any relevant data first, because this will erase your HD).

LANGUAGE SUPPORT:

Most Linux distributions have a large support for programming languages, from C to GO, you will only need to find the correct package for your distribution. To start just run the command sudo apt install build-essential to have the most common toolchain for C/C++ compiling that will help to install a lot of other development software like:

  • Python: sudo apt install python2 python3 python3-pip
  • Java: sudo apt install jdk8-openjdk
  • Javascript/Node: sudo apt install nodejs npm

PS: apt is a command line tool to help install packages into the system, like brew for MacOSX or choco for Windows, used by Debian like systems (Debian, Ubuntu, Mint). You can learn more at man apt

TEXT EDIT:

Most common text editors will work without any sweat, like Atom, Visual Studio Code, Sublime. Even some exclusive editors can make your life easier like Kate, Gedit, Geany and KDevelop.

GIVE IT A TRY:

If you are not comfortable to move an entire system to a Linux environment, you can still try it using some Virtual Machine environment, like VMWare Workstation or Oracle VirtualBox. You can see for yourself if it suits you and what you can learn from it.

CONCLUSION:

Linux systems are very powerful and fully feature to be your next development environment, just remember is not the same thing as Windows or MacOSX and you should approach it with an open mind.

And Remember Google is your friend. Do not be afraid to search for dumb things such: How to move a file from directory or How to install sublime on Linux. You are learning everything again and some easy things should not stop you.

Latest comments (52)

Collapse
 
siko279 profile image
Sijmen Koffeman

What I like about (modern) Windows is options and choice.
Want Linux? Enable WSL and install a distro.
The desktop experience in Windows is far more evolved and productive. I dont want to miss that, neither do I want to be locked in...

Collapse
 
siko279 profile image
Sijmen Koffeman
Collapse
 
sm0ke profile image
Sm0ke

Yep, all good to work on Linux, I'm using Ubuntu.

Can you recommend a visual @github client?

Using the console works, but it's much easier to have something like Github Desktop.

Collapse
 
andreanidouglas profile image
Douglas R Andreani

GitKraken, but i don't use any to be honest

Collapse
 
oyelowotobiloba profile image
Oluwatobiloba

No going back, linux to me is a revelation. People out there should just give linux a try

Collapse
 
psnebc profile image
Patrick Schanen • Edited

My installation on Linux Mint ( .deb ) and now Fedora 27 (.rpm )

My Software installed on Linux Mint before switching to Fedora.
Now I use almost the same sofware on Fedora 27 Workstation.

Collapse
 
psnebc profile image
Patrick Schanen
 
andreanidouglas profile image
Douglas R Andreani

FreeBSD is the common choice. you can set a quick desktop by using TrueOS

Collapse
 
nelruk profile image
Nelson

You said: Google is your friend. And it is. For a very long time, I was afraid to waste my time doing it that then I realized how much time was saving doing the searching. Your post is very helpful.

Question: Why Ubuntu Mate and not Ubuntu?

Collapse
 
andreanidouglas profile image
Douglas R Andreani

I prefer the Mate desktop environment than Unity or Gnome, for newbies, since it's more straightforward in its approach. But the beautiful about Linux is that you are free to choose wherever fits your workflow, so feel free to try everything around you

Collapse
 
alecaddd profile image
AlexπŸ”₯

Not sure if this is considered SPAM, and if it is I apologize immensely, but I did a mini-series on YouTube on how to set up Pop!_OS, an Ubuntu-based distribution, to fully deal with my full-stack needs.
Hopefully, someone will find this useful: youtube.com/playlist?list=PLriKzYy...

Collapse
 
piotroxp profile image
Piotr SΕ‚upski

Hey! I am really glad more people think this way.

Back in 2008 I was looking to learn coding in c++. After trying Windows and Visual Studio, moving to Linux felt like the ultimate freedom.

I dont have to click through all this and can just do gcc main.cpp? No shit! I dont need to wait five fucking minutes for the text editor to run!? What kind of magic...???

Coding on Linux is a breeze. With great tools like CMake, eclipse, emacs (fuck Vi), CLang, all the languages, all the nice tools to make stuff work is already there, just waiting.

Unless you want to play a game and waste your time spent at a computer (entertainment is overrated), then using Linux is the best thing one can do to really grasp computing.

Thanks for this piece again, I support the case. Using Windows in 2018 is a sign of technological weakness. A properly configured distro should be a status symbol.

Collapse
 
alexmidjich profile image
Alexander Midjich

I have for a while now thought about trying Linux but I have been a little scared about switching to something different. But this article together with all the comments have now given me a boost to try it out. Thanks for all the great information

Collapse
 
jrock2004 profile image
John Costanzo

Bash on Windows has made working in Windows so much better. I mean if you have no computer and your build one the Linux is the way to go. There are 2 issues that keeps windows around for me.

1) Hidpi support is not there yet
2) driver firmware updates cannot be done in Linux.

Collapse
 
andreanidouglas profile image
Douglas R Andreani

The Linux Filesystem Susystem on Windows 10 is really useful :)

Collapse
 
jrock2004 profile image
John Costanzo

The one pain in the arse, is I run into permission issues alot. But it may be user error so oh well

Thread Thread
 
andreanidouglas profile image
Douglas R Andreani

This is something that every Linux user will need to deal, one day or another, it's the way that the kernel/OS is built upon. But remember, it's all for your own safety.

Collapse
 
riscie profile image
riscie

Nice article.
Wanted to let your readers know that with dotnet core itβ€˜s now also very convenient to use c# on linux. github.com/dotnet/core/blob/master...

Collapse
 
eazel7 profile image
Diego

github.com/nvbn/thefuck < this tool should come by default

Collapse
 
dwd profile image
Dave Cridland

Also Docker. Docker's native on Linux. On a Mac, for instance, it runs up a hidden VM which actually runs all the Docker containers, limiting the amount of memory and disk it can use. On Linux, it can use all the memory, and more importantly, all the disk - and all at native speed.

Collapse
 
tracypholmes profile image
Tracy Holmes

Love this! I was dual-booting for a while. Now I dual-boot my laptop, and use VirtualBox for my desktop. I adore Linux. I think it's an especially friendly move for new users that are used to Windows keyboard shortcuts. You only have to make an adjustment here or there. The other reason I push Linux is because it forces you to learn as well as LEARN how to debug and learn. And that is something devs (especially newer ones) really need to learn to do. I would keep going, but great post!