I half disagree. If you want to learn to be a sysadmin then learn to be a sysadmin. If you want to learn to code you learn to code. People who want to learn to code want to know what to type that'll get the computer to spit out whatever it is they want it to spit out. Mixing in environment stuff like you describe is just going to complicate things and turn people off entirely.
Furthermore, most operating systems already have enough of the basics installed that you're able to get up and running with simple programming pretty quickly anyway. Learning to develop locally and deploying to a live server are very different. Yeah, both run just about identical software but the process is different. Locally, someone who's learning will install MAMP or xampp or something or copy and paste a line of code to get homebrew or rvm on their machine. There's a 50/50 mix of comfortable clicking around the GUI and typing in the terminal. If you're just learning and go right to the vps I think you're jumping the gun. The system may be the same but it takes some experience before you realize that what you were comfortable with when clicking around is almost the same thing you're doing in the vps over ssh except you have to know which command to run rather than clicking "install".
Beginner books always have a section dedicated to setting up your environment and sometimes take you all the way through deployment. Articles online don't necessarily need that as they mostly assume you'll find that information elsewhere and only concern themselves with the task at hand - coding.
Beyond all that I think that your frustrations are something you'll be grateful for in the future when you do get it. I knew how to code before I knew how to run a server. If I had learned the server stuff first and didn't quit then I wouldn't have understood why I was doing these things and I wouldn't have the knowledge of how everything from the language I was using to the server to the OS all worked together which is invaluable. If I were blindly following instructions on how to set up a lamp stack I wouldn't know that hey I don't need these apache modules or oh I can disable this ini setting, etc.
On one level I get your gas stove/kitchen tools analogy. But as someone who understands these things now, on another level I don't think it fits. These topics are so incredibly broad and complex that it makes sense not to lump them together. Besides, there are plenty of places where you can just plop your code and have it run from shared hosting to PAAS's like Heroku and such.
In the end its like the article says - these challenges are what'll teach you. I don't know any good programmers that simply memorized how to do things without having to earn the knowledge of how something works through tons of failure.
Furthermore, most operating systems already have enough of the basics installed
Maybe most operating systems do, but most laptops and PCs don't. Like 92% of laptops and PCs. Which makes your comment seem divorced from reality.
Worse still a lot of programming guides assume you have a linux variant which is so far from reality it's painful to watch. Though it's got a lot better recently as the ruby/python package managers are a lot easier to install on windows now.
A year or so back I was having a discussion with another HN user who was running free Python programming workshops. He actually ended up specifying no windows because it took so long to get everything working on them.
I suspect the more novice a programmer, less likely they are to have a Mac. You will only have a mac if you're rich, a programmer or your parents are rich. It's not an entry level OS. Let's not even pretend about linux.
Furthermore, most operating systems already have enough of the basics installed that you're able to get up and running with simple programming pretty quickly anyway. Learning to develop locally and deploying to a live server are very different. Yeah, both run just about identical software but the process is different. Locally, someone who's learning will install MAMP or xampp or something or copy and paste a line of code to get homebrew or rvm on their machine. There's a 50/50 mix of comfortable clicking around the GUI and typing in the terminal. If you're just learning and go right to the vps I think you're jumping the gun. The system may be the same but it takes some experience before you realize that what you were comfortable with when clicking around is almost the same thing you're doing in the vps over ssh except you have to know which command to run rather than clicking "install".
Beginner books always have a section dedicated to setting up your environment and sometimes take you all the way through deployment. Articles online don't necessarily need that as they mostly assume you'll find that information elsewhere and only concern themselves with the task at hand - coding.
Beyond all that I think that your frustrations are something you'll be grateful for in the future when you do get it. I knew how to code before I knew how to run a server. If I had learned the server stuff first and didn't quit then I wouldn't have understood why I was doing these things and I wouldn't have the knowledge of how everything from the language I was using to the server to the OS all worked together which is invaluable. If I were blindly following instructions on how to set up a lamp stack I wouldn't know that hey I don't need these apache modules or oh I can disable this ini setting, etc.
On one level I get your gas stove/kitchen tools analogy. But as someone who understands these things now, on another level I don't think it fits. These topics are so incredibly broad and complex that it makes sense not to lump them together. Besides, there are plenty of places where you can just plop your code and have it run from shared hosting to PAAS's like Heroku and such.
In the end its like the article says - these challenges are what'll teach you. I don't know any good programmers that simply memorized how to do things without having to earn the knowledge of how something works through tons of failure.