What most people fail to recognise is that Steve Jobs and RMS are the opposite sides of the same coin. Both are a product of 60's counter-culture, but wound up in radically different roles. One was a "perfect capitalist" and a marketing genius, with a knack for choosing good people to do the hard stuff for him, other one was a true hippie freedom fighter in the newly emerging Information age.
Steve Jobs made a lasting impression on the IT of the 80's, late 90's and 00's. He wasn't an innovator, he was a motivator. A driving force. He was also an obnoxious ass, rude, and many people disliked him. Rightfully. RMS shares those same characteristics. He's also an obnoxious ass, driven and rude. But he's also more akin in some ways to that other Steve (Woz) in that he was a technical person. Operative word being WAS. Both men saw, and one still sees, the world in black and white. So you can rightfully apply idiot and genius to both of them.
FSF that RMS created is a plague upon the software freedom. That's now, things were very, very different back in the day. Insisting on GPL3, hard copyleft licensing, delusions about people wanting to be free from chains of proprietary software, that's his legacy. If people wanted to be free from the "chains of copyrighted software" they would be. Thing is, some stuff is closed source and rightfully so. I like open-source, and support the free software movements for the most part, but I can't stand zealotry. For all the good that he's done with envisioning GNU in the right moment in time, making some great software (namely GCC and Emacs), he made FSF purely for the sake of his ego. Not principles, and not your or my freedom.
I do web development now mostly. I've been a sysadmin in a bank, managing Linux/UNIX systems for the past 8 years. I've changed back to thing that I love most, and that's coding. Started a company and we're doing fine for now. In all my time with computers (first PC when I was 6, now I'm 28, and no, I didn't finish college), coding some stuff I needed was always eating at my free time. In my high-school days I discovered Linux, by the end of high-school I was using only Linux. Now I'm working on a Mac, because I like the workflow (well to be honest it's dual-boot machine with Arch). I also have 2 Linux machines as VM hosts that run my firewall, testing web/db servers and various other stuff.
Point is I use GNU software because I must (and because I'm lazy) (actually I use BSD variants of the same utils, being on a Mac mainly, but point still stands). GNU just isn't relevant anymore. All of basic GNU utils could be replaced with better quality software in a matter of months. If you are choosing software that's "free", over software that's good, then frankly you're an idiot. Most of my friends/coworkers agree with me on this, because choosing GPL3 licensed software is essentially taking away your freedom to modify it with better, but not hard-copyleft, software part.
My freedom isn't for someone to choose for me. My freedom is my own. I am not evil, or even misguided. I don't hate RMS, nor do I bear him any ill will, I just think his ego got the better of him. This is most visible in insisting on calling Linux GNU/Linux, even though the GNU part is, well most of it, outdated and comes with a stench of decay, and for the most part will be replaced in the following years with better software. Yes, even the venerable GCC which is being phased out in most BSD flavours in favour of LLVM/Clang (again because of the idiotic move towards enforcing GPL3 at all costs). I bet this will happen with Linux too in the following years, distro by distro (or even Linus and the Penguins make another bold shift toward Clang when it matures a bit more, LLVMForLinux is a good start). I shudder to think what would have happened hadn't Linus said no, RMS, FO, I'm not going to use the new more restrictive license. For one, no Android. No Steam on Linux.
More examples of replacement software that's better than gnu...
Grub, yeah, well syslinux is kind of much better. If simply for sticking with KISS principle in software design/config.
Grep... no, I use ack.
Glibc... eglibc (not so big a diff)
Gawk... Mawk
Sed... lol, hm, any text editor.
hell you can just do away with most of gnu coreutils by linking busybox
GNU isn't that relevant anymore, and FSF is an outlet for one man's ego. Just check out the latest rants from GNU software maintainers and you'll see what I mean... Gnu Grep and Sed maintainer quits because RMS and FSF are harming GNU@/.. That's the latest one, check out prior ML postings for more such rants. Sorry for the long comment, but I'm quite irked at how RMS presents himself as a Jesus figure.
Greets from Croatia
Just the example I was going to use. When I was in elementary I borrowed the first edition of K&R from dad's colleague. It's still sitting on my shelf. It's still relevant, and it taught me C. It's the standard on C, been standardised by ANSI, and I'm really considering buying a new one.
Relatively small book, about 300 pages, but it tells you everything you need to know to write C. Everything. When writing docs for my own software I always use this book as a guide. Small, short and to the point. Don't shy away from explaining the implementation, but don't skip on the part how to use it also.
Also Douglas Crockford's, Javascript - The Good Parts, which is also a great book. And Demistified C++ from Kent is also very good (half of my country developer workforce literally learnt C++ based on that book). On the broad coverage scale, Java - The Complete Reference. Both as a murder weapon (1000+ pages), and in the detail of showing various features and quirks of the language and the platform.
And yeah, there was this great book about Pascal I read as a teenager, but I hated programming in Pascal (since I did a lot of C back then), so I forgot the author of the book
The hardest part of climbing the ladder of success is getting through the crowd at the bottom.