Why You Should Learn Linux
Why You Should Probably Learn Linux
Let’s face it, Linux sounds scary to the untrained ear. Most average users think of black and white terminals, and pale, white, basement dwellers clacking assembly and basic into an ancient IBM machine when they hear the term “ Linux” arise in conversation. Of course, the same might not be said for Data Scientists, and programmers alike, but the stigma is certainly still illustrated inside of that particular clique. However, despite this idea that Linux is only for the most advanced of power users, these days, Linux is easier, and better to use than it ever has been before. Regardless of whether or not you want to switch your primary computer to Linux, or love your Mac or Windows comforts all but too much, familiarity with Linux is an essential tool for any developer.
Virtual Private Servers
Virtual Private Servers are the work horses pushing the data that we use every day. Without familiarity with Linux, good luck setting one of these up, as most of them are Debian-based, and use the apt package manager. As a result, for anyone that creates back-ends, including Data Pipelines, and things of that nature, this skill will need to be mustered in order to get the job done.
Docker
Although Docker usually falls under the dev-ops envelope, it can end up being an essential tool for any software engineer, data-scientist, or startup entrepreneur. Being able to manage virtual systems is an obvious but sometimes underrated skill that you need nowadays to pursue professional work in any form of Software Engineering. Docker containers, for the most part are completely based on Linux images, so being familiar with using these images is certainly a skill that is worth having that will be very valuable to any incoming investors.
It’s a well-known fact that 96.3 percent of the top 1 million web servers are running Linux. This is because Linux servers are by nature:
Easier to manage
More Stable
Easier to update (No downtime)
Free and open-source
Lightweight
Day-to-day
If you ask around in the development world about the best machines to develop on, the worst answer is almost universally Windows. This of course is not necessarily Microsoft’s fault, as they couldn’t of had any idea what restrictions the NT kernel would place when they implemented DOS into Windows in the late 90’s. A-lot of loophole jumps are needed in order to get a lot of things working inside of Windows, and often a-lot of applications, GitBash, Conda shell, etc., although you can likely get by with smaller tasks using Windows Powershell. The one saving grace of the Windows development experience is certainly WSL. WSL provides a traditional Linux terminal virtualized inside of your Windows machine.
Moving on to Macintosh, they are actually surprisingly flexible and great to develop on compared to the latter. One of the few significant downsides to using MacOS, however, is the lack of a package manager. Although there are some options to remedy this, for example brew, it really doesn’t line up with tools like Apt, Pacman, and Yum.
With Linux we get the benefit of the bash terminal, that really is essential for development on a computer, and really makes transactions with git and software installation quite fluid. For use as a development machine, even as a side-product to your main computer, Linux is certainly the way to go for development in our current era.
Overhead
Despite your operating system not really making a huge difference on your ability to develop as a whole, but your efficiency of development, your operating system does have a significant effect on your hardware. This is one of the biggest reasons that I use Linux today, and haven’t considered switching back ever since I first installed Mandrake Linux as a child.
MacOS and Windows both tend to use a lot of your resources while just idling, with Windows being the worst offender of the bunch, sometimes using up to two whole gigabytes of memory at idle! Of course, this might not be a significant blow most of the time, but for deep learning, every single bit of memory counts, especially in Jupyter.
It doesn’t really matter
It doesn’t really matter what operating system you personally prefer. Your operating system is a piece of your personality, and no individual thing should change that piece of your personality. However, knowing Linux is certainly a valuable skill when it comes to doing anything with computers, especially if your build target happens to be the web, and you don’t anticipate using Windows Primary Forms as your expression outlet for the rest of your life. Knowing how to use a package manager, bash, git, and manage directories is an essential skill for doing anything remotely.