Like a stool which needs three legs to be stable, mathematics education needs three components: good problems, with many of them being multi-step ones, a lot of technical skill, and then a broader view which contains the abstract nature of mathematics and proofs. One does not get all of these at once, but a good mathematics program has them as goals and makes incremental steps toward them at all levels.
When I was in graduate school in Princeton, I was told to take three courses. One of them to work on really hard, another to work on moderately hard, and the third one just to absorb. In my case, I never showed up to the latter class, taught by Robert Gunning, on Several Complex Variables. Several Complex Variables (Cn) was starting to get vary fashionable then, but I decided to specialize in n=1/2.
If things are nice there is probably a good reason why they are nice: and if you do not know at least one reason for this good fortune, then you still have work to do.
Certain functions appear so often that it is convenient to give them names. These are collectively called special functions. There are many examples and no single way of looking at them can illuminate all examples or even all the important properties of a single example of a special function.
Combinatorial analysis, in the trivial sense of manipulating binomial and multinomial coefficients, and formally expanding powers of infinite series by applications ad libitum and ad nauseamque of the multinomial theorem, represented the best that academic mathematics could do in the Germany of the late 18th century.