LINUX - THE OTHER OS
Picking a Linux distro is more like picking between a car, truck, or suv...or perhaps more like picking between a Tank, an APC, and a jet fighter build-it-yourself kit. Each distro has its place, but ultimately you can usually get any Linux distro to do anything the other distros can by installing different packages/sources. So that is really where differences lie - the packages and support that comes with the Distro. I will taking it from the perspective of: [ol][li] A Sever/Network Admin [/li][li] A Developer (web/programming)[/li][li] A Computer Enthusiast [/li][li] A Noob [/li][/ol]
Server/Network Admin
Profile: A person that is in charge of a series of Servers or a Network. Tends to be interested in efficient scripts, servers, routers, security, and the best ways to control everything.
Suggestions: [ol][li] Servers - RedHat (commercial), Fedora (free), CentOS(free) [/li] [li] Routers/Firewall - PfSense (freeBSD), M0n0Wall(freeBSD), SmoothWall(Linux) [/li][/ol]
You will instantly notice, and some will try to insta-flame me for posting freeBSD in a Linux forum, but when your a Network Engy you really just want to use what works best. For most things that's pfSense. My only compliant with the OS is that you can not manually edit the firewall rules, but must use their WebGUI. Admittedly, I have not used M0n0Wall or Smooth Wall in an applicable environment, but I have several friends in the Networking world that do and they love them.
On to servers. I love CentOS - why? Its free, easy to use, easy to setup, and it has most packages that come with Redhat - why? Because it and Fedora are both RedHat distros. This means they will have all of the non-commercial packages that RedHat has. So why not go with RedHat - well it costs money. If your company can afford it, then go for it. The support they give is top notch and way less expensive then any Windows Server setup. Technically the OS is free, but you really do need to pay for support from RedHat to get the most from the OS. For your personal use, I would go with CentOS all the way. For virtualization there are two basic options - VMWare and Zen. Both are good, and both work on Linux.
Note: upper languages like Perl, Python, and Ruby are very easy to implement in any version of Linux, and Bash scripting of course comes with every Distro.
A Developer[/size=4]
Profile: Someone that is developing software on the professional level for either websites or OSs. Tends to be interested in processing speed, IDEs, Compilers, ect.
Suggestions: Linux (lol), Fedora, OpenSuse, Ubuntu, ect.
Yes, I did say Linux, in truth, any Linux distro is probably the best for compiling code. If your program in something more than C#, then you've heard of GCC and how it is used to compile almost anything (except C#). The nice thing about using Linux to write and compile your code is that you don't have to spend 1000s to get the IDE and the compiler from Micro$oft. The other big advantage is that Linux servers can be easily setup to Cluster compile your code. If you don't have a cluster try talking to your Server Admins about setting one up.
For editing your can literally use vi or vim to do it (which can come with linux or is easily installed). Also the gui editors in KDE and Gnome come with color coding from almost every language under the sun (COBALT to Python/Ruby). But if you want an easy to use IDE, I would recommend Code::Blocks for C/C++. You can get plugins for Code::Blocks to edit Java (not compile), but in that case I would recommend Eclipse. As for other languages, well I don't have enough experience in those languages to say for sure. \
Another really nice thing about Linux - Virtual Box. Yes you can run it in Windows, but Windows takes up sooo much resources that it makes running more than 1-2 other OSs hard for even a quad-core 3GHz, 4Gb machine to do. With Linux, I have had over 4 VBox machines running at the same time. this
Note: C# can be done by using the Mono Project but its a pain in the butt.
Computer Enthusiast
Profile: Someone that will do everything and anything to an OS (even unspeakable things). This person wants to rip it, burn it, and change it.
Suggestions: Gentoo, Linux From Scratch (LFS), ect
Well, if you called a computer enthusiast and you have never played with Linux, then you sir/ ma'am are a lair. Linux is one of the ultimate OSs for anyone that wants to do anything to an OS. Yes, freeBSD is another good one, but freeBSD doesn't fall under the GNU GPL. Why is this important, well if you have ever wondered what the code looks like for an OS - this guarantees that you get a crack at it. For example: OS X is really a freeBSD rewrite that Apple put out, but since freeBSD is not under the GNU GPL, Apple doesn't have to let you see what the code is.
Another really kewl thing about Linux is Gentoo which is a build yourself OS kit that allows you to literally customize your OS from the ground up. It has a huge support group and tons of docs. I recommend this as a first stop for computer enthusiasts. After you conquer Gentoo, I would go to LFS (Linux from Scratch) which is really a manual on compiling and building the OS from the ground up. It can be really hard since the document has to be absolutely up-to-date otherwise somethings wont work. The reward is that you will know more about the inner workings of Linux than any Windows Guru could know without working for Micro$oft. Plus, its all Free.
Noob
Profile: Windows User, a person that might think Linux is L33t H@ker tool or Ubuntu is a pokemon. Tends to be arrogant and whines when something doesn't work right the first time.
Suggestions: Sit down, shut up, and use Ubuntu.
Well every Linux user saw that coming. Ubuntu is for noobs and grandparents. Its a great OS. It just works (until you really try and screw with it) and it has a massive support forum. 9/10 google searches of Linux problems displays Ubuntu forums.
Now many noobs will say that they are ready for another Linux distro. Here's how you tell if your ready.
[ol][b]Linux Noob Must Do to stop being a Noob[/b][li]Install the OS[/li][li]Learn how to manually install Graphics Drivers[/li][li]Install/Remove a package without the help of the Package Manager[/li][li]Help another noob with a simple problem that you have mastered[/li][li]Learn how to add/mod users and groups without the GUI[/li][li]Learn VI or VIM[/li][li]Post helpful info on a forum[/li][li]Install and use another Distro of Linux[/li][/ol]