It's been 8 years since I started toying with Linux. The free CD a friend of mine received from Canonical kicked it off. It was a live CD + install CD 2-CD-pack back then, so if you wanted to install, you'd have to use the other CD. I look back upon those days with the same kind of nostalgia I feel for my MS-DOS 6.2 adventures.
I would like to summarize the top things I've learned about Linux and open-source software in general (not counting the fact that Tux is the Linux mascot). Don't expect technical things, though. No commands, no configuration files, and that type of thing. Most of this will just be general stuff about Linux and open-source.
1. It's a jungle out there
Ok, jungle might not be a good word. More like a village? Small town? Or maybe lots of small towns connected by giant tortoises that carry people around for cash?
The Linux community is a huge, huge, mass of people from all kinds of backgrounds. From corporate types, to people who just love to play with their PCs, tablets, phones, dishwashers, toasters, genitals, to people who were forced to use Linux because they lost a bet... There are millions of Linux users worldwide. Unlike a decade or two ago, there are also kids who grow up on Linux (my kids, for example), and they will be part of a whole new generation of Linux users one day that doesn't quite fit today's patterns.
It's also very interesting to see an Arch Linux user that is an artist, musician, or some other kind of professional whom you usually don't expect to use a hard-core super-geeky distribution like Arch.
Most of the time Linux geeks are nice people. As long as no Windows users are present, that is. It's not that we hate Windows geeks. They are geeks like us, after all. It's just that, somehow, somewhere, someone always pulls out a flamethrower at some point. In fact, it's not just Windows guys that can trigger the flaming contest. We are also known to fight among ourselves, too. Check this out: Who hates Ubuntu? I see five hands, and a guy with a big gun pointed at me. Duck!
There could be exceptions, but majority of Linux folks are also the ones that fix
$X's computer where
$X could be your favourite relative, friend, neighbour, potential companion for reproductive activities, total stranger. We always think that the proper way to fix a computer is to install Linux on it, too.
The smart ones among us just install Windows on other people's computers so they can spend less time explaining how Linux works to random grandma.
2. Ubuntu's always the odd one out
Yes, Ubuntu is a Linux. But it's always been sort of like the naughty kid. It did many things that other distros just watched from a safe distance until it was safe.
It's the first distro that sent out free CDs all over the world, and a lot of us received our first Linux experience in brown.
It was also the first distro that didn't make me feel like shit for wanting to install multimedia codecs. After all, I do need to listen to music and watch videos.
Later on (recently), Ubuntu started doing even crazier things like provide a mobile-friendly UI, talking about Ubuntu TV, Ubuntu Phone, and integrating Amazon search into the latest releases.
I'm not saying these things are bad or good. Point is, it has always sort of stood out.
3. Stable, unstable, development, fubr'd
Open-source is a fluid world. Stability is relative. There are as many definitions of stability as there are software engineers, it seems.
One important lesson I've learned (it was much less painful then you might think, though) is that when some project says "stable release", it usually means "we're done here, move along". Rock solid, robust, hard, unbreakable, bug-free, and all those other things a normal person imagines upon hearing the word stable, can be attributed to a stable release only after the software has been in use for a few month and has survived it.
"Unstable", or "development", means something like:
We're still working on this. We really want you guys to try it and tell us what you think. Oh, gosh, we're so excited, and we think it's really cool! No, seriously, don't touch this button, because we know it'll blow up in your face, ok? The other button is totally fine, though.
Then there's "fubr'd". This is not an official label used by any of the developers (it should be, really). It basically means, "don't touch that shit". Good example of fubr'd software is Evolution (which is kind of ironic). As with stable releases, you are supposed to tell if something is fubr'd yourself.
4. If it works, it works
Most of the time, if something works, it will work great. If it doesn't, you need to fix it, and it isn't pretty. If you install Linux, you'd better hope all your hardware just works, because if it doesn't, you might have to pull your sleeves up and do some dirty work.
The 'dirty work' could be as small as install a missing driver package (but you have to first find out which one because they usually aren't named after your particular device), or as big as compile the driver from source code (do you give up?), add appropriate permissions to various files and directories (still not giving up?), and write a few lines of configuration in text files (still with me?), possibly realize it was the wrong driver and that you need another one, and finally making it work after repeating all of the previous steps with the correct drivers, having worked at it for a few days (if you're still with me at this point, congratulations!). In some cases, you just can't do anything about it.
Vast majority of current distros are simply so good that most hardware will just work, though. It's really not that bad these days. My Lenovo X220 tablet is fully operational after 15~20 minutes of installing Linux Mint, for example, and I only had to fiddle with the fingerprint reader, which isn't such a common piece of hardware anyway.
When things work, though... it's beautiful. It all just works. No need to fiddle with anything. Just plug and play... Now, where have I heard this phrase before?
5. Documentation FTW
Nothings brings joy like seeing great documentation. It is so reassuring, and so enabling. Back in 2010, I worked hard with Dusty Phillips to bring order into chaos that was Arch Linux Wiki. The wiki is now one of the best places to find useful information not just for Arch users, but also for the rest of us. I certainly used it to figure out how to set up my fingerprint reader on Mint. I'm obviously biased, but I believe ArchWiki (along with its contributors) contributes to Arch Linux's ease of use, despite it being a very manual distro in general.
Every Linux project should care about its documentation. It definitely must be publicly editable (like wiki, for example), and all efforts should be made to make editing those documents easy and painless.
It's not enough to just deploy a wiki. You absolutely must provide templates for everything. Especially templates for things like page summaries and links to related documents. If you make it hard for authors and editors, your wiki will become a mess nobody would want to read.
This is a big thing: TODO list. There are people who really want to help out and start contributing, but don't have a clear idea about what there is to be done. Maintain a TODO list, and keep it up to date. It helps volunteers jump in and start doing their magic.
6. If shoes don't fit, find a new pair
This applies to all aspects of using Linux and open-source software (any software, really). From distro shopping, to app shopping. All the way to the very decision of whether to use Linux or not.
If something works for you, fine. If it doesn't, you usually have a broad choice of alternatives you can use.
Just take a look at Distrowatch. There are more than 300 different distributions listed there, and god knows how many of them are actively maintained. Each one of those distributions has been created because someone had a problem with something, and wanted to fix it. If you have a problem with something, see if someone has already fixed it for you.
This also applies to most types of applications. Hate Gedit? Try Kate, or Vim, Nano, Emacs, SublimeText... Don't like Firefox? How about Chromium? Opera? Midori? Not to mention the vast number of different media players and media center applications, and file managers.
Finally, if you don't like Linux, don't use it. Even that is a choice.
Bonus track: Free vs Non-free
Most people using Linux probably know this already. However, I've just remembered how difficult it has been initially to tell the difference between free and non-free. Eventually, I've learned more about what open-source and free software means, and that 'non-free' doesn't mean I need to pay for it, but something completely different.
I still see distros referring to software as free and non-free. I can only imagine the confusion of seeing that your graphics card driver is 'non-free' for the very first time in your life, and thinking "Why do I need to pay for something that I get for free on a CD when I purchase a device?"
To those who don't know: non-free doesn't mean it's for-pay. It means that the software is handed to you with a contract that doesn't let you do just about anything you might think of doing with it. For example, the contract may prevent you from doing one or more of the following: disassemble it, copy it on a CD and handing it to your friends, installing on multiple computers, uploading to a torrent site, sell copies of it and make money, modify it and lend/use/sell modified copies... If you think all software is like that, you're wrong. That's why there is a distinction between free and non-free to begin with.