This article is created for beginners that think about starting to learn Linux or for people that don’t know if they should do it at all. If you are already a power user you can skip this post and check the other ones that you find useful.
Linux is an operating system widely used in software world. It is the most popular and stable operating system for servers around the world, most web applications running on it.
Learning it can be intimidating at any point in time (beginner, intermediary or advanced) and before you get started learning as a beginner or acquiring more knowledge on the subject you have to create a mindset and a plan that will help you get the most information stored in the least amount of time invested . Let’s have a look at what this mindset might look like.
Why Learning Linux helps you become a better developer
As we will get into a more detailed comparison between existing operating systems, here we are trying to answer the following question: should I learn linux as a developer ?
The short answer is yes. The reason why this would make you a better developer, especially a web one, is because you will understand in more depth how the application is able to run after you develop it. It opens the spectrum of understanding how to connect applications between them, how they work on a lower level instead of sticking to the high level that amazing nowadays frameworks’ magic offer.
Today’s cloud providers like aws, google, azure, digitalocean etc (we will talk about these in a future article) makes it very easy for us to have a web app up and running, almost feeling magical. However, you still have to understand how the core concepts work and how they are able to interconnect in such amazing and automated way.
Not knowing anything about linux and web infrastructure in general as a web developer means that you will know how to use the tools but don’t understand how they work, which is not a good place to be in because it’s very prone to mistakes that could cost a lot of money at some point. It will also mean that you are a regular web developer and not a great one that widens his spectrum and becomes curious about enlarging his web development knowledge.
Understanding operating systems, their use & differences
This might seem boring at first sight and obvious, however, we have to understand that we need to think of the operating system like we are a software program, giving instructions by writing commands than from the end user perspective.
Most regular users, technical or non-technical, use one of the 2 most popular operating systems out there: MacOS or Windows.
These operating systems are widely adopted due to their ease of utilization they provide to users without any programming knowledge whatsoever helping them get their job tasks done at the end and helping them relax offering entertainment support and gaming possibility.
This is working due to providing them an interface to interact with the system and with each software program, making it very easy to install and utilize them.
Linux is different, while it can still be used in exactly the same manner as windows or macos, it’s more like a standard than an operating system for people in general. It’s tailor made for programmers and web applications, being their home, taking care of them to stay up and running correctly, taking care of backing them up and more.
When starting to learn it, you should forget about interface when thinking about it. While there are distributions that are very stable and user friendly, as a mindset try to forget about interfaces.
The best way to get started is to change the paradigm. Every software out there with an interface works like this – when clicking around and taking actions, that program actually runs commands behind the scenes.
You should start thinking of using the OS like a programming interface does, directly writing the actions yourself through commands in a command line interface (terminal).
So learning linux means to write the instructions yourself directly. For this to happen you have to understand them, NOT learn them, it’s very important difference. You don’t have to memorize the commands, you just have to use them and they will get into the brain by themselves so don’t get discouraged whenever you don’t remember commands you just learned.
Understand what a command does and don’t try to memorize the command itself, you have to know what it does, how it affects the operating system and whenever you forget how to write it – just search on google, IT’S OK!
One day you will wake up and discover they become part of your life.
Bonus: MacOS and Linux are both UNIX like systems, meaning that they are very similar but not quite compatible from programs runtime point of view. However, they both use the same terminal commands which is the reason why most developers prefer macos vs windows (but not necessarily anymore – I’ll get into details why this is the case in a separate article so make sure you subscribe and stay up to date).
What Linux distro should I use ?
The best choice by far is to use Ubuntu. It offers a great and stable desktop environment, nice interface and design. I totally recommend starting using Ubuntu more than anything else, at least in the begining.