I had two cases when my students showed no signs of progress after hours of theory-style training, and then became Einsteins after solving some practice problems. I was like... why did we waste so much time with the theory???
I don't necessarily agree with the OP that rote memorization is for everyone. Ultimately both the theoretical/symbolic understanding and the "doing"-experience are necessary, but the order in which students acquire these skills is up to them.
Here's a nice quote:
不闻不若闻之， Not having heard is not as good as having heard,
闻之不若见之， having heard is not as good as having seen,
见之不若知之， having seen is not as good as mentally knowing,
知之不若行之； mentally knowing is not as good as putting into action;
学至于行之而止矣 true learning is complete only when action has been put forth
-- 荀子 -- Xunzi
All through primary school and most of high school, I stayed well ahead of the curve in maths because I could figure most things out from what we'd already learned, and finding algorithms was easier than memorisation.
E.g. I remember being given the task to sum all numbers from 1 to 100, and figuring out the algorithm for summing any series from 1 to n in time to be able to be intolerably smug about how quickly I had the result (I must have been 14-15 at the time so it was nothing out of the ordinary - the teacher assigned the task explicitly to see if anyone would find shortcuts or the formula). I then proceeded to spend the rest of the lesson figuring out how to modify it for all odd numbers, even numbers and various other classes of numbers. Up until then, that was how I spent most of my lessons, and my teachers tended to encourage it.
I lost most interest in maths when the teaching turned to become more about memorisation, and I was not taught the skills needed to figure out the underlying rules to be able to compensate for not memorising. If I'd been more interested, and invested the time in finding suitable resources myself, I'm sure I could've kept up, but it was still "just school" to me, even though I enjoyed math lessons until then.
It went from being my favourite topic to being something I actively avoided because of this.
This situation was actually pretty terrible. My classmates and I hated this setup and most of us were barely learning the material, those of us who did figure it out usually had to teach those around us since the teacher wasn't. During this time my math grades were low compared to my normal grades, mostly in the B to D range.
Eventually, I found a teacher who would spend class teaching instead of having us work on "homework" the whole time. We would go over all of the relevant theories to the chapter for a few days, showing us, in a way that most of us could understand, mostly how they worked but without getting too in depth. At this point, I went from being the guy barely skating by in math classes to being a straight A student, just because my teacher was willing to put in the effort.
I work best from examples, and find learning computer languages from documentation very hard.
OTOH, I'm very quick at looking at examples, generalising behaviour, finding edge cases and then looking at the docs to understand those edge cases.
One of the best programers I know is the polar opposite. He will spend days reading every. single. piece. of documentation on something, and then 5 minutes writing a perfect piece of code.
Just like you, I learn from examples rather than by reading documentation... and I suspect that just like me, you don't end up spending 5 minutes writing perfect code. If true, to me, that means your friend's method is superior.
I'll have written lost of lesser quality versions first and slowly approached an optimal solution. He'd never write anything until he understood it well enough to write the optimal solution first time.
Sometimes getting lesser quality versions done quickly is a good thing - certainly I was much more useful at getting a quick messy mostly working solution done (and sometimes that's all that is needed).
OTOH, if there is job big enough to amortise that startup cost and important enough that it had to be of the highest possible quality then I'd often give it to him.
"I especially thought “involve me and I learn” didn’t sound very Ben-Franklinish, or very 18th century. So I did a little poking around. I found out that while the quote is generally believed to have come from Franklin, it might actually have originated with Xun Kuang, a Chinese philosopher who lived from 312-230 B.C."
The "put forth" in the above is not entirely clear to me but I imagine that fits in there as a sub-division.
looks easy :)
若 literally means [some kind of] "if", 之 is not "have" but rather "the" [?]. The last line is completely obscure for my very beginner Chinese skills.
I'd be glad if someone explained this.
I've since moved into professional software development and am now rusty in the spoken languages I used to be fluent in. I work with a number of different programming languages, primarily doing web development since that's where the money is in remote work (although I also have a strong interest in embedded programming). In between, I also finished graduate school in public health (don't ask!), taking multiple upper-level biostats and epidemiology courses.
Anyway, people were always interested in how I learned so many languages. As it turned out, I used similar techniques as what the writer describes to not only learn languages, but also learn graduate-level quantitative coursework, and now programming languages, algorithms, and data structures (an ongoing task!). People are taking exception to her description of the technique as "rote learning". Perhaps a better emphasis would be on repetition, drilling, and fluency. But for me at least, this did entail things like flash cards -- Quizlet is a godsend -- and repeated, focused practice of short problems.
I have found that the technique doesn't seem to work as well for complex algorithms as it did for math and languages. Maybe because it's difficult to break down some algorithms into small parts, perhaps because I just haven't figured out how to do so yet, or maybe I'm just getting older.
But I am in total agreement with the writer that modern education does a grave disservice to young learners by discarding rote learning and repetition.
I've come to appreciate the importance of rote learning over the past couple of years... but despite its simplicity, I would call it a very advanced technique.
You don't need rote learning to get to understand something. You don't even need rote learning to become very good at something. You only ever need it to be able to think faster about certain advanced topics or if you'd like to become fully fluent in a language.
These are not things a high school student should necessarily spend much time on. Especially considering that rote learning, if not self-motivated, can be incredibly demotivating and have the opposite effect of what was intended.
Yes, we need to tailor our teaching to the attention span and abilities of our students, but that doesn't mean we shouldn't be using this powerful tool of fluency through rote learning.
However, for ~98% of the population it's by far the most useful parts of math. Then again you can also say the same thing about just Arithmetic, basic Algebra, Logic and Statistics. So, it's really a question of what your goals are.
There is actually a lot of Math that's been dropped from K-12 education. EX: Understanding logarithms is really fundamental for using a slide rule or understanding floating point arithmetic, but it's not really that useful for most people.
This (and pretty much only this - you don't need rote learning to become fluent in a language, as evidenced by the way people learn their first language). Rote learning is what in tech we call caching things.
I very much prefer calling it like that, because it immediately highlights some benefits and drawbacks of the method:
- you cache things for quicker access, therefore it enables you to think faster
- the biggest benefit comes from caching things that are most frequently accessed; therefore learning multiplication table makes sense, it significantly speeds up every math you do in your head explicitly
- rote learning basics of a given field can help you learn it faster as again, the basic facts you need will be readily available in cache
- this matters because a lot of thinking people do has timeouts (aka "power of will", "energy", "patience", "curiosity") - if figuring out some connections between pieces of knowledge takes too long, you will get frustrated and give up early
- rote learning of history dates usually makes little sense because you end up caching vertices of a graph, while what you really care about are edges and traversing
- there is only so much you can fit in cache without losing its effectiveness, so memorize what matters, not everything
- rote learning is caching things, not developing understanding
- spaced repetition is a hack to force your brain from removing a particular information from cache prematurely; after few iterations it will understand that this piece of information you keep repeating is important and should stay cached
Also note that various memorization techniques are basically very fancy names for data structures optimized for human brains. For instance, "mnemonic link system" (aka. "chain method") is basically a linked list, where you use stories to build cons cells. There are variants of this method that are essentially doubly-linked lists or skip lists, and then you have other methods that implement association lists ("memory palace"), hash tables, etc.
This is important because you can apply knowledge about those data structures to evaluating those memorization techniques. For example, the reason it's difficult to insert another item in the middle or at the end of the list memorized with "chain method" technique is that you have to first traverse linked link to the place of insertion and then re-cons it there (develop two additional stories). It suggests that a/ maybe try to add new elements to the beginning of the list, and b/ you shouldn't use the "chain method" for remembering things you'll need to have random access to.
Learning different conjugations of verbs by using them in sentences isn't rote learning, either. It's rather the opposite, trying to connect the new verb into the existing knowledge of the language.
Rote learning alone is useless for most students. Repetition is certainly important in retaining information, no doubt about it, but as with the math examples, you need to apply basic arithmetic in the context of solving equations, for example, to really get a "feel" for it, a sort of automatism where you not only know how to do 1+1, but also WHEN to use this knowledge.
As far as complex algorithms and such go, I do believe they can be broken down into pieces, but you really do have to know the pieces and their relations and implications innately, and with complex algorithms, it's really hard to know all the pieces of the puzzle, and sometimes even finding out what is missing is difficult. You can drill something ad infinitum without gaining anything if you're missing something.
I believe this to be the secret skill that the article omits. In order to learn effectively, you have to recognize where your knowledge is lacking, find out what it is you should know, and drill those parts. A teacher should help students find these gaps and help fill them. The rest is just a little bit of willpower and discipline.
Other people probably use Mnemosyne which is great but having space repetition in Emacs? Org-mode? Capturing notes to-read or facts from the web that I want to remember and automatically putting it into my drill sequence? Definitely not rote - deliberate, yes.
Please keep up the good work.
While print is exactly the medium I want for something of this sort, I do think it would be wise to look into some sort of digital subscription / supporter option.
I notice that you only sell print subscriptions. Do you plan on selling any digital-only subscriptions? I would sign up in a heartbeat because your online layout is Really That Good (TM).
Author approached learning mathematics in the same manner as learning a new foreign language (Russian), and it served her well.
Student focus on maintaining grades throughout school is sadly a detriment to slow learners who actually do need to spend the time to absorb, savour, play with and drill new concepts. I used to think I was a smart, but after years of successfully guessing the teacher's passwords in class and on exams, I realized I only short-changed myself. Comparing against others with the benefit of age and hindsight, I realize now that I'm one of the slow learners who actually need an inordinately longer duration to thoroughly understand concepts than others.
MOOCs and other forms of self-study are great in this regard since pace-setting is now controllable, but rarely lead to a degree or credential one can leverage later in life. I'm glad that the author was able to apply her effective language learning approach to mathematics and science presumably within course durations (all the way to her PhD).
That's a bit of troubling statement at first, but I think it's sortof a shorthand way of saying that much of the understanding available comes through the process of repeated manipulation and observing outcomes.
I've also noticed that a decade or two after going through a math undergrad, the limited material I've retained best was the stuff I learned my freshman year and had to repeatedly re-apply in other coursework.
Still, I think she may be overstating the case about the limits of conceptual understanding, though (or perhaps bringing an engineer's perspective to the discussion rather than a mathematician's. ;)
Practice is crucial, but when I need to dredge old mostly-forgotten material up out of my brain, the interconnections formed by the mapping of conceptual space we call "proofs" often turn out to be pretty helpful. There's plenty of things I can't remember that I can derive from what I can recall.
Pretty sure Kalid is a commenter here, but I have to give him a huge thanks and plug for BetterExplained.com--really helped me grasp some of these higher-level concepts in a more intuitive manner, even if I didn't walk away with a full understanding of the intricacies.
His Cheatsheet is a great starting point if you are interested in a particular topic:
As a more general reply to the article, I was fortunate enough to work with Prof. Oakley on her Coursera Class (https://class.coursera.org/learning-001/lecture, I'm the last guest interview at the bottom) and I really, really like her learning strategy.
Her article didn't use the exact phrase "deliberate practice" but I think that captures the essence of what she means by repetition. You need enough conceptual understanding to make sure you're following the path correctly, but then you want to practice -- at the edge of your comfort zone, with feedback, etc. -- to make sure it's really clicking.
It's really easy to fool yourself into thinking "I've got this" when it's untested. In my own case, I realized I didn't "get" imaginary numbers and exponents when I couldn't estimate a^b [a raised to the bth power] in my head with equal fluency for all numbers a and b. I had never really tested every type of number in every type of exponent position (base and power).
3^4 => this should be a positive real number greater than 1
3^(-4) => this should be a positive real number, very close to 0.
3^i => Hrm.
i^i => Uh oh.
I knew that unless I had fluency with all of these scenarios, I didn't truly "get" exponents or complex numbers. Sure, maybe I had a baby version where I could use them in well-defined ways, but I had a subconscious fear of i appearing as a base and/or exponent. I had to challenge myself and practice thinking through the various permutations before I recognized the gaps. Then I had to deepen my conceptual understanding, and practice again.
(For the previous questions, 3^i should be a complex number on the unit circle, maybe around 50 or 60 degrees, but less than 90, and i^i should be a real number, greater than 0 but less than 1. I can estimate these without calculating them, see http://betterexplained.com/articles/intuitive-understanding-... for more details.)
Again, thanks for the mention!
In my opinion the three essential characteristics of a great teacher are expert level in the subject at hand, great communication skill and enthusiasm for teaching. Possessing two of them already makes a good teacher. You have all three.
I hope the business side of it is going well for you.
Side note--have you considered trying to work with Khan Academy? I feel like Salman's style flows well, but sometimes substitutes learning tricks vs. internalizing the underlying logic. Khan Academy could benefit from a touch of BetterExplained.
I'm very interested in collaborations, and helping people sprinkle an intuitive approach into whatever teaching they are doing. (I like Bret Victor's approach, where he provides guidance on what programming tools could look like, which might work its way into new programming languages like Swift, etc.). I'm in touch with an internet buddy at Khan Academy and have been meaning to work together, I'll be reaching out soon I think :).
I see any exponent like a^b as starting at 1.0, intending to apply a rate of change of (a), but modifying that rate by (b).
For example, 3^2 is an initial rate of change of 3x, which is then applied for 2 units of time [leading to 9]. So, 1.0 would turn into 9.0.
More here: http://betterexplained.com/articles/understanding-exponents-...
So what's i^i?
Well, our rate of change is "i", which means we plan on starting at 1.0 and having our rate of change be a rotation: 1.0 * i = 90 degrees on the unit circle.
If we are using i^i, that means we are rotating our rate of change. That is, we intended to rotate around the unit circle at 90 degrees, but now I'm going to turn the "rocket boost" which is applying that rotation by another 90 degrees (the i as the exponent). This means the rocket is facing 180 degrees (backwards) and our growth is going to be an exponential decay. We'll be on the real number line, but shrinking.
How about (i^i)^i? That's another 90-degree twist on the rocket, so it's pointing 270 (downward) and we'll rotate around the circle clockwise. It's probably a negative imaginary number, and (i^i)^i actually equals -i.
This is a quick brain dump, and not very clear without diagrams, check out the articles above if you'd like!
Having i as a base means "we plan on rotating 90 degrees" which actually means pi/2 radians.
e^rt models growth rate of r, for time of t. so e^(i · pi/2) creates a 90 degree turn (we intend on rotating, i, and do this enough to get a full 90-degree turn, pi/2).
This is all a fancy way of saying:
90 degree turn = i = e^(i · pi/2)
Now, with i^i, we're planning on modifying that growth rate (e^(i · pi/2)) that we just figured out! We're going to twist the "rate" from i (90 degrees) to i · i (180 degrees):
i^i = e^(i · i · pi/2) = e^(-pi/2)
which is the real number less than 1 (about 0.2).
I'm summarizing on the fly, but the full explanation for i^i and i^i^i are here: http://betterexplained.com/articles/intuitive-understanding-...
1. Here's a deeper intuition: any circle is just the unit circle, scaled up or down. Any number is just 1.0, scaled (and rotated, if complex) by the exponential function that was run for some rate and for some amount of time. e^rt is a rocket ship of constant change, we just decide how long to stay on for, and we can get to any number.
In other words, for any number a: a = 1.0 * e^ln(a)
This formulation is useful if we know we're going to be taking exponents on our number a, i.e. we really want a^b. (If we know we'll be rotating our number, maybe we write it in polar coordinates, etc.)
So, the intuition is: "I know I'm going to be taking my number to various powers, so let's get the base settings for e^rt dialed in. pi/2 is the setting for how long we'd ride e^i for in order to get to 90 degrees. I should expect pi/2 somewhere in the answer as I take it to various powers."
2) I haven't taken complex analysis, so my understanding isn't nuanced enough here either. Technically, i^i can be multi-valued, for this graphical analogy let's settle on the principal root (https://www.math.hmc.edu/funfacts/ffiles/20013.3.shtml).
> (e^(2 i pi))^(1/2) is not e^(i pi), it's e^0.
(e^(2 i pi))^(1/2) is asking for the square root of 1, which is both 1 [e^0] and -1 [e^(i pi)]. Again there may be a subtlety here, but I'm not sure how the above statement is incorrect (barring a technicality like "we always mean the positive root"). For the purposes of an intuition it makes sense, I think.
1. I said earlier that I already know how to find the numbers mathematically. What I don't have any intuition for is why the numbers are correct (such as why both e and pi should be in the answer).
2. You can't just distribute the exponents without justifying that it's valid. (I don't know the appropriate conditions for doing this myself either, but I know they exist.) For example (e^(2 i pi))^(1/2) is not e^(i pi), it's e^0. In other words, you need to first reduce it mod 2pi. Now if you're dealing with complex numbers I have no idea what the conditions should be.
Young man, in mathematics you don't understand things. You just get used to them.
However, if you have a weak background in math and want to get up to speed before going into calculus and beyond, I have 2 suggestions.
1) Lial's Basic College Math is adequate and will get you up to speed.
2) Serge Lang's "Basic Mathematics" is great and will cover all you need to go into a rigorous theory based college math class.
 http://www.amazon.com/s?ie=UTF8&field-keywords=lials%20basic... The editions basically the same... pick the cheapest
