Exactly, I think the enlightenment in this case is being at peace with the idea that one cannot understand or fully manage everything in a technology stack.
Success does not come from achieving total understanding, but from being able to cleverly pick and choose what to manage and what to leave as a black box based on the problem before you.
If you want to learn a whole software stack, building and administration to just TRY a program ONCE I won't stop you. But there are better ways like using docker.
I use docker for my build system for this very reason, as my chain depends on a difficult to install Autodesk SDK, which requires a very specific version of Python. I don't expect it to work properly on most modern Linux distributions without virtualenv and other advanced trickery, and there's not even a chance on Windows. With Docker though, once I had the environment set up, unfamiliar newcomers on the three major platforms can then compile and run the project with minimal fuss.
(Of course, in the future I'll be working to remove that odd dependency entirely, but for now, this works.)
It helps that in my particular case, the build _target_ is an embedded platform, so I don't need to worry about native details in the final executable; hiding the environmental details in the container doesn't matter all that much.
Me too - though for me the installation tools are fairly standard (SBT + npm), it's still like 10-ish steps. Docker's basically a vehicle for safely running apt-get in a script on all my developers' machines.
Someone needs to talk to Randall Munroe (author of xkcd) and update the explanation for this. [1] I’m not sure if the comic is taking a dig at those who use Docker or at Docker itself or both (in every case, putting together things they don’t understand well but claiming to have accomplished “enlightenment”).
My take is that it's not even really Docker-specific, but Docker users are a convenient example. There are plenty of programmers (Docker-using and otherwise) who just copy-paste code and glue together frameworks without really understanding what they're doing.
My take is that most people don't know what the hell they're doing most of the time. We're all trying to figure it out. When I was 20 I was copy-pasting the hell out of Rails examples. By being curious and actively incorporating ideas I've come across I've begun (15 years later) to have opinions on things in software development. Am I ever going to be a kernel contributor, or figure out implement compiler optimizations? Unlikely. But I love my job and the people around me support my continued education (in docker and everything else). That's all you can ask for.
I love xkcd, but you have to take it with a grain of salt. This comic was written by the same person who wrote this one: https://www.xkcd.com/1053/
Don't forget to hover over the comic.