DEV Community 👩‍💻👨‍💻

Michael Minshew
Michael Minshew

Posted on

Why I switched to Linux and what I'm using Today

A few months ago I made the hard switch over to running Linux on my work laptop and haven't looked back even once.

I've been a windows user since 3.1 and never jumped onto the Apple craze, I like Apple's products and use my wife's Macbook on occasion but mostly stayed with windows as I'm a gamer (not trying to start an os war). I liked Windows, was familiar with it and didn't really have a desire to change. I messed around with Linux on occasion growing up running it parallel to windows but as I wasn't really into programming and was always into gaming (Shame on me for wasting my youth on King's quest and Total annihilation) as a result I never really made the plunge.

Last year I got into programming with the idea of switching careers from Ecommerce data analytics and project management into development and started teaching myself to code on windows 10. I love windows 10 and use it as my non work OS but I kept bumping into hiccups when I wanted to install or run things. C was a beast to get installed on Windows and it always felt like there was always an added layer of stuff between me and coding no matter what code I worked on. Coding is hard enough as it is and I was getting frustrated.

Early last year I was working through Zed Shaw's "Learn Python the Hard Way". He recommended that I learn the command line and had a quick tutorial to get into it. I fell in love and immediately switched over as much as I could to using the command line and manually configured my Powershell to run my stuff. Nostalgia from DOS notwithstanding it was just fun using the command line to navigate and easier than I had always assumed it would be. (I'll note that configuring powershell is not fun)

Last year something remarkable happened. Microsoft actually allowed BASH (born again shell a popular shell and command language) and a linux instance to be run on Win10 and I started messing around with it. I was sold, I could run nearly all my languages from the same shell with almost no effort. I could install python in a few keystrokes, run a c program and then setup a python program with almost no effort at all.

The only problem was that I was doing all my work on a Linux environment inside of windows and it was annoying to get my code into more normal work flows in windows and onto Github desktop which I started using around that time. So after a bunch of procrastinating I finally grabbed all my code off my windows 10 work laptop and installed Ubuntu Linux. Overnight my work flow improved drastically and now I almost prefer using my work laptop for personal everyday use. I would heartily recommend that anyone who does any coding switch to Linux, the ease of use, simplicity of installing and working with tools is incredible. Once again I love windows 10 but Linux is slowly stealing my heart.

I do recommend that if you switch to linux to start with Ubuntu and try a different flavour of the OS as Ubuntu is extremely easy to work with. I did not like the setup and desktop of Base Ubuntu though so I am using plasma Kubuntu and loving it.

There are a bunch of great Linux Distros though such as CentOS or ARCH. I'm just recommending ubuntu/kubuntu as its extremely easy to get started on and its very popular and well supported if you need some help. Plus you can download it to a flash drive and demo run it from the flash drive without having to install to get a feel for the OS.

I am currently using the following setup to run most of my code and work tools.

OS:Kubuntu 16.04
Desktop Flavour:KDE Plasma Version 5.8.8 (much prettier and UX friendly vs base Ubuntu In my opinion.)

Web Browser: Chromium and Firefox
Version Control:Git with the Gitkraken desktop platform.
Shell: Konsole (Bash)
Text Editor: Primarily Atom and occasionally vim(getting the hang of it slowly) and just installed Emacs for lisp a few hours ago.
Image Editor: Gimp
IM: Slack desktop or Google Hangouts
Languages I'm working with: C, Python3, Ruby, Clisp(just installed this today)

The only thing that I do miss is the windows version of notepad++ I haven't found a Linux version that is exactly the same but thats a small price to pay for the faster time to get into my flow, faster and easier installation of software and overall better experience that Linux has brought me.