<discl>I'm the author</discl>
I agree that you don't need to read thousands of pages to learn calculus. However, I don't want to stop at calculus. Basically, what I'd really love to have is a "mother of all maths textbook" -- a thick and heavy tome that compacts information from all the other thick and expensive books (which I'm never going to read) and different fields of mathematics. With enough detail that you can actually learn from it -- so it shouldn't be just for review and looking up formulas you couldn't memorize. I'd like to call it a reference book I can forever keep in my bookshelf (under my bed) and always look in it if I'm unsure about something...
If someone has book suggestions, I'm all eyes.
For a more "math for general culture" I'd recommend this one: http://www.amazon.ca/Mathematics-1001-Absolutely-Everything-... which covers a lot of fundamental topics in an intuitive manner.
I have both books on the shelf, but not finished reading through all of them so I can't give my full endorsement, but from what I've seen so far, they're good stuff.
Do you plan to release an ePub or mobi-format book? I'd prefer to read it on my ereader, and PDFs don't reflow on smaller screens.
Do you know of any math books that are available as .epub? I'd like to see how they implement equations... PM me if you would like to be a beta tester.
Her department is "Industrial & Systems Engineering", she doesn't need to know much more math than how to do arithmetic and a Chai squared. Not that I know more math than she does, it's just not a true part of the mathematical disciplines. She and I probably both just use the tools handed to us and don't understand the beauty or the ugliness. One of the big problems with math today is that nobody understands that arithmetic isn't math. It would be like a baseball player being called a woodworker because she used a wooden bat.
In fact, "rote memorization" is the opposite of how I'd describe her method of learning. She says she learns language by using it in many different situations and learning the situations when it's usable and when it's not to be used. That sounds exactly like a search for intuitive understanding to me.
Rote memorization is more like using flash cards or scanning over a list of words and memorizing their definitions.
Contrast this with her method. She's playing with the subject matter.
I find that playing with a subject is the best way to understand it and to be able to apply it.
"... Even though I understand all the little bits, I can’t understand them fast enough to get the big picture. And the same thing happens in programming. If the basic concepts aren’t so easy that you don’t even have to think about them, you’re not going to get the big concepts."
For example, I took a graduate level course in the foundations of mathematics (proving natural numbers and arithmetic). I grasped the lectures, but one day I was completely stumped by a step in the proof where algebra was performed across an inequality.
I had never in my life seen algebra across an inequality! As an undergrad senior in a 500-level course.
I grew up moving a few times, and even within single schools I found the teachers weren't on the same page in terms of how math would be taught. For this alone, the Common Core sounds like a good idea to me.
Here's a review of the book:
Here's Dr Willingham's web site with a lot of articles worth reading:
Here's his credentials:
Earned his B.A. from Duke University in 1983 and his Ph.D. in Cognitive Psychology from Harvard University in 1990. He is currently Professor of Psychology at the University of Virginia, where he has taught since 1992.
I think the reason she has succeeded is quite simple: she is an avid learner. She has put in huge amount of effort into learning. It's not about some magic methods she discovered.
Carrying the formula f=ma in head all day long, thinking about it, practicing its various forms in different situations, that is not rote learning or simple repetition (as the author claims), it is working one's a$$ off to understand something.
On the other hand, there's no need for rote memory. Just practice by solving interesting problems. There are plenty of opportunities to use math every day. There is also a very effective way of learning: work on slightly harder than usual problems. When learning calculus, I started to work on Demidovich's Problems in Mathematical Analysis, and I thought it was hard. Then, I stumbled upon solution book for college math competitions. Man, that was a huge help. After working through the problems, a lot of concepts became clear to me, and Demidovich's problems became reasonably easy too. It turned out the hard problems were hard because they required me to make non-obvious connections, which nudged me to really understand, from different angles, the concepts that I learned in the classroom.
By the way, when did arithmetic become so hard? It seems kids nowadays are being spoiled by their parents...
Our lecturer told us: "I can see that some of you are struggling and are confused. You want to know how you become skilled at solving these problems? Forget your social life. Solve every problem in that 900 page textbook of yours. When you've done that, come to me and I'll give you another 900 page text book and finish that as well."
In one fell swoop Mathematics had lost all its appeal. I switched to Applied Math and aced it.
On the other hand, my brother actually followed this advice. For an entire year he spent a few hours every night doing Calculus till he recognized every different form they could conceivably throw at him. I asked him how he knew how to solve some problems. He said he didn't. It was all just memorization and recognition.
What sort of integration and differentiation were you doing originally that is not included in an applied math curriculum?
- Logic of Compound/Quantitative statements.
- Elementary Number Theory and Proof Methods
- Sequences and Mathematical Induction
- Graphs/Tree/Set theory
- Functions and Application
I cannot emphasize how useful this approach is. What's more, I am very surprised by how many students lack the basic ability to sit and "play around" with math concepts.
I used to tutor algebra, trig, and pre-calc. I was surprised by how few students had the ability to look at something and break it into pieces. If you gave them piece A which they knew, piece B which they knew, and put them together, the result was something new the student couldn't understand and they'd sit and wait for an explanation.
This was sad because this is largely what math learning is. Given pieces you do understand, you put together bigger pieces and then build an understanding of those bigger pieces.
I have always advocated something similar to what what the author said here:
> What I had done in learning Russian was to emphasize not just understanding of the language, but fluency. Fluency of something whole like a language requires a kind of familiarity that only repeated and varied interaction with the parts can develop.
I love this point. I am borderline convinced it it is near impossible to learn math concepts more than one or two steps beyond the point that you are fluent in. Beyond that, it's just memorization, guessing, and poor heuristics that just get you to skate past the test and do little or nothing for understanding or retention.
The bigger picture here is that the author has learned how to learn. It amazes me how significant a divide there is between people who know how to learn and people who don't. Forget IQ or test scores, I think knowing how to learn is the biggest indicator of how far someone will go in life. So perhaps most of all I love the fact that they began this journey relatively late (most students going through a similar math path would have done in their late teens or very early 20s what the author was doing in their late 20s).
The classic example is long division. In elementary school I did a thousand long division problems, but I never understood it. I just knew the pattern. I didn't really know the math. It wasn't until much later did I learn how and why it worked. Having done those thousand problems didn't really help my understanding at all. And honestly, it's not a skill I use today.
Rote learning is useful when what you memorize is useful in itself. Learning what 2+2 is useful, but because adding 2 to another small number, including itself, is something you do a lot.
Addition/times tables are great because the scope of numbers is something you will run across a lot of day to day. A thousand long division (or multiplication) problems is just rote work for little benefit. It's better to teach the concepts, and then build on them.
A more recent example is when I was first learning lambda calculus I wanted to understand how church encoding worked to allow basic integer operations with just function abstraction and application. Most of the operators are easy except for predecessor, which is absolutely nightmarish to get on your own. I tried memorizing the definition I found on wikipedia for over a year to no avail, but once I understood how it was working ...
pred = λ n . λ f . λ v.
n ( λ a . λ b . b (a f) )
λ k . v
λ i . i
 - well, basically dragged me kicking and screaming
