So I set up a VPS for the first time this week, here's how it went:<p>1. Shell? SSH? Wtf is this? Console? Huh? Why am I using something that looks like DOS, it's 2013! Where is the GUI and menus?!<p>So I learned about Shell/SSH, connected to my server, root and all that stuff.<p>2. Navigating folders and directories - dear god, this was a nightmare. I never used 'cd \' since '98 and that's only cause I wanted to run DOS games.<p>3. Kept seeing all these commands with '-' that makes installing extensions seem oh so easy! I wanted APC for PHP, stared at this page (<a href="http://pecl.php.net/package/APC" rel="nofollow">http://pecl.php.net/package/APC</a>) for an hour, trying to figure out what to do. Googled like mad. Searching for <i>anything</i>.<p>Learned about "pecl install APC", nope no luck. Then I was told to compile it from source. Yeah, I know <i>exactly</i> what that means! Spent the next 4 hours trying to understand why phpize wouldn't work!<p>Oh, I wasn't doing it from the right directory. -_-<p>I mean, I'm slowly beginning to see how it all fits together but none of the education sites teaches you this stuff!<p>It's like learning cooking recipes when you don't know how to turn the stove on, or what a stove even looks like. Or what's the difference between gas and electricity stove, how to turn on the tap to get water, etc. You learn a great recipe, know all the ingredients and the cooking time down to the second, but when it comes to use the tools and actually cook? Nope - cause I don't know how to turn on the stove or know what a stove looks like! (I know this is an extreme analogy)<p>I wish tutorials would start with projects and setting it up from scratch. If you're going to show me how to do something localhost, you have to show me how to do it on a server (and set up) as well or else I'll never be able to make that connection. (Well not never, but makes it harder)<p>Oh, editing files in the terminal is a blast too :P <a href="http://amath.colorado.edu/computing/unix/vi/" rel="nofollow">http://amath.colorado.edu/computing/unix/vi/</a> This saved my life that day.<p>So…I definitely vote for teaching the environment before programming.<p>PS: I did eventually install APC…after an entire day :P Now I'm trying to find and learn about setting up master/staging/production (and what it all means).<p>Edit: Just to give some context of why I needed VPS - I wanted root access so I can make a wiki have clean URL (rewrite) and figured why not, learn about VPS. Then that's where I realized I need to learn 10 other things to do this one single thing. The APC was a suggested caching option to improve the site, and trying to do that also needed me to learn more stuff. So it's all kind of ties together when you're trying to accomplish a (seemingly) tiny thing.