DEV Community

Dan Netherton 👨‍💻
Dan Netherton 👨‍💻

Posted on

Do we need to know the magic?

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 magic is the running of commands or using software that does a lot of set up, scaffolding or triggers a build process etc with minimal knowledge required from the developer.

This magic is fantastic, it helps us get up and running quickly and allows us to focus on our apps or products and not get delayed having to understand or set up complex environments and configurations.

However, every time one of these magic commands fails or does not reflect the readme verbatim I can often find myself on Google for hours trying to debug and understand what went wrong.

My question is, does anyone else experience this and does it make you feel like an imposter? How important is having a working knowledge of these package managers and scaffolding applications?

Would love to know everybody's thoughts. 👍

Top comments (6)

Collapse
 
niorad profile image
Antonio Radovcic

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.

Collapse
 
mikister profile image
Milan Radojević

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.

Collapse
 
dannetherton profile image
Dan Netherton 👨‍💻

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!

Collapse
 
molly profile image
Molly Struve (she/her)

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.

Collapse
 
dannetherton profile image
Dan Netherton 👨‍💻

"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.

Collapse
 
carlmungazi profile image
Carl Mungazi

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.