Top 7 Reasons to Learn Linux

Image showing Linux command line
Image source: https://unsplash.com/photos/4Mw7nkQDByk

Back in the 2000s, Linux was already insanely popular on servers. Nowadays, it's insanely popular on servers, Internet of Things devices, smartwatches, smartphones, and let's not forget it powers almost all cloud services. But it takes a while to learn Linux. So you might be wondering, is it worth the effort to learn how to use it? Is it a good career choice? What can it do for you, financially? Will you enjoy a job in this area? Short answer: Linux does open up a lot of doors for your career. And skills in this area are quite well-paid.

Let's look at the top 7 reasons why I think Linux is a good career path.

1. Linux Is Elegantly Simple and Easy to Use

Now there's a controversial point of view. Most people feel that Linux is complicated. At least, they feel that way the first few times they try it. So why am I saying the opposite? Well, first of all, I want to encourage people that felt intimidated the first time they tried Linux. It's not easy to learn how to use it, but it's not hard either. It's somewhere in the middle. It takes some time to get accustomed to, but it's not rocket science. It's just like learning to ride a bike. You fall off a few times, but try, and try again, and you get the hang of it.

No amount of theory is going to teach you how to ride a bike, until you actually get on that bike. And at KodeKloud we believe the same is true for learning how to manage servers and use Linux. Theory alone is boring, hard to understand, and hard to remember. But combine theory with a lot of practice and it can become fun and easy to learn. That's why we developed a very practical course about Linux. Everything that you see in that course you can immediately try yourself. We have easy to understand videos. And those are followed by online labs where you can test your newly acquired knowledge. As you do real things, install web servers, database servers, configure Linux networks, use Docker containers, we guarantee you will learn fast!

Now let's get back to this wild claim that Linux is simple and easy to use. The first thing that intimidates people when they first try it out, is the command line. We're used to graphical interfaces, such as those we have in Windows or macOS. The command line can seem quite scary. But after you use it for a few days, you begin to realize that it actually helps you do things faster. Because it's just you basically talking to a computer. You tell it what you want to happen. And that's quicker than clicking through buttons and menus. Plus, since you talk to your computer, you can tell it exactly what you want it to do. So it gives you more fine-grained control than a graphical interface can offer.

Think about this. On Ubuntu, to install Nginx you just type:

sudo apt install nginx

Bam! Job done. Nginx will even automatically start up, configured to display a simple web page. Now do the same thing on Windows. Can you install Nginx this fast on Windows?

So rest assured, Linux is quite easy to learn. Does it take time? It sure does. But it's a straightforward, one-step-at-a-time process. It's almost like learning a new language. But it's not as hard as Chinese or German. It's just plain English words, with a bit of syntax. By the time you write your 100th command, you'll understand pretty well how it works.

2. Future-Proof Skills

More and more stuff runs on Linux: servers, cloud infrastructures, watches, phones, entertainment systems in cars and airplanes. And it's safe to say that more and more things will use Linux in the future. So people that have skills in this area will be needed for many years ahead. And that's always nice to know. Because you will invest hundreds of hours to develop your Linux superpowers. But for the time you invest now, you will be rewarded for many years to come.

3. The More You Learn, the More You Earn

With little experience, the first job you can usually get is a junior system administrator position. The salary in this area is fairly similar to that of a junior developer. At the time of writing, 2022, you can earn somewhere between $3.000 and $5.000 per month, in richer countries. The thing is, Linux isn't a dead end job. As you become a very experienced sysadmin, you can earn more than $5.000 per month. And if you become a Linux guru, you can even jump all the way to $10.000, and above.

Now, this is true for other jobs, as well. For example, as a programmer, you can also start from $3.000 and get all the way to $10.000 and above. But the cool thing about Linux is that it gives you a bit more freedom to expand in other directions. Let's see how, in the next section.

4. Linux Opens Up a Lot of Career Choices

As a developer, if you have 8 years experience with Java, the next company will usually also want you to work with Java. They want to take advantage of your experience in that language. So if you propose you want to work with C++ instead, they might feel like it's not the best idea.

The Linux career path, however, is much more flexible. It might seem that if you learn how to administer Linux servers, that's all there is to it. You're a sysadmin and it's a dead end. But Linux has a way to force you to learn about many other things in the process. And it makes it a bit easier to branch off in other directions, if you want to. Here are some examples:

  • Maybe you manage physical servers. This means that you also get to play with hardware. Maybe you like getting your hands on real devices. But after a while, maybe you get bored with some routine things. You're sick of replacing defective hard-disks or memory modules. So you say to yourself, "That's it, I don't want to deal with this hardware stuff anymore!"
  • So you switch to the cloud. You manage virtual servers instead, Linux running in virtual machines. Now you only deal with software-related issues, configuring Linux operating systems and applications. It's easy to make the switch. There's no difference in the commands you use on a physical server and the commands you use on a virtual one.
  • Or maybe you see that you really love automating stuff. You find out DevOps needs such people. And the salaries are even higher. So you can move into that. The skills you already have will make it easy to shift in this position.
  • Or you start to find the usual sysadmin stuff boring. You're sick of configuring databases and making backups. There's no action, nothing interesting, dynamic happening. But you find that you're pretty good at securing those databases, web servers, networks. You love the war against hackers! There's always some action going on in that area. So you can shift into a security role. From now on, you deal only with security-related aspects. Other sysadmins can deal with the backups and all the other stuff you didn't like.

5. Linux Will Teach You about the Cloud

