I'm hoping to open up a bit of discussion here.
In my opinion, the current state of modern web development has a lot of "magic".
What I mean by m...
For further actions, you may consider blocking this person and/or reporting abuse
For prototypes, personal projects, quick tryouts etc. I want as much magic as possible, to allow me to get to the point asap.
If I'm setting up a long-term year(s)-long project, like I do sometimes at work, I'm trying to avoid it where possible, and as much as my knowledge and stack allow me. The reason is what you mentioned, I don't want to spend time debugging other folks code. There will always be magic, unless you know every bit down to the processor, but I try to leave the magic to proven, classic tools like Clojure-Compiler, Webpack or NodeSass.
Pretty much, if I want to experiment with something I'll use every shortcut available so that I can deal only with what interests me.
Though I'll say that understanding basics of how some more popular tools work can contribute to a somebody versatility.
Having the magic is fantastic for fast prototyping, I have to agree. I remember scaffolding some Rails things a while back and I couldn't have been happier with those generators!
Knowledge of how the magic work comes with time and experience. Every time it breaks and you have to google and debug it you end up learning a bit about how it works under the hood. When it comes time to scale an application or use a tool in an advanced way you will be able to do it bc you have a full understanding of how the tool works.
Don't rush to learn all the magic at once, it will come with time and experience. Every time something doesn't make sense dig in a little more and try to figure out how it's working. Every time you do this you will learn a little bit more and soon you will realize its not magic at all but just well-designed software.
"Every time it breaks and you have to google and debug it you end up learning a bit about how it works under the hood."
I couldn't agree more! And to be honest, this is the way I learn the most effectively.
I grew so frustrated at not know the magic that I started a project (github.com/CarlMungazi/aprender-js) solely aimed at uncovering the magic! Like Molly says, once you peel back the layers you discover that is only well-designed software.
I started reading the source code of tools like React because I wanted to know why frameworks exist. It has been beneficial because whenever I encounter a problem with a library now, I am not afraid to peel back the layers and dig around.