I recently read The C Programming Language, and the paragraph about the difficulty of writing a 'Hello, world' resonated with me:
> This is the big hurdle; to leap over it you have to be able to create the program text somewhere, compile it successfully, load it, run it, and find out where your output went. With these mechanical details mastered, everything else is comparatively easy.
For beginners, getting the development environment figured out can be a significant roadblock.
Seconded. When my brother was learning front-end developement those were the kind of things that caused most problems in the beginning but were the most glossed over in the tutorials.
I personally think that learning the nuts and bolts of how things work is where one should start. What compiles what, where is what stored, what process executes what, how does that thing know where that other thing is located etc.
Most people who code will need an inverted triangle of knowledge in relation to the software stack. Starting with some subset of software fundamentals is great, but it's easy to lose the forest for the trees in that approach.
If I love websites and now I want to build one, spending more time on fundamentals than is necessary to impart a general scheme and more importantly the metaphors of those fundamentals would be a waste.
> This is the big hurdle; to leap over it you have to be able to create the program text somewhere, compile it successfully, load it, run it, and find out where your output went. With these mechanical details mastered, everything else is comparatively easy.
For beginners, getting the development environment figured out can be a significant roadblock.