My Thinking About Linux: Why How and Where to Start?

Why this article

I see a lot of articles online about the Good and Bad about Linux almost every day, and I see a lot of people are wondering whether they should learn and use Linux. Some people (maybe I should say most people) who decided to learn Linux did not know exactly where and what they should start their journeys with. There are a lot of advanced Linux users and developers talking about the good and cool staff of Linux out there, but not many of them explains where and what to start for a new Linux user. Some of them do have explanations, but from my perspective they are still too difficult for a new user to understand.

Something about me

I am a Linux user, and I love Linux. I am not an Expert user, because that is generally refers to a really high level of user that can deeply understand the system and use it as their will. I should categorise myself as an Advanced user. I started my life with Linux about 6 years ago, and now all my computers are installed with Linux as the main operating system. The distribution I use on a daily basis is Arch Linux, and I am also familiar with Debian and Redhat based distributions like Ubuntu, Fedora and CentOS.

Linux as a desktop and its users

What is Linux and why can’t people use it

It’s not something that is designed to make people go crazy, nor to make people miserable or confusing. On the contrary, it is designed to make using computer to be simple and painless (that is what Linus thought, by the way). It is just an Operating System, like Windows and OS X, that bridges software on the computer and the hardware.

I think the problem when most people start to use Linux is that they have the pre-dominated ideas like “Linux is for Geeks”, “Linux is terrible to use”, “I am not comfortable with Linux”. That may be the real reason that why many people just choose to give up when they first find Linux is crashing and giving you “strange” results. To be fair, think about it, when you use Windows (I never use a OS X), have you ever come across a blue screen? Have you ever found out that a software gives you “Need to close” error? I am sure you do! It is extremely difficult to make any operating system flawless, so don’t make the conclusion that “Linux is unstable” or “Linux is buggy” when you see some of the tools are crashing. It happens everywhere.

Is Linux better or worse than other operating systems?

From my perspective, it truly depends on what you are doing with your system. If you need to work on Photoshop, edit a lot of video and audio, probably you need an OS X. If you need to work with Microsoft .Net, giving you an Linux system will not work at all. So the answer to this question is simple: if you think Linux can do all what you normally need to do, then there Linux is one of your choice.

How should I start Linux

The wrong approach: dual-booting

A lot of people started Linux in a “hard” way, which is dual-booting. In other words, they tried to install two systems on their computer. Let me tell you what the result to people who started that way:

(The data above is not based on statistical analysis, but purely my experience from people around me. If you don’t believe that, go and talk to few people started with dual-booting by yourself)

Why this is wrong? If you really think about it, it is obvious:

See the problem? You are facing not only a new system, but also a new computer! Why we want to start this way?

The approach I recommend: virtual machine

There are many reasons why you should start with a virtual machine if you are just starting your journey with Linux:

Yes, that is why I recommend people who does not have too much idea of how Linux works should start. Don’t mess up with your existing system unless you know exactly what you are doing!

Pick a distribution

Yes, this is a question that worth some thinking. Which distribution should I start with? My suggestion is simple: start with an enterprise level distribution.

Here is a list of distributions that I recommend for new Linux users:

Here is another list that people usually start with but I do NOT recommend:

My reason is simple: when you are trying to understand how Linux works, don’t use the bloody cutting-edge distribution because you will easily get yourself into trouble due to the poor documentation of the software, less question-and-answer posts you will find on Google, and new designs and concepts that haven’t been fully tested and distributed.

Therefore, start with something that is well documented and supported. All the distributions in the first list are the ones that widely used in the enterprises, and more importantly, the mechanism behind the system is not intentionally hidden from you. It will be a really easy if you start with those distributions, instead of using Ubuntu or Fedora which is targeted to make Linux working nicely as a desktop operating system and hide all complicated configurations and their mechanisms. Yes, our ultimate goal may be to use Linux as a desktop OS, but it’s not a good starting point because you need to know how Linux works before you can master it.

What you should expect for your first distribution of choice

On top of my head, you should get the idea of how Linux works in general. You should get some basic ideas about commands, packages, libraries, file/folder structures, services and all kinds of new concepts which you don’t have to deal with if you are using Windows or OS X. And I think the best way to learn that is to give yourself some tasks. For example, you can try to install and configure LAMP server, DNS server, DHCP server, VPN server and other kinds of services on Linux, by which will help you a lot on your way of learning Linux. You can also try to configure something fun, like OwnCloud and other open source services that you can actually use it in the future. You should start with a minimal installation (yes, I know it is harder to start with compare to a GUI environment, but that’s a better way, because you have a cleaner environment), and then build everything step-by-step, and don’t forget to take snapshots along the way.

After you’ve got a better understanding of the Linux environment, and hopefully a better understanding of either VIM or Emacs (I am joking, if you just like Nano, I am totally fine with that), now you should be able to move to a later distribution. When you move to a later distribution, please note that try to stick with the distribution similar to the one that you’ve familiar with, in other words, try to use the distribution which is a child distribution of your familiar one. Even with this in mind, you will still find out that the later distribution is hardly similar to the previous generation. To give you a simple example, in RHEL (CentOS), you usually use “service” to start, stop and reload services, whereas in Fedora (a child distribution) it has migrated to the systemd packages which uses “systemctl” command. You will find out a lot more when you start to use it.

Finally, my suggestions