One of the main goals of this kind of learning (at least for me) is to recognize patterns and rules on your own. When I repeat something often enough, patterns and rules began to jump out at me.
Here the author only mentions about the importance of repetition (which she refers to as fluency). In the Talent code book Repetition is the first step, but we can learn that the brain is wired to master new skills by taking advantage of 2 others areas as well: A/ Ignition (or passion and motivation), and B/ Discipline and long term commitment.
Seems reversed. An explanation is she's in Electrical Engineering - my ugrad experience of EE was a emphasis on using tools (formula etc) as opposed to understanding them (that's for Science). Engineers, after all, are paid to get stuff done, not just sit there and grok it. "Fluency" with tools works well for EE.
OTOH, all discplines have "tools" - even pure maths has algebraic manipulation. If you're not fluent, it will slow you down (fortunately, you'll have years of algebraic practice from school).
OAH, most professional mathematicians don't think symbolically (a survey found, IIRC, about 70% visual, 25% kinesthetic, 5% linguistic) - notation not so much a tool of thought as a serial representation (serialization/data format), for recording/communicating. So practice in thinking is what's helpful.
I think fluency with "standard" modes of thought is a double-edged sword. Yes, you become expert with those tools, fast and able. But that very expertise biases your perception and reasoning in terms of them. Thus, it's hard for you to see another way; you'll tend to build on top of them instead. Fortunately, since our tools are pretty good, this approach works well. It's just that you're less likely to see fundamentally new approaches (though to be fair, that's pretty damn unlikely anyway).
I'm changing jobs and I've interviewed at quite a few places off late. Having faced with so many Algorithm and Data Structure questions, I took it upon myself to read upon a good deal of material before I started interviewing. So I did the usual approach one takes while studying math, understand all the basic concepts and look for places where you could apply them, rather than studying individual problems.
Recently I interviewed at one place, where I guess a guy who was just out of college asked a few questions. My general approach is to look for how the problem would fit in the concepts I've learned. I gradually derived the solution out of the concepts I knew. And to my surprise, the solution was simply unacceptable to the interviewer, he just clung to his position that I was wrong. He then proceeded to write the answer, he even wrote the test cases.
Now I go back home and check it out of the internet and it was hardly surprising for me to see what I had suspected. The guy didn't want the answer to the question. He wanted exactly the same answer he had memorized. The guy had even memorized the variable names, even the exact input values.
Most people interviewing you on your Algorithm and Data structure skills. They are simply testing your algorithm and data structure rote memorization skills. The same goes in exams.
It's like upthread someone talked about engineering exams - seemingly you don't need working engineers to run through equation derivations and do arithmetic. You want them to understand the basis for the derivations and to have a mental model that will spot if the calculations are way out, for sure, but really you want them to be able to take an overview: know which factors are important, use the engineering tools they have. A practical engineer is going to be using computers to perform calculations (be that chemical processes or electronics or civil structures or whatever).
In a way I think we're on the cusp of a change in how we need to approach job focused learning. We're getting to the point where we've stood on the shoulders of so many giants that if you want to operate at the top you can't see the floor any more. By which I mean that maybe the human mind can't cope with the full vertical stack in some fields, that we need to have people either focus at the bottom - understanding the basis on which particular knowledge is built. Or understand the top - be able to work with the tools for implementation.
The fact is, in many fields of human endeavor, you need to memorize before you can think. Would we have better physicians if they weren't required to memorize and spit out so much rote information? Not sure about that. I think a good doc not only has great personal and intuitive skills, he or she needs good analytical skills and a "think outside the box" problem solving mentality similar to that of a really good computer programmer (which I thought I had, hence crossing over into medicine from computers).
But, a doc also needs to remember stuff. There's so much data and you need to remember signs and symptoms, case histories, and see the similarities and differences with previous cases you've had.
The OP was about math, and I'm definitely in the memorize-the-formula camp; I've never really grasped the theoretical niceties of mathematics and am more of a connect-the-dots kind of guy. But definitely there are similarities between learning math and learning the physical and biological sciences. Some of it is intuitive, but some of it is just wacky stuff out of left field and you have to just take it on faith.
I think we need to emphasize critical thinking and analysis more, but we also need to teach the ancient Greek and Roman methods of memorizing, e.g. the memory palace method -- see Moonwalking with Einstein for more details.
It's rote memorization and repetition, but it also incorporates interaction and active thinking. Additionally, the repetition is non linear. As you learn new terms they throw old terms at you once in a while to make sure you remember them, and the spacing is set out for maximum retention.
I think it all comes down to making sure people understand the actual abstractions and concepts rather than formulas and rote learning. The advantage of math is that you can figure stuff out using what you already know, without having to learn every little detail - while that's impossible in other subjects, such as history.
The missing piece is, in fact, granularity and feedback. And real world studies support my position:
If you want to read how I'd reform education and improve the economy, these are my thoughts:
I believe in repetition, but, personally haven't been able to find a useful way of implementing it to become a top-notch programmer.
Why? Well, take calculus. Buy a book, pound problems. Do 1,000 derivatives. Next chapter. 1,000 integrals.
Is there a similar "exercise" for programming?
For data structures, write some unit tests and then make them pass.
I personally wouldn't recommend you bother learning the implementation details of algorithms: just learn the names and use-cases. Make some Quizlet flash cards and you're good. If you're having trouble finding some to learn, try Googling "sorting algorithms" or "sorting algorithm for [someDataStructure]". Go from there. I'd recommend a similar approach for design patterns.
If you want to get better at building applications, practice by reimplementing apps you use every day in your favorite language (or just come up with your own). "Building applications" encompasses a wide variety of things not mentioned above that you'll only be exposed to by building stuff, so do that.
such as 'Études for Elixir'
which is a collection of exercises that slowly introduce you to a programming language.
I can read stuff out of a book, but I won't have that 'muscle memory' until I've spent that time in Vim and the compiler/REPL. So that when something new gets thrown my way, I'm not having to think back to the basics.
Learning how to solve problems is a different process, but this gave me good understanding of basic code structures.
Done, and done better and faster than you could possibly do it.
There is one area, though, where there is probably too much focus on understanding at the cost of memorisation and that is in the Olympiads. I remember that many of us held the rather uncharitable attitude that the people who tried to succeed in maths by memorising it were 'stupid'. But clearly, understanding combined with targeted memorisation of the key building blocks will lead to the most success.
(1) Pick a topic at about the right level.
(2) Get one main, maybe plus a few extra, good books
on the topic.
(3) In a good chair in a quiet room, in the good book,
read the material on the topic and try to understand
it well enough to make sense. Then work the exercises.
If something doesn't make sense, look in
one or more of the other books.
(4) At times, review the last several topics and
try to get more understanding, e.g., what else is
true, what is not true, what makes the true
statements true and the false statements false.
Maybe take a class that covers the main book
and check work and understanding with the
Rinse, repeat with other topics.
Worked for me.
Interesting watch (first 5mins gives good context)
But from what I can tell, and also from the article, they have a lot of common ground. Learning either requires understanding of structure, but also a fair bit of memorization. Learning conjugations by heart is not all the different to learning trig relations. You also need both on the fly when you're using your language/calculus.
I spent a couple of years in Italy in my early 20s and learnt fluent Italian in that time. I took a couple of classes a week in the evenings, but spent the day programming with a team of English colleagues and perforce spoke English. I made an effort to socialise with Italians outside of work.
I went out with groups of Italians many a time, and experienced many a boring evening where if people didn't speak to me specifically I couldn't understand a thing.
I realised that after 9 months I could hold a good 1-to-1 conversation but that it was another 9 months before I was comfortable in a group situation - in your native tongue you can keep tabs on the various threads of a group conversation with ease, whereas if you are having to explicitly process it, it's so easy to fall behind and then you're lost.
Generally students starting at zero will use 3/5/7 months to approach fluency, approaching native level at the end of a stay. The difference being the "jump distance" -- so German to Norwegian or Spanish to Italian is 3 -- Arabic to Norwegian might be 5 -- and Japanese to Norwegian might be closer to 7.
Coming to Norway, sometimes students with poor English skills will do better - not being tempted to fall back to English, breaking the immersion - and not having such a hard time "forcing" class mates to speak Norwegian.
Having spent a year in Japan myself, it's fascinating how one can go from seemingly "nothing" to fluent after those months of no apparent progress. But language learning tends to be like a staircase -- you can feel stuck at one level for a long time (and being in a foreign setting it can be incredibly frustrating to be constrained to a preschool level of speech) -- only to seem to jump up a level. And then you'll be stuck there... etc
That's quite a shift from set theory, where the core idea is that objects can be described with what's inside of them (and building the whole idea of relation as a set of tuples).
here’s how a gift can actually be a curse: i’ve always had an extremely strong visual memory and it enabled me to get by (and sometimes even excel) at courses like algebra and pre-calc. i’d simply memorize the exact structure of a solution, and “plug and play” from memory when teacher asked identical questions on exams with different numbers. it wasn’t until i was an undergrad and i decided to do my own “rewiring” experiment that i realized i hadn’t ever learned a thing about math my entire academic career. it made for quite the rude awakening, being that i was a college sophomore who’d just switched from pre-med biology to electrical engineering!
i struggled with basic problems that required even a little bit of mathematical intuition because i’d never developed an intuitive understanding of anything–to paraphrase bart simpson, it was like i was cheating on tests by using my own mind, since i could remember my notes with such vivid detail.
how’d i fix it? i became a voracious reader. i started reading “popular” science books about math that actually interested me, and i realized that textbooks were only part of the puzzle. once i was able to grasp the theoretical concepts (aided by the “pop” books) i could return to the textbooks without being bored to tears with the dry, abstract concepts–i could actually relate the concepts to reality! i also took a keen interest in physics because it connected calculus to the real world. when i realized that a parabola could actually be the path of a cannon ball, it changed my entire outlook on math. things started to click.
so how’d it work out? getting through b.s. degrees in both electrical and biomedical engineering (i was a masochist and picked up a second degree) was nonetheless a struggle, due to the fact i was essentially several years behind my peers in terms of my mathematical ability. also, i constantly had to fight the urge to rely on my memory. old habits die hard or simply just go into remission, but i made it!
where am i now? as an MBA student (please bear with me here) i was fortunate enough to be at a university that recently embraced data science. i fell in love with the field because data can tell a story, and my (now) strong mathematical background enabled me to grasp the underlying math & algorithms that yield the wonderful insights you can uncover if you look in the right places.
was it worth it? absolutely. i feel as though i am a different person that’s capable of using both sides of their brain! although i must admit i’m still a natural “right brainer” and i need to use a calculator more frequently than i’d like to admit. i’m an engineering manager at a 9-5, i work as a data science lead for a startup, and i dabble with inventing products. i’m convinced that had i not put myself through the wonderful torture that was rewiring my brain, i’d likely not have achieved a single thing in my career.
if you’re really curious to see how someone like me thinks i’ve done some writing here: www.takeiteasythursday.com/liox
I could not disagree more with this article. Memorization helps, but MAKING CONNECTIONS between concepts is _HOW YOU MEMORIZE EFFECTIVELY_.
Memorizing is great for learning different languages. NOT MATH.
Sure, maybe students are bullshitting in understanding concepts, and forgot quickly since they didn't learn anything. However, just memorizing shit doesn't do anything. So many students in other cultures are being forced to memorize everything, and since they don't understand the connections, they cannot come up with the answer on their own. There was a piece on HN about a math teacher that was amazed by how little students knew: They memorized how to solve a particular problem instead of actually knowing why something was true, and therefore couldn't work through basic proofs and stupidly basic, foundational stuff.
A terrible article!
>So many students in other cultures
Do you know every student? Every culture? Again, nothing but over-generalizations here. The article actually referenced the afterschool programs in Japan that had success.
Yes at some point you have to back and understand the why and the how, but solving equations and crafting proofs are actually two different skills in my opinion and I have met mathematicians that were stronger in either or both.
In any case, I think you are missing the point of this author. I think the authors strongest argument which is building that foundation, or "innate ability" and he argues that comes through memorization and rote learning. Quoting, "building well-ingrained chunks of expertise through practice and repetition was absolutely vital to their success" I don't think he just pulled that out of his butt. If you take the time to practice like the author did where it becomes engrained into your mind, you are in fact learning effectively.
Besides all this, what is mathematics anyways? Is it not a language? Does it not have "letters" (variables, operators, symbols), does it not have a grammar? Does it not have "parts of speech?" (an equation must have a left side, and a right side), Is it not used to communicate to others?
In any case, certainly not a terrible read in any way.
The whole assertion of "understanding how a proof is done rather than memorizing it is how maths should be done" holds true, BUT only when you are not bound by time or a deadline, which is not the case most of time, whether you are working through a test, an exam or even on a PhD, you cannot afford losing time "reinventing the wheel"; working on proving theorems that have already been proven rather than using them directly.
The factor of time forces you to "memorize" certain concepts/theorems/facts so that you can use them directly as tools.
Personally, my approach consists in working on proving these "tools" at a first stage; understanding why they are true, then, I simply go past that and simply "memorize" them in order to boost my workflow.
In a nutshell, in order to be productive (doing maths or even physics), you must memorize shit, just don't do it blindly.
And voilà, you put it much better than I did in 5 rambling paragraphs. Memorization is key (at least for some learners), but only as one part of a process.
Not to rehash what you hashed, but it depends who you are. If you are really good at memorizing, you may not need to make connections. You may just be able to memorize everything. Some people can.
That probably says something about corporate trainers. I still remember the HR department at one company where I worked that insisted on giving the Myers-Briggs personality test to every employee. So maybe this also says something about junk science and the way it lingers on in our workplaces...
I don't believe there is compelling evidence that this is the case.
Instead, different people have different backgrounds and experiences. Learning requires making connections. Depending on what you have in your head already to which you can connect, you may respond differently about a particular topic than someone else.
This is the essence of the article. It is chunking.
Steve: "You have to use that formula to solve this."
Me: "I understand that but why do we use that formula?"
Steve: "Cause that's the only formula that works."
Me: "OK but how did they come up with that one formula?"
Steve: "Cause it just works!!"
He didn't know. That's when I first realized a lot of his knowledge was just memorization while I needed to know the why. It wasn't till my first year in college that I finally found a math instructor who always shows us the reasons why that I was able to take off and grasp math by connecting the dots.
So, no, I do not think memorization is the key but, like most zen things, understanding is.
If there's any life hacks on how to minimize this mindset, I'd love to hear about it. I'm constantly struggling to find this balance of memorizing abstractions vs digging in the details.
Its like making a temporary mess in a project while trying to understand the problem you are solving and making a promise that you will refactor it later, once you get to something that works.
It helps that I've spent some time explicitly trying to learn things on multiple levels. If you like doing that, look at MIT's class 6.004 and it will give you a deeper understanding of computer architecture.
Also, fwiw, you can take anything to the extreme. Even simple addition :)
In professional life (as a programmer), it's very valuable to be able to look at a problem and think 'hash table!' before even fully understanding what sort of problem I'm approaching. I can get things done a lot faster because I've practiced my algorithms and data structures and I have strong intuitions for where each is useful.
At the same time, having a well explained, fundamental understanding of how everything works is critical to innovation. If you're staring at a problem that nobody has ever been able to sovle before, it means that the general basket of tools isn't going to help, because if it would somebody would have already solved it.
The point of this article is that both styles of learning are critical, but America has largely thrown one of them out the door.
I would say the rote memorization that the author of this article lauds is actually unnecessary. When one is learning through exploration of a subject and subjects you in fact are exposed to the same concept many times (like with memorization) but you have the added benefit of association with other concepts.
In other words; learning doesn't have to be boring to be effective!