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.
