My opinion about magic in software development coincides with these great posts:
I extract some fragments of them that I would like to highlight.
Bad word: Magic
I often find that people talk about magic when referring to programming languages and frameworks.
The concept that some particular language features are more magical than others is insane. None of it involves fairy dust or anything particularly complicated; it’s all just programming.
There is absolutely no logic in calling language features magical. It implies that certain programming techniques are inherently fantastic and strange. That’s only the case if you don’t understand the language.
The correct response is not calling arbitrary features magic. The correct response is to keep learning how to write code and overcome your ignorance.
Ultimately, you can continue using magic, but what’s magic? I’d define it as anything below your current level of abstraction that you don’t understand.
Any sufficiently advanced technology is indistinguishable from magic.
Arthur C. Clarke
Magic is a good idea, we don’t understand exactly how quantum physics works but we accept that it does and make good use of it.
Now, if you don’t understand some feature of your favorite framework or how it works behind the scenes, don’t worry. Do not be intimidated, just learn and enjoy without worrying about every detail.