Learning Linux-Easy to Hard 2
There are many different levels of “learning linux”, just like there are many different levels in “learning” any OS. My Mom has been a Linux user for over a year now. I don’t recall there being any “learning curve” for her. She told me that last time I visited that it was easier than WinXP for her. She’s running Lubuntu, though she doesn’t know or care about that.
Distro Migrations
If you want to learn more about Linux, you’ll want to migrate from distro to distro over time to see how each handles things just a little differently. At the shell, 95% is the same, but the GUI layers is where each distro feels they can differentiate themselves. Most are 80% similar, but a few are very different – sometimes in a good way and then there’s Unity. I honestly don’t care much for the GUIs (DEs as they call them – Desktop Environments) – they get in the way most of the time. You don’t need one and those are the main reasons that Linux is becoming bloated just like Windows. If you need a GUI, then you only need a Window-Manager, not a compete DE.
Learning Level Required List
A short list of Linux Desktop distros, in order of ease of use (my opinion here):
- Puppy Linux – not too much there to confuse anyone
- Peppermint Linux
- TinyCore – runs in 20MB of RAM; Great if it does what you need. FAST)
- Maemo (Nokia/ARM)
- Lubuntu
- Xubuntu / Mint / PCLinux
- Ubuntu 10.10 and earlier
- Debian
- SUSE / Fedora
- Ubuntu 11.04 and later
- CentOS (yes, there’s a desktop)
- Arch
- Slackware
- Gentoo
followed by lots and lots of highly specialized distros. Taking TinyCore, you can build a specialized desktop for specific purposes pretty easily and it will be relatively tiny. For example, if you need an online banking distro to quickly access bank accounts without fear of crackers.
Other Linuxen
I can’t list Android, since it lacks most of the things that make me love Linux. Google left out the “GNU” in “GNU/Linux” and there really is a difference. A huge difference, IMHO.
I didn’t list DSL – not any hate, but last time I looked they were running an old 2.4.x kernel. It could have changed.
Forced Learning
So, if you really want to learn – be forced to learn – linux, you need to get to the Slackware/Gentoo versions. When I started, Slackware was the most user-friendly distro available. These do not have a pretty GUI for everything and you will spend more and more time in the shell tweaking things. It also means you will learn more of the internals of Linux because you will need to understand those to get things done. It also means that after you do your time and decide to move back up the ease-of-use distro list, you won’t be concerned about dropping into the shell to get things done or to customize your system beyond what some GUI programmer decided would be good enough in their GUI tweaking tools.
Some Limited and Some Extensive Use
I haven’t tried all of these distros for more than a week, so other people will have different opinions and mine could easily be wrong. For example, I haven’t run Fedora more than a few hours many years ago. I did run SUSE for over a year and didn’t have any issues. I’m completely sold on APT , the package manager that Debian and debian derivatives use. I spent years in RPM-hell on Redhat and don’t need to do that anymore. I’d definitely pick any RPM-based solution over tgz or built-it-yourself every time. I’ve built enough kernels and programs in my life. There’s really very little need to do that anymore … except for fairly specialized packages like ccextractor. Sorry Gentoo lovers.
I’ve run Redhat, Slackware, Ubuntu, Lubuntu, Xubuntu, Maemo and SUSE for more than a year. When I ran each, I had a fairly deep level of understand, at least I thought so at the time.
Your Ordering?
What would you change in the order?
I pretty much agree with that list. When someone asks me about linux, I usually redirect them to mint or lubuntu (not ubuntu anymore because of the drastic desktop changes that may drive people away). Most people stay there anyway and if someone wants to dig deeper they will find their way to Arch/Gentoo/Slack, just like I did.
Someone asked for a good way to learn Linux for a career.
Linux is Linux is Linux, but we’re just talking about the kernel, which 99.999% of users do not have any real interaction with. At the interface levels Linux can vary widely – Android and Ubuntu are both Linux, but to an end-user, they appear completely different. At noob stage, you should probably concentrate on 1 flavor (distro) and stay with the distro specific knowledge.
If you want to understand desktop/server Linux and aren’t afraid of hard work and a VERY steep learning curve, start with Slackware. I doubt you’ll be able to do that without someone local helping, someone to show you want to type.
Best Training Manuals
If you want training materials, then you need to stay with RedHat or Ubuntu desktops. Both have manuals which teach how to use the GUIs and can bring an end user up-to-speed in a week or so, depending on your comprehension. Google for the Ubuntu Desktop Manual to find that.
LPI Manuals / Training
Once you get passed all the GUI crap and have decided to understand Linux at the CLI level, seek out LPI certification training. Recently heard there were Anki-learning modules for this.
Corporate Linux = RHEL/CentOS
If you want to get a job doing Linux, then you probably want to learn CentOS/Redhat for 90% of the corporate world uses that. Debian Server is used by a few places to run servers, but to be employed, it is RHEL and CentOS (CentOS is a free clone of RHEL).
Gentoo and Arch are fringe in the corporate world. While they have vocal communities, I can’t think of any company running them on hundreds of servers or desktops. These are hobbyist Linux distros. They lack the large scale systems management tools that RHEL/CentOS and Debian have. This is they type of knowledge that will get you hired as an Admin for Linux systems.
Getting Started
What’s the easiest way to get started?
This isn’t the end-all or be-all career and there will be ups and downs along the way. Ruby may fall out of favor, just like Perl has. Flexibility is key. BTW, Perl completely rocks, but it is currently out of favor in most job markets. A skilled Perl developer can still find great work.
Summary
This is a great career path in my book. You can work for someone else, work for yourself, and scratch almost any programming itch you have as a hobby with these skills.