In addition I can do server work easily, completely customize every part of my desktop, easily setup keyboard shortcuts to run programs or scripts (Windows 10 can do this somewhat as well) and can install the C compiler in one short sentence(I can't emphasize enough how easy installing programs is on Linux, most programs are a single sentence typed into the console and a quick "y" press to confirm installation.)

I hope this is insightful and encourages someone else to make the jump into Linux for doing development work, I have enjoyed the OS so much that I'm actually taking courses on Linux administration and working on becoming a power user. Something I never felt inspired to do on Windows. Thanks for reading and keep on Coding.

Top comments (47)

Collapse
codemouse92 profile image
Jason C. McDonald • Edited on

Welcome to Linux! It's a lovely place here.

I too miss Notepad++, but I find that Geany is quite similar as far as text editing goes. Meanwhile, Visual Studio Code is quite lovely as an IDE! (And that's coming from someone that has tried Atom, Code::Blocks, Brackets, and more than a few others.)

Here's a few other favorite packages of mine:

  • LibreOffice (from the Fresh PPA: sudo add-apt-repository ppa:libreoffice/ppa; sudo apt update; sudo apt full-upgrade
  • SpeedCrunch: the best calculator I've found yet
  • Simplenote: markdown-based notes w/ free cloud storage
  • Krita: realistic and unrealistic painting (Raster-based)
  • Rambox: for keeping all my chat apps together
  • Redshift: changes to warmer tones as the day gets later, to reduce eye strain and prevent the computer from throwing off your sleep cycle
  • Hexchat: IRC client, because the Linux world basically lives on Freenode and OFTC.
  • Hamster Indicator: time tracking
  • Meld: file comparison
  • ZeGrapher: graphing calculator

BTW, if you plan to work in C or C++, I highly recommend the LLVM Clang compiler. As great as GCC is, Clang's got better error messages and higher performance - plus it can run natively on every major operating system. VSCode has fantastic Clang integration.

Collapse
theminshew profile image
Michael Minshew Author

I need to try rambox and I actually use simple note on my phone so brilliant idea, gonna install that today! As to the text editor ive got atom so customized it will be a bit before I change again. I try VS on Windows but it just didn't click. Lots of awesome features though!!

Collapse
codemouse92 profile image
Jason C. McDonald

Oh, there's a profound difference between Visual Studio (which I hate) and Visual Studio Code. The latter, also known as VSCode, is closer to Atom in its functionality, but much faster, with more IDE integrations. I was a loyal Atom user until I gave VSCode a try, and it won out for sure.

Thread Thread
theminshew profile image
Michael Minshew Author

I might have been using the wrong one. I'll give it a try. Im a sucker for trying new text editors any day.

Collapse
erhankilic profile image
Erhan Kılıç

Visual Studio Code as an Ide? Well, my keyboard is super computer :)

Collapse
shostarsson profile image
Rémi Lavedrine

I definitely use VSCode as my main IDE for Python and Go.
And it is indeed an awesome piece of software. :-)

Thread Thread
erhankilic profile image
Erhan Kılıç

VSCode is editor, not IDE. Pycharm, Phpstorm is IDE. Of course you can use editor but that doesn't make them an IDE.

Thread Thread
shostarsson profile image
Rémi Lavedrine

According to me, VSCode without any Plugins is indeed an editor but as soon as you add some plugins to it, it is as capable as any IDE.
That's why a lot of people would prefer it to Pycharm or PhpStorm.

Collapse
souris profile image
Souris

You can start using Arch Linux or Arch Based for more power and up-to-dated software.
I'm using Manjaro, but you can try Antergos.
Yes, it's more advance if you're trying to install using command line... but you will love it and Arch User Repository (AUR) will help you install almost everything ;)

thanks for the article

Collapse
theminshew profile image
Michael Minshew Author

I think that I'm going to install Arch on one of my desktops later this year. I love the community and it seems like a solid well thought out flavor.

Collapse
5bentz profile image
5bentz

+1 ArchLinux is awesome to learn The Hard DIY Way.

For a rolling release and more up-to-date software, there is OpenSUSE (with BTRFS as the default filesystem!) ;)

Collapse
danilobarion1986 profile image
Danilo Barion Nogueira

I switched from Ubuntu to Arch and I'm very satisfied! Couldn't agree more with you!

Collapse
nitin profile image
Nitin Bisht

I am a windows 10 user, just started into development and I want to switch to Linux but My hard drive is almost full (900 GB / 1TB), and I don't want to loose my data how can I switch without loosing any data, Is there any way to do that without parallel boot and just use only Linux.

Collapse
5bentz profile image
5bentz • Edited on

By 'parallel boot', I assume you mean 'dual boot'. Don't be afraid of having a dual boot and using only Linux ;)

Since an Ubuntu flavor takes fewer than 10G, you should consider shrinking your last partition to free enough space for installing Linux. 30G is more than enough to install various IDEs, toolchains, etc.
Then, you can simply mount your 900G partition(s) on Linux to access your data. No loss at all.

Of course, backup your data regularly & especially before the shrink & the installation ;)

Collapse
theminshew profile image
Michael Minshew Author • Edited on

You can put Ubuntu on a flash drive and run it as a test that way. You'll have the option to try out the OS or format your hd. Just choose the test out option. There's a few other ways but this one is the simplest.

You can try the linux subsystem on windows 10 though right now as Bash and base linux is available now. Assuming you have room this is a fantastic way to get some practice and learn the command line and get the basics in.

here's a quick tutorial. (i edited this from the original post as this method is much simpler)
howtogeek.com/249966/how-to-instal...

for the ubuntu test:
They have a tutorial here. tutorials.ubuntu.com/tutorial/try-...

Collapse
nitin profile image
Nitin Bisht

Actually I have already installed ubuntu bash on my system, but I use git bash I found it more comfortable to use, I have Intermediate understanding of command line, I just got irritate with windows. Like unexpected shut down, low memory every single time when I open more than 4 tabs in chrome, along with VS Code open, and even I open another window of the terminal it crashes sometimes. I tried elementry os distro with a flash drive It's beautiful but I guess there are some driver issue with it, so Now I just wanted to switch to ubuntu without My data loss.

Thread Thread
theminshew profile image
Michael Minshew Author

I'd invest in an external hd and switch that way. i grabbed a reasonable external hd on amazon for 70 bucks a while back. i think it was 2TB

Thread Thread
nitin profile image
Nitin Bisht • Edited on

Actually did the same, backed up my data and did a fresh installation. Loving it, linux is awesome. Specially zsh shell and oh-my-zsh.

Collapse
shostarsson profile image
Rémi Lavedrine • Edited on

A NAS would be a good solution.
Push all your data to the NAS and access it from you Windows or Linux that you installed on Dual Boot (that's what I'm doing and it works pretty well from the last 5 years ).

Collapse
danielhoffmann_ profile image
Daniel HB

I highly recommend Guake, it is a terminal application that works as an overlay instead of having its own window. You can set a shortcut to hide and show the overlay. I honestly can't work with normal terminal windows anymore, I need Guake (iTerm2 with some tweaks can work like it on Mac)

Collapse
theminshew profile image
Michael Minshew Author

Oh this sounds cool, I'll check it out. I have my terminal keybound so its super easy to pull up but I do have to minimize and move it around a lot.

Collapse
devserkan profile image
devserkan

One more vote for Guake. In addition to that, try Tmux+Byobu+Guake.

Collapse
gianiaz profile image
Giovanni Lenoci

Give zsh and ohmyzsh (github.com/robbyrussell/oh-my-zsh) a try for a better shell :-)

Collapse
theminshew profile image
Michael Minshew Author

I've heard of ZSH before, I'll definitely give it a shot. Always willing to try something new, especially if it improves productivity,

Collapse
manueltorrez profile image
Manuel Torrez

I loved that terminal! Unfortunately, it didn't recognise ruby commands for me :(

Collapse
aswathm78 profile image
Aswath KNM

A few suggestions
Try Terminator for terminal

And VS code instead of atom . It really works faster comparing to atom

Zeal for offline documentation . This works because there's no official CHM reader for linux .

Calibre For e-book management . It supports almost every version of Ebooks

Collapse
waracci profile image
Morris Warachi

+1 on zeal. It has many offline documents.

Collapse
bgalvao profile image
Bernardo

I find this very relatable. I for one, decided to switch to linux because interaction with servers was better documented, and after all, a smoother experience. And it saved me a lot of time :) I had some friction with the terminal, but if you push through the two first days, it becomes second nature.

Collapse
theminshew profile image
Michael Minshew Author

I was doing some mysql work a while ago, I will absolutely be getting into linux server stuff later on and love that its so well put together.

Same with the terminal here but once I got CD, LS and PWD things got easier lol.

Collapse
tojacob profile image
Jacob Samuel G.

I would like to change too, but as a student, I use Ms Office a lot. I was using Libre Office for a long time, but I returned to MS Office for different reasons.

Collapse
moopet profile image
Ben Sinclair

I'm sure you'll have some specific requirements, but the majority of students aren't going to need anything MS specific - they'll just be doing word processing, 99% of the time, where Google Docs or LibreOffice or even Office 365 will be more than adequate.

Collapse
shostarsson profile image
Rémi Lavedrine

Don't let Office bring you out of Linux.
Some great alternatives are available now.
WPS Office is one of them.
wps-community.org/
Free Office is another one.
freeoffice.com/fr/

I am using Free Office on a day to day basis as it is available from the Ubuntu Software Center.

Collapse
theminshew profile image
Michael Minshew Author

I have switched to google docs and sheets for my writing and excel type work. Libre office is cool and just made a big version update but I haven't even needed to try it because of Google's tools.

Collapse
tojacob profile image
Jacob Samuel G.

I was not aware of the new update, it looks good!

Collapse
shostarsson profile image
Rémi Lavedrine

Your title brings me to that article.
I was very interested to ear about your journey from Windows to Linux.
I tried Linux in 2004 and at that point I had a very hard time with. Nothing was working and my very first laptop literally broke using Linux.
That was a very bad first experience from the Open Source Community. :-D

Then a few years later, I tried Linux again, and it was way better.
And I am now a full time Linux user.
Thanks to Web development, the software proposition on Linux is as great as it is on any other platforms.
And I must say that for photography management it is even better than on Windows or MacOS (Darktable and Shotwell is a perfect mix).
I really love Ubuntu for its huge compatibility with hardware and software but I indeed changed the flavour and installed Ubuntu Budgie.
That gives the best of the Solus desktop environment but in Ubuntu which has, at the moment, a great number of softwares available.

Had a great time on Linux.

Collapse
gmartigny profile image
Guillaume Martigny

Hi,
Linux for devs is a must ! Even just because every other devs are on Linux.

Therefore, I guess you kept another machine for personnal use (games as I've read) or do you now only use Linux ?

Collapse
theminshew profile image
Michael Minshew Author

I had the tremendous luck to have grabbed a few desktops and laptops when my place of work went bankrupt. I have a nice dell latitude with 8gigs and Kubuntu for work and another dell latitude with 16 gigs with win 10 for personal use. I'm really considering switching it around though as i'm not gaming heavy right now on pc and am coding more often. Steam is paving the way for Linux gaming though so I hope to be able to switch over once and for all in a few years.

Collapse
bgalvao profile image
Bernardo

Gaming on linux... that's the dream man!

Collapse
dmerand profile image
Donald Merand

Congratulations on your Linux conversion! There's nothing like an apt install allthethings.

Collapse
pawelsmolka profile image
Paweł Smołka

I love Linux for my combo:
os: arch with yaourt
wm: bspwm + compton
editor: spacemacs (emacs on drugs :D) with evil mode (vim-like edition but boosted with emacs power)

I run apps I develop in docker containers, same that are used on production. A little more resources is taken druing dev stage but it brings awesome portability and fast setup for colegues joining projects.

Gonna make some unixporn post some day ;)

Collapse
andyst81 profile image
andyst81

It seems like I've gradually made the switch too. I find myself using Windows and MacOS less and less nowadays - I almost exclusively boot up Ubuntu. I'm toying around with the idea of getting rid of Windows from my laptop entirely and going full force Linux.

Collapse
tam360 profile image
Mirza

you can use notepaddqq (linux equivalent of notepad++). VScode is a beast tbh. you will love it!!

Collapse
theminshew profile image
Michael Minshew Author

I'll take a look, frankly, the only reason I used notepad ++ was because of the autosave feature. I closed it a lot by accident and having a fast loading, autosaving, code friendly notepad was pretty helpful lol.

Collapse
mechanicaljungle007 profile image
mechanicaljungle007

Sir, How to Download this website in "mechanicaljungle.com/parts-and-fun... " in notepad format

Collapse
erinlmoore profile image
Erin Moore

I switched to Linux because I am very cheap 😂. I was building a computer to save money so I certainly wasn't going to spend any on the OS.

Collapse
theminshew profile image
Michael Minshew Author

That's a fantastic reason. Should have mentioned that lol.

Collapse
junocomputers profile image
Juno Computers

Juno Computers makes it very easy to switch to Linux. Check us out!

junocomputers.com/

Head to your account's Settings to...

🌚 Enable dark mode
🔠 Change your default font
📚 Adjust your experience level to see more relevant content