Almost everything runs in the cloud these days. And it can be a bit hard to understand how to interconnect the various pieces in that cloud. But Linux can offer some training wheels, so to speak. On Linux, you'll often connect many programs with each other to build some sort of system. And you'll also connect servers with each other to build an even bigger, more complex system. As you connect and configure various components, you start to understand these structures better. You start to understand how you can optimize them, make them work faster. You learn how to make them resilient, so they don't break down easily.

Engineers building systems in the cloud have to follow very similar principles. They also take various little pieces, connect them to each other, and build large systems. So you find out that the skills you learn with Linux are very valuable when you shift in this cloud space. You'll have a much easier time understanding the cloud. You'll already know how to build elegant, efficient, resilient systems.

6. "With Linux, You Learn about Everything"

This is exactly what someone told me a long while ago. I didn't believe it at the time, but later on, I found out that it is true. Of course, it doesn't teach you about literally everything. But you learn so much more than you expected, it's incredible.

When I was a kid I knew a guy that had some pretty amazing skills when it came to computers. And he was always telling me that I should learn Linux. I asked him:

"Why? What's so cool about Linux?"

And he told me:

"With Windows, you learn how to use Windows. With Linux, you learn about everything."

At the time, I thought this was simply an exaggeration. How could it teach me about everything? It's just another operating system where I do the same things. I install programs, listen to music, and browse the Internet. This claim cannot be true. Nowadays, I want to tell him that he should have repeated his claim 100 times more. Maybe it would have made me learn Linux much sooner.

Linux does actually teach you about… almost everything. "But why?", you may ask. Because Linux is open and transparent. Open, in the sense that it allows you to do anything you want. There are no limits imposed on the user. Any operating system is made out of small components. But Linux lets you use whichever components you want and configure them any way you want. With Windows, that's not always the case. For example, try changing the kernel on Windows. Then try changing the kernel on Linux. See which one is easier to do.

And Linux is transparent in the sense that everything is out in plain sight. You can see what components it's using, how they're configured, what they're doing. You can even take a look at the code used by every component. And this is useful.

Here's a real-life example. I had a WiFi card that was giving me trouble. My Internet connection was constantly interrupted. So I took a look at the logs. I saw a WiFi error, but it was pretty cryptic. Some very short, super-technical text, and an error code. So I went to GitHub. I looked for the page containing my open-source driver for that WiFi card. Then I searched through that code, looking for the error number I saw in my logs. With my eyes on the code, I could now understand what the error was. It was a timeout error. For some reason, the driver could not send some data out, fast enough. After about 2.5 seconds it dropped the data. Failing to deliver some important data between laptop and router, the connection was interrupted. And my laptop had to reconnect, again, and again.

And here's a second thing I learned. While I was checking out the logs, I also noticed some other line, displayed with red text, which signals an error.

Linux logs showing "TSC" keyword

It said that TSC was buggy for my CPU, so Linux will be using HPET instead. So out of curiosity I googled TSC and HPET. I found that these stand for Time Stamp Counter (TSC) and High Precision Event Timer (HPET). They help the computer's processor keep track of time-related stuff. Not time in the sense that it's 5:30PM. You can think of it as something like the timer on your phone. You set it up to count 3 minutes so you know when your green tea is ready. TSC and HPET do a somewhat similar thing for the processor. It helps programs keep track of how much time passed between one event and another. I also found out that TSC is more efficient than HPET and that a huge amount of CPUs at that time didn't have reliable TSC.

Now TSC and HPET are 2 terms almost no one would google, out of the blue. They're rather hidden concepts, because normal users don't need to deal with these things. But it's an example about how Linux helped me learn about "secret" hardware stuff that I would have never discovered otherwise.

On servers and even your personal computer, you will interconnect and configure a lot of Linux components. And in the process, you'll keep discovering new stuff, hardware things, software things, engineering solutions to various problems, software principles and philosophies, and so on.

7. An Interesting Job with Lots of Diversity

Unfortunately, a lot of jobs involve doing pretty much the same thing, over, and over again. In fact, the better you become at that job, the more boring it becomes. You get more experienced and the challenge totally disappears. Everything becomes automatic. You become a well-trained robot, perfectly doing its job. Some people will like easy, repetitive work. But they're usually an exception. Most people don't like that type of work as it bores them out of their mind.

Linux is incredibly diverse. It runs on many different types of devices. And it can be used in so many different ways. The problems you'll need to solve will be very diverse. Us human beings usually enjoy diversity. We get bored of the old. We are more fascinated by new things, new situations.

Jobs in this Linux world are rarely repetitive. And when experienced sysadmins encounter repetitive things, they usually automate those. So they don't have to manually do them again in the future. They teach the servers how to do the boring stuff. Then they can relax, or fix some problems that are more interesting.

Will Linux annoy you sometimes? It sure will. On occasion, you will chase a problem for hours or days, and won't be able to figure it out. Or you won't be able to fix it in a satisfactory manner. You'll fix something and it will break again the next day. It will be frustrating. But it will also be satisfying when you finally solve a hard problem. You'll feel smart. You'll feel you brought a valuable contribution to the world. You achieved something important.

So it's a love-hate relationship with Linux. But that's good. As some of you know, other jobs are simply a hate relationship :). They're always boring and you hate them every day. Or maybe you don't quite hate them, but you feel apathetic and a bit dead inside after doing the same old thing for months. Nothing interesting happens. At least, with Linux, things are dynamic; a roller coaster of happy days mixed in with difficult days. Wouldn't you rather have it that way?