| The one point I really disagree on is Linux. Sure learning Linux will most likely teach you something about the platform on which anything you write will probably be deployed but that's really marginal (IMHO). You get things done (programming included) by getting all the roadblocks out of your way. Linux is (IMHO) a roadblock. The OP claims it teaches you researching skills by giving you problems everyday you need to find solutions for. This is true in the same way that refusing to buy food of any kind teaches self-sufficiency. To get things done you need to get in the zone. This means eliminating distractions. Trying to figure out why copy and paste doesn't work (and it turns out that it's because you're using OpenJDK instead of the Sun JDK) very much takes you out of that zone and then wastes time to boot. This might be more useful later on (maybe) but learning to programming? No way. To me, the best development platform is OSX. Why? Because it's (BSD) UNIX that is a pleasure to use that (mostly) doesn't have the aforementioned problems. My only real beef is that if you're used to using a program on Linux or Windows the keyboard shortcuts will generally be different on OSX (due to following the OSX conventions). And as much as people (myself included) like to rag on Windows (in my case: the complexity), the fact is that modern Windows (Win7) is actually a pretty pleasant experience. Some things (eg git) suck but Cygwin can ameliorate a lot of those problems. |
I used to have a jokes tab on my iGoogle page, one day the joke of the day was: "If you want you computer to work, use a mac, if you want to know how you computer works, use linux, and if you don't want to know why your computer doesn't work, use windows." I thought it was funny, and it was a step in my inspiration to use Linux.
One analogy I'll make to promote learning on Linux: When I started playing guitar, any experienced player or teacher will tell you to learn on an acoustic guitar. Why? It's more challenging to make it sound good, you have to press harder on the strings, The strings are further away from the frets, you get buzz and damping if you don't use just the right form. It teaches you to over learn, then when you switch to an electric, it's easy peasy, and just sounds sooo good. I think in this case you could consider Linux to be the acoustic guitar, and Mac to be an electric. Just my two cents.