The transition from the first stage to the second is well known to be rather traumatic, with the dreaded “proof-type questions” being the bane of many a maths undergraduate.
I was fortunate that my K-12 math curriculum included proofs and derivations. We learned about sets in first grade. This was a suburban public school using textbooks from a mainstream publisher, in the 70s. Likewise college physics. As a result, there was no transition, and my college math grades went up when the courses were primarily about proofs.
It seems like a couple of things have happened since then, good and bad. What constitutes "math" has been reformulated to give kids a better chance of learning it. In my generation, we did proofs, but it was OK if 90% of the students failed to learn math at all. Math has multiple roles in society, as do science and computer programming, and preparing kids for professional careers in those subjects is not the only reason to teach them.
On the other hand, "math" has also been reformulated to manipulate standardized test scores.
I may have inadvertantly down-voted when I meant to up-vote, because mobile phone interfaces are still terrible. HN doesn't let me change the vote. So I want to apologize and say that your comment is spot-on. There's a lot of specifics I'd reply to... if I was at my computer.
1970s UK: we had the Schools Maths Project (SMP) GCE A level syllabus and textbooks available for teachers to choose which used sets, mappings, very simple group theory and the notion of an inverse and an identity for operations and which included computational approaches (pseudocode!) and a lot of emphasis on reasoning and proving. There were plenty of more 'traditional' syllabuses (syllabi?) available as well.
My secondary school went for SMP maths (I suspect because the deputy principal was part of the project). I'm very glad they did. It helped later.
A longitudinal survey of the destinations of those who did A level Maths in the 1970s tracking who did the SMP syllabus and who did a traditional syllabus might be interesting...
What happened in the US during my generation, was that every student with an interest in math, also took physics. And physics was very much taught as applied math.
I think something similar happens with programmers:
* I vaguely remember ambling around when I first started writing C programs, using a debugger whenever it broke, and generally just slapping for loops and variables together until it worked. I had some intuition for how things worked, but it often took hours of hard debugging. I perceived code purely operationally - "This line sets this variable to 5".
* At some point, you start structuring things into modules, subroutines, etc. You might learn 'best practices' and try intently to practice each one. You'll unit test everything, or otherwise hold strong opinions on how things should be done. Debugging is approached in a more scientific manner. You start to feel like you can get a handle on just about any bug, since you have tools and methods for reasoning about them. There is a lot of focus on verifying code, but not so much on validating. I perceived sections of code as implementing some intuitive concept - "This class represents a bullet, and its methods are reasonable things for working with bullets"
* Now, I rarely spend any time worrying about the best practice of the day just for the sake of it. I generally focus on getting the current task done, but I intuitively know when to apply a certain practice. For example, I might write a test or two after writing algorithmic code. I rarely spend any time at all debugging my own code, since it tends to just work. Since verification is so easy, most of my focus is on validation: "Am I even building the right thing? Will this way of laying things out have acceptable performance characteristics? Does this way of laying out the types mirror how I think about the problem? Is everything I'm writing necessary to solve the problem?" I perceive most code as a formless soup of syntax trees with an operational semantics, and reason about the segments of the trees themselves.
I imagine that Terence's breakdown is relevant to many professions besides just mathematics.
For many professional programmers, the rigorous stage of their education never got to the techniques for proving the correctness of programs, or even a realization that such techniques exist. We see this in the discussion of design issues, where informal arguments based on rules-of-thumb, reasonableness, best practices and aphorisms (e.g. "code smells") predominate. There is a tendency for dogmatism to arise in this environment ("thou shalt never write the same expression more than once - always factor it into a function.") (dogmatic thinking is probably confined to a small minority, but because they are vocal, they tend to dominate the discussion.)
I am not one of those who think a transition to formal methods is feasible, let alone that it would solve software's problems. I am also aware that many programmers are effective in putting their general critical thinking and reasoning skills to work in writing correct code (this is one of the reasons why some people without any formal CS education can become excellent programmers.) Nevertheless, and speaking only from my own experience, I think some exposure to more rigorous approaches would help programmers tackle tricky problems, such as those that arise in matters of concurrency or security.
Well, programming and mathematics are really two sides of the same coin.
But I agree that this breakdown will likely apply to many other professions. The reason being that mathematics is in essence the art of working with rules (in an abstract sense). Since almost any professions requires you to work with some rules (some very concrete, others more subjective) learning that part will resemble learning mathematics.
Unfortunately you're very unlikely to encounter this part of mathematics if you don't go beyond high school level. I think some people want to introduce it through programming, but I'm not sure if that'll be any more effective.
My favorite example of mathematics that blends intuition and rigor comes from the works of Archimedes of Syracuse: the mechanical method used to intuit results such as the area of a parabola, followed by the method of exhaustion used to prove the result rigorously.
In the mechanical method, Archimedes imagined, for example, a section of a parabola balancing with a triangle, using the law of the lever (which he also discovered) to derive the area necessary to achieve said balance. He then used inscribed and circumscribed polygons to prove upper and lower bounds on the area thus derived, with (in modern parlance) the two bounds converging in the limit n → ∞, thereby establishing the result. The rigorous method of exhaustion (due originally to Archimedes' predecessor Eudoxus) is effectively equivalent to integral calculus (~2000 years ahead of its time), but guessing the right answer would in many cases have been difficult or impossible without the non-rigorous mechanical method.
Incidentally, the mechanical method itself might have been lost to history had it not been for the discovery of the Archimedes Palimpsest in a medieval prayer book [1], which contains the only known copy of the work describing it. Often called simply The Method, it takes the form of a letter from Archimedes to Eratosthenes, the chief librarian of the Library of Alexandria. When I had occasion to see some original pages of the palimpsest last year (at The Huntington Library in San Marino, adjacent to Pasadena, California), I was struck by the collegial tone of the letter, whose genuine human warmth was instantly recognizable even across two millennia.
The three levels Tao lists (roughly paraphrasable as novice - master - true master) can be applied to many other endeavors, e.g. art, martial arts, programming, as other point out in other comments. What I'd like to stress is the damage that's generally done in going from Level 1 to 2 in math teaching.
As a specific example take Analysis, generally taught using Rudin. I took this course in my graduate EE studies and detested it. I later thought about this and came to the conclusion that the main reason was the manner of exposition in Rudin where the classical approach is used: each chapter contains an endless sequence of lemmas, minor theorems, etc., one after the other with no discernible purpose and at the end of the chapter you get to prove a big result by using all that machinery. This approach, which dates back to at least Gauss (commonly attributed quote, which I couldn't find the source: "no self-respecting architect leaves the scaffolding in place after completing the building") not only is backward to the real course of events, it sucks the motivation by being so. At least it did so for me and for some other otherwise intelligent friends.
It's interesting that you say that. I'm trying to square this with my own experiences - I absolutely loved Rudin and to this day it's one of my favorite textbooks; but at the same time I recognize what you're saying about hiding the scaffolding and I share your distaste towards that.
I guess what I love in Rudin is that he gives the Level 2 details in such a lucid logical manner, with nothing missing and yet relatively tersely, all the details interlocking together. I got a sense of real beauty from reading him as an undergraduate that I did not get from other textbooks. I think that enjoyment ranks much higher from me than the disappointment from not getting the motivation early, which I do try to give myself when I teach something.
I wonder if these two can be separated: if a textbook could be Rudin-style in logical unity, terseness, and beauty and yet not "hide the scaffolding". To some degree, I thought Stephen Abbott's "Understanding Analysis" was a step in that direction, though it was still too wordy and meandering compared to Rudin, for me.
I can't believe that none of the people have mentioned Lakatos's "Proofs and Refutations" - such a good work, which shows the organical refactoring of a vague mathematical intuition into a formal system.
There's a lot in this article that reminds me of Bruce Lee's:
"Before I learned the art, a punch was just a punch, and a kick, just a kick.
After I learned the art, a punch was no longer a punch, a kick, no longer a kick.
Now that I understand the art, a punch is just a punch and a kick is just a kick."
Can I choose all of the above? I'm finishing my second year of grad school, so I should be transitioning roughly from rigorous to post rigorous. Okay, that's probably true, but only in the areas of math I know best and use frequently. In other areas, I've never moved past the rigor stage; in yet others I'm not even that far along.
I'm pretty comfortable with probability and optimization, which is my day-to-day. I will probably never be better at topology than I was when finishing my undergrad degree. And in my one brush with differential geometry, I struggled to reach the rigor.
And even then it's more complicated, because human intuition is notoriously bad in probability.
I feel like I'm starting the transition from stage 1 into stage 2. I just completed calculus 3 and introduction to discrete mathematics (which I realize is still VERY early into math education), but I'm starting to be able to read proofs and be able to utilize concepts without needing to be able to strictly have any concrete applications for those concepts.
It's very exciting, I feel like I'm finally able to play by the rules of math, and I'm looking forward to the places this newfound knowledge can take me.
Post rigorous, heading towards rigor mortis. ;-) This doesn't mean I'm a professional caliber mathematician -- I'm not, and a lot of my math education was in studying physics. It just represents which stages I've passed through, if those stages are valid
It would be interesting to know if there are corresponding hierarchies in subjects such as science, computer programming, or even music.
My field is earth science which is, at its best, highly empirical. The stages are a little different: 1) Learning to observe and learning the basics of the theory; 2) Learning the theory quite a bit more and getting more practiced about observing with theory in mind; and 3) Hammering on, and molding or breaking, the theory with more observations or other theory.
Unlike math, it's just really, really difficult to ascertain that the theory is correct and it's never correct at all levels. I have always called geology 'the science of exceptions' because many of our laws are actually tendencies, and given 4.6 billion years, any bug or loophole in the theory will be exploited--and this is when you really learn stuff.
In practice, I actually think the three steps there are kind of fractally embedded throughout in the stages of one's career, one's individual research project, or the overarching evolution of the science.
> It would be interesting to know if there are corresponding hierarchies in subjects such as science, computer programming, or even music.
I think that you could probably apply the labels to just about any profession, or even hobby (I'm thinking of rock climbing as one close to my heart), and it might even be interesting, but it probably wouldn't have quite the same resonance: I don't think that there are many other fields where being rigorous is seen as an end in itself, and people already tend to think of post-rigorous proficiency in, say, music as a desireable state to reach.
My only advice is: Enjoy it. Even if it's not your ultimate goal in life, I suggest treating it almost like a game. I don't know if programming is really like writing proofs, but there must be some similarities in terms of the emotional satisfaction that you get, for instance, when you find the missing piece that suddenly makes the whole thing work, or discover a weird twist that expresses your own personality.
I was fortunate that my K-12 math curriculum included proofs and derivations. We learned about sets in first grade. This was a suburban public school using textbooks from a mainstream publisher, in the 70s. Likewise college physics. As a result, there was no transition, and my college math grades went up when the courses were primarily about proofs.
It seems like a couple of things have happened since then, good and bad. What constitutes "math" has been reformulated to give kids a better chance of learning it. In my generation, we did proofs, but it was OK if 90% of the students failed to learn math at all. Math has multiple roles in society, as do science and computer programming, and preparing kids for professional careers in those subjects is not the only reason to teach them.
On the other hand, "math" has also been reformulated to manipulate standardized test scores.