What goes through your mind when you hear or read the word "magic"? Some perceive magic to be exciting while others perceive it to be mysterious and scary. The world of software engineering for all its futuristic and innovative traits is rather traditional with respect to some concepts. Magic is outlawed in the world of software engineering.
While magic in the average sense is meant to be fanciful and dynamic, in the world of code, magic strings (strings refers to words) and magic numbers are rather static, the use of magic anything in code points to one of two things, ignorance or pressure, when code is built around magic it makes the code base harder to manage, extensibility becomes a chore too. This is why magic and the science of code must remain parallel to one another.
There are cases when you find experienced software engineers using magic numbers, this is when the developer is under immense time constraint to make something work. Usually all your numbers should be found in variables and constants with other classes or lines of code giving rise to the existence of that number. Numbers just don't come out of thin air in code.