- have the knowledge (duh!)
- have the experience to have had enough time to observe things in reality (vs theory) and have had the time to internalise and digest all of this
- be mature
While it is easy to get the knowledge, the rest usually cannot be skipped so easily.
As to math, that is not a good example. Math is almost pure knowledge and intelligence and so a bright kid can acquire that knowledge and quickly pass to his peers assuming they are intelligent enough.
Unless you really mean Mathematics. Like how to advance the field. Then it is not as easily transferable knowledge. I know, I studied theoretical mathematics.
Software development is only in small part driven by knowledge. If you think software development is knowing programming languages and frameworks and AWS and certifications you are waaaay off the target.