7 months ago I started to learn to code and in the first month. I did something I believe most beginners wouldn't, I switch to Linux, but why exactly would I a complete beginner ever consider that?
How it all began (The tragic backstory)
I haven't watched a lot of movies but based on the one's I have watched (every Avengers movie and Naruto, yes I know it's not a movie but you get my point I love it, and dragon ball lol) the protagonist(s) have tragic backstories. 7 months ago something very terrible happened I never believed it could happen to me, I got hit with a really nasty ransomware. It encrypted all my files and I lost everything, I was demoralized. Long story short it was a bad experience, I wouldn't talk too much about how I got attacked but all I can say about is never download from unprotected sites 😿. I had to wipe out my computer but it wasn't the same after because I lost my Microsoft office suit and other useful paid software that I got for free (lol). I was a broke (still broke thou lol) 1st year college student so as you might guess I had to seek out a free solution. I made my research about Linux, found out it's free and has about 200 different distros and installed ubuntu. I choose Ubuntu because I felt if was a great place to start as a beginner and that essentially how it all began.
How it's going
it's been 7 months now and I must say it's been well worth it so far. since using Ubuntu I have tried out other distros which includes:
- Kubuntu (a favour of ubuntu)
- Arch Linux ( I can finally say "I use arch btw" 😅)
I am currently on arch and I found a lot of really useful perks to using Linux (especially for programming) and that's what we are here for.
Linux is so much lighter than windows and is highly performance on older hardware. I use an HP notebook 15 it's hardware specs are not so flashy it's very sluggish on windows but works quite well on Linux. It opens apps more faster, navigates faster and more. In terms of actually performance during running apps I must say it depends on hardware on more stronger pc's you are not gonna fell that much performance difference when running apps but on lower end pc's you are. The can help a lot in development as it gives you a better experience when coding than having you pc lag every time you run npm start (lol).
2. CLI tools
The cli tools in linux are second to none and I don't say that lightly. There many cli tools available for various purposes such as neofetch , htop, tmux (this one is available on macos as well), googler, netcat, ranger, Wikit, Trash-cli, httpie, ngrok just to name a few. The cli of linux (the terminal) in general is very powerful and as a lot features in general like Editing files directly from the terminal with nano or vim, creating files with the
touch command in the terminal, Installing and deleting packages which can be very helpful when coding. I can go on all day and talk about what each cli tools but you get the point the cli in Linux is awesome!!! 🚀.
3. Package managers
Installing packages on linux is usually a breeze, on arch linux it's as simple as typing in your terminal
pacman -S "name-of-your-package"
and running the command. This is possible with the help of package managers such as pacman (in Arch Based distros) and apt (in Debian based distros). Package managers essentially handles the install of packages and their dependencies in Linux. It's a lot quicker to run installs this way. Imagine if you would want to install packages like nodejs or postgres or gcc, on windows you have downloaded an installer and in some cases do edit some configuration or settings but on linux all you need to do is use the command for the package installer and in no time you have you package installed. It doesn't stop there, packer managers also have other features such as searching for packages, checking installed packages, removing packages and much more. When we are programming we tend to install some packages or library or applications and these features can be really handy.
This is exclusive to Arch linux and Arch based distros. so the the Arch User Repository, this is essentally a Repository container hundred if not thousands of packages and cli tools. This has way more packages in comparisons to distros like ubuntu and is a huge perk of arch linux as it makes more packages ready available and aids the ease of installation (by making the package available you can install directly from your terminal) and this can save you a lot of time installing stuff.
5. Security (bonus)
Linux is open source and when it comes to the question of security, then I must say for every malicious developer there are 1000 good developers watching the code base. That sounds catchy doesn't it 😅 but this is not the sole reason why linux is secure another really good reason is the linux is used a lot I think about 2% of the market uses linux. This is the reason why most hackers do not usually make viruses for linux the mostly target windows (poor me 7 months ago, he should have known better 😿) , that's why linux users don't need an anti virus.
6. Privacy (bonus)
The one is another bonus and has nothing to do with programming but unlike Windows which monitors you activities and have such settings enabled by linux, Linux do not monitor your activities unless you want them to be monitored and if you don't trust that, well linux is open source, you can always check out the code.🤗
7. Customizability (bonus)
Everything in linux is customizable from the taskbar, to the navigations buttons everything including you shell, the possibilities are endless(This can also be a con if abused lol). If you search arch linux you well find different looking homescreens this is the reason. Here are some examples:
so irrespective of the linux distro you use you can always make it truely your own.
Should you switch to linux as a programmer?
The answer is not a straight one (another one of those it depends answer) but it depends on your preferences. Are the perks worth it? What kind of pc am I using? And make me more productive? These are questions I feel that need to be asked. Linux does has it cons like driver support issues on wifi drivers on some pc, and lack of support on some application such as microsoft office suit and adobe photoshop and some distros such as Gentoo are not so beginner friendly. If you can live with these then yes chose linux (the driver issue is not as common but it does happen). Linux is great and all but it's just a tool and as programmer you chose the right tool for the job. If you are devOps or backend engineer then yes linux is the tool for you. Linux, Windows and Mac there are just tools and we developers chose the right tool for the job.
I want to thank everyone who gave feedback to my previous article, it really encouraged me to keep going. I would love to get some feedback on this one too so that I can improve and make quality content. I want to know from what I have shared here is Linux worth it to you? and in what way do you think linux can be a benefit to you as a developer? Do leave your answers in the comments. And if you haven't already please do subscribe to my newsletter so that you will be notified everytime I publish a new article, thank you very much for your time see you in the next one.