Hacker News new | past | comments | ask | show | jobs | submit login
How to Ace Calculus: The Art of Doing Well in Technical Courses (calnewport.com)
149 points by motxilo on Mar 23, 2011 | hide | past | web | favorite | 58 comments

This generalizes to formal computer science as a programmer, and is probably one of the best ways to put it I've ever seen. If you understand computer science as the formula, you'll think it's pretty useless. If you get the concepts, you start seeing how it is useful everywhere.

I do not sit down and prove my designs and code or use lots of tricky algorithms, but I use a lot of the insights and ways of thinking I picked up from the computer science concepts, thinking about invariants and the maintenance of them, etc. There's few things sadder than sitting through four years of school and coming out seriously thinking that it's all useless wankery against the importance of "REAL PROGRAMMING".

(I've also noticed/learned that when you do a good solid job of designing your system with strong foundational concepts, the system will talk to you as you try to design it. I just got back from talking to a coworker about a case where I need to bypass my permissions system and temporarily become a superuser in order to do this particular thing, and I realized that rather than that being "the solution", that was actually my permission system telling me that I was doing something wrong. Only after I realized that did I reflect on it for a moment and realize the permission system was right and I was trying to do something potentially dangerous. I had thought about the thing I wanted to do but didn't fully consider how it might be exploited. We may still do it, we may not, but either way, listening to the code taught me something important about my system. You don't get these insights when you're too busy with your REAL PROGRAMMING and turning out mushy, concept-less code. You just write the flaw in and let your customers or hackers find it.)

There's something that I think most people are missing, although many of you will already know this.

People are saying that you need to develop the intuition, to develop the visualization skills, to develop the sense of what's happening rather than simply memorizing the formulas.

But to me, the visualization is not the point. To me, the sense of what's happening based on the visualization is not the point. To me, the point is the richness of understanding, the combination of many ways of thinking.

This doesn't come without effort.

The lunk-to item seems to suggest that by having the picture in mind one can avoid all the tedium of remembering the epsilon-delta limit arguments and can avoid the definition of lim_{e->0}(f(x+e)-f(x))/e and so on, but that's not true. The point is that the formula is tied up with the image, not that one subsumes the other.

Allegedly Euclid said King Ptolemy (in response to a request for an easier way of learning mathematics) that "there is no Royal Road to geometry".[1] Likewise there is no "Royal Road" to a mastery of calculus. Or indeed, to a mastery of any subject. That which can be mastered with little effort has long been surpassed, and work is required to gain the depth and breadth required to make these things easy.

But we do these things "not because they are easy, but because they are hard."[2] They are of value, and developing the mastery is satisfying in its own right, but also makes you a rare commodity.

[1] http://en.wikipedia.org/wiki/Royal_Road#Cultural_references_...

[2] http://er.jsc.nasa.gov/seh/ricetalk.htm

You can certainly avoid all the tedium of the epsilon-delta arguments while mastering calculus. In fact there were over a hundred years between the invention of calculus and the formalization of the epsilon-delta definition! Calculus was not invented in the same way it is taught, and the early masters of calculus were much more intuitive than rigorous.

For references, calculus was first published in 1684:


But the epsilon-delta definition wasn't formalized until 1817:


You could perhaps try to learn calculus the way it was taught three hundred years ago, but I'm pretty sure it would be more difficult, not easier, than the standard presentation. In the early years calculus was considered black magic only the smartest few could master, probably not unlike the way, say, String Theory is seen today.

The most charitable interpretation of the lunk-to article is that it is asking you to develop your own deep understanding of the concept, from which your own visual picture will emerge.

In this retelling, the point is not the visual metaphor as an end product, it's the work needed to reduce the issue to its basic elements and their relationships.

"They switch to a philosophy major."

This comment seems odd to me, as philosophy is another subject where a failure to sit down and really think about the topics at hand will leave you hopelessly lost, if the class is taught to any degree of rigor.

I'm thinking Philosophy is not rigorous at all at some schools, and is just a lot of lofty opining. I have no proof or first-hand knowledge of this, but I get this from some people's description of their experiences of Philosophy classes. That may be why some people think it is intellectually inferior to technical subjects. My first degree is in Computer Science (Texas A&M University), and then I studied Philosophy (University of Dallas) many years later. I found the Philosophy we studied (original texts of Plato, Aristotle, Aquinas, Descartes, Heidegger) to be more difficult than Computer Science for a couple of reasons.

The first reason is that these were first-class leading-edge thinkers we were trying to understand. Aristotle is very densely packed with content, and we had to read and re-read passages to penetrate them. (Some think that the writings we have of Aristotle are actually class notes, and may not be a good representation of his lecture style.) The second reason is that even though Computer Science is an abstract subject, code is more concrete and graspable than a philosophical idea because you can compile and execute the code and see if and how it works. Philosophical ideas are either difficult to test (e.g. ethics) or practically impossible to test (metaphysics).

It's possible that the writer meant the more verbose nature of philosophy, as well as the explicit appeals to intuition in much of it, force this kind of "aha" moment more directly than math does.

However, I'm willing to bet it was just snark.

Both of the CS majors I knew that switched majors switched to Philosophy.

I never asked why. They both were having trouble in the Intro Algorithms class when they bounced.

Maybe people that think they are CS/Math people and then find out that they might not be CS/Math people find solace in Philosophy? Maybe what they liked about CS/Math was the logic more than the algorithms.

Well, if you go to Oxford you can now get both.


Perhaps that way they can still get into A.I., except without having to learn LISP. I wonder if there are any ex-CS people who similarly go into Linguistics.

"I wonder if there are any ex-CS people who similarly go into Linguistics."

It's surprisingly common in my personal experience.

Indeed. If you can't hack mathematics go study philosophy? Methinks the OP wouldn't have got his precious 'A' from Bertrand Russell.

I found it odd too, I assumed it was used humorously.

This rings true for me. Certainly the courses I struggled in were ones where I had a hard time getting a grip on the concepts. The best lecturers helped by teaching in a way that made the key concepts clear and showed how they developed from previous concepts taught.

As a chinese who is surprisingly good with technical courses and math, and also a computer science major who is somewhat not that bad with programming:

Learn to see patterns. Math is all about patterns. Get obsessive. I just got out of an obssessive period (3 days, to the point I didn't wanna talk to anyone) where I couldn't solve problems. Visualise problems in your head, put the entire problem domain into your head, lie on the bed. Solve it YOURSELF.

Always, always, solve it yourself, and only ask when you have TRIED AND TRIED. Then when you finally ask and get the solution, you'll remember it for life.

Pattern, and self-attempting. Practise makes perfect too.

Free idiom upgrade: Perfect practice makes perfect.

Or: Practice makes permanent. (Inject qualifiers as needed)

I have to disagree, at least somewhat. Insight, understanding the basic concepts has always come fairly easily to me. The REALLY hard part is the disciplined practice needed to be able to actually apply what you know to real problems.

But if you haven't seen how it maps into real problems, was there any insight at all?

This is why I did terribly in quantum mechanics; I was never able to generate a whiff of insight about anything that was going on. The thing is, I'm not sure the top students really did either.

Like everything there is a balance. I think that if I could go back in time and give myself one piece of advice it would be: Don't try to gain insight into everything. There isn't time. Its fine to do this for fundamental things like calculus but for laplace transforms, fourier series etc it can take too long given the time that a college student has. If it is your profession then that is a different story. Also for things that are sufficiently alien to our everyday experience (like relativity) I think maybe you just have to accept it and,work with it for a while and then possibly try and look for insight after because initially we have no other intuition to relate it to.

I wholly disagree. I don't buy the OP's argument for tactically how to learn one bit, but knowing concepts for everything you "learned" is the only way to do it. After first year, I almost never had to work hard, I could just derive anything I needed, and yeah, this included using fourier series and laplace transforms.

To me the key is to observe that concepts are important then observe that the easiest way to learn concepts is to learn them at the optimal time of day (ie, not 8 am during the class when you are tired, that is a waste of time), from the optimal person (ie, not your prof that just wants to get back to research), during the optimal time of the term (ie, not in the first week of class, more like the week before the midterm and the 10 days before the final). To achieve all of this just requires two skills: 1. Knowing how to learn from a text book 2. Knowing when a textbook is crap and getting a better one from internet review sites.

Learning from a text book is easy. Cover the page with a piece of paper and read each line. When they come up with a problem that you don't have a function for derive it and bam, you've invented the formula for lateral-torsional buckling of non-uniform crossectional beams you will never have trouble with the concept again. If you get stuck (stuck to the point of it hurting your ego, not "I'm sure I would get it if I had the time" stuck then look at the formula (not the proof if you can avoid it). Try to prove it again! If you still can't prove it, find the proof somewhere (hopefully the text, but if not email your prof or the book author for the proof). I corrected the same (otherwise super awesome) text book 3 times over the course of two years. The author loved me because out of the 5 corrections he did 1 was from himself, 1 was an email that said "I think this is wrong" and the other 3 were from me proving that he was wrong.

Anyways got kind of long there, but don't waste time learning from other people, just learn how to learn and damn well get the concepts otherwise what's the point?

Scott Aaronson has a pretty awesome lecture online about quantum mechanics as a generalization of probability theory - http://www.scottaaronson.com/democritus/lec9.html

Why is the tendency to introduct concepts, and often leave out the insight? Why don't professors start with insight and generalize concepts?

A good teacher is a master of two subjects. The subject of study and pedagogics. A PhD in the subject of study and maybe one course of pedagogics will necessarily skew things a bit.

I would dare to say +95% of the teachers I had up until college were downright mediocre because they lacked one single paramount side of outstanding teachers: p-a-s-s-i-o-n. Sometimes this alone has the potential to drive one's pedagogical skills.

I'd say c-o-m-p-a-s-s-i-o-n also goes a long way.

EDIT: A colleague of mine, a great teacher by the way, once phrased it: "You've got to love your students. It's as simple as that."

I think most teachers would say the same thing about the students they've taught. It's pretty hard to impart insight and understanding to someone who doesn't care and doesn't want to.

A passionate teacher is likely going to instill greater interest in a large number of students than that of one who does not convey the slightest amount of passion, dooming the poor disciples to such an ordeal -including the brightest ones.

Understand the topic and practice a lot? Well, yeah. That is good as an objective, but what's missing is a way to get to the point where you actually understand the thing.

"Insight" as used by the author is just a fancy (and misused) word for understanding. "To succeed you can't just memorize the formula; you have to understand how it works." Is that really such an insightful thing to conclude?

The most valuable part of the article for me is where he points out that a lot of hard-working but unintelligent students write copious notes without ever doing the mental gymnastics to understand what it is they're writing down.

Cal Newport, the author of the submitted blog post, draws comments both here on HN and on his own blog pointing out that deep understanding of a subject doesn't necessarily equate to VISUAL thinking about a subject. There is a big literature on "learning styles" and some attempts by some schoolteachers to categorize children by what their preferred learning styles are. When I have taken learning style questionnaires, and when I have asked my wife (a piano performance major and private music teacher) about this, the answer on learning styles is "all of the above." I personally think, based on my observations of successful learners of a variety of subjects, that learning styles are themselves learnable, and a learner with a deep knowledge of a particular subject will know multiple representations of that subject. My wife has had many piano performance courses, and also music theory and ear training courses, and has learned visual representations of music both in the form of standard musical notation and in the form of "music mapping,"


which she has found very helpful.

As for mathematics, the subject I teach now, I have always cherished visual representations of mathematical concepts, for example those found in W. W. Sawyer's book Vision in Elementary Mathematics



But other mathematicians who taught higher mathematics, for example Serge Lang, recommended memorizing some patterns of multiplying polynomials by oral recitation, just like reciting a poem.


The acclaimed books on Calculus by Michael Spivak


and Tom Apostol


are acclaimed in large part because they use both well-chosen diagrams and meticulously rewritten words to deepen a student's acquaintance with calculus, related elementary calculus concepts to the more advanced concepts of real analysis.

Chinese-language textbooks about elementary mathematics for advanced learners, of which I have many at home, take care to introduce multiple representations of all mathematical concepts. The brilliant book Knowing and Teaching Elementary Mathematics: Teachers' Understanding of Fundamental Mathematics in China and the United States by Liping Ma


demonstrates with cogent examples just what a "profound understanding of fundamental mathematics" means, and how few American teachers have that understanding.



Elementary school teachers having a poor grasp of mathematics and thus not helping their pupils prepare for more advanced study of mathematics continues to be an ongoing problem in the United States.


In light of recent HN threads about Khan Academy,



I wonder what Khan Academy users who also have read the submitted blog post by Cal Newport think about how well students using Khan Academy as a learning tool can follow Newport's advice to gain insight into a subject. Is Khan Academy enough, or does it need to be supplemented with something else?

Having just gone through the entire statistics playlist of Khan Academy (about 10 hours of video) in about a week, I think I can offer some data here. I ran a running instance of clojure next to KA, and I wouldn't go on to the next video until I'd replicated what Sal had done in Clojure. This seemed to be extremely helpful, especially because there are no practice problems for the stats videos.

I think a quick-and-easy way to get feedback is essential. For some lessons there are practice problems, but for others, a student who wanted to maximize learning/minute spent watching video would be wise to at least open up Excel or something.

This is an excellent idea and an opportunity to kill two birds with one stone (improving my mathematics and learning clojure have been on the cards for a while now). I'm a professional programmer, but thanks to the over-specialisation of the British education system, only did two years of mathematics in high school. Increasingly in my work I find myself struggling with relatively basic statistics concepts and think it's about time to try to educate myself.

Although, as with anything I believe, new information could change my mind, I don't currently think "learning styles" exist in any meaningful sense. Some information or concepts are better learned through, e.g., visual aids, but that's the nature of the information not the learner.

This video by Harvard-educated cognitive psychologist and professor Daniel Willingham is relevant:


I'm sorry but it read a bit much like 'hey if you can visualize it you can learn it' but that is a cruel joke to someone who can't visualize anything. Sort of like laughing at someone for not being able to see the number in a color blindness test.

Some people just don't visualize. Not even a little bit. And I'm not sure its "just because they never learned to." Myself, I've always seen the 'picture' in my head and even dream in full technicolor (like this means anything) but my wife of 20+ years just can't. She is definitely smart, graduated with a CS degree from USC and is a much better planner than I will ever be, but those questions where you see a flat piece of paper with a bunch of dotted lines on it and you need to guess the shape it will be if they were all folded, just can't see it.

When I was growing up I used to think they only put those kinds of questions on tests so that everyone could get a few answers right, they were just that easy for me.

So Newport's thesis that if you can visualize it you can gain 'insight' is no doubt true for some people, but it certainly isn't a panacea for teaching complex subjects.

If you've ever seen the online math courses that Stanford did [1] under the EPGY program, it has some excellent tools that seem to work well for a variety of learning styles. Worth a look, and just down right priceless if you're home schooling your kids.

[1] http://epgy.stanford.edu/courses/math/

I think you make an important point, but I'm not sure the post takes any particular focus on visual representation other than a graph is generally an easier way to intuit what a derivative is. His repeated use of the word concept suggests insight for him requires a more general abstraction.

As an aside, why do or did people claim there is visual learning aside from spatial learning? I don't experience visual and spatial imagination as different things. (With reasoning about time always assumed.)

[...] other than a graph is generally an easier way to intuit what a derivative is.

Even that is a matter of personal preference. I honestly believe it's easier to get the concept of a derivative by linking it to instantenous velocity.

There are many different ways of thinking about mathematical concepts like derivatives. The more you know, the more deeply you know them, the better.

Here's a random example: Marsden and Weinstein define derivatives in their out-of-print textbook Calculus Unlimited without limits. The tangent to a graph at the point x is the boundary between two line pencils, one of lines entering the epigraph at x, the other of lines leaving. There's no limit-taking of chords. It's a simple and neat definition that connects with classical notions of tangency.

In his essay On Proof and Progress in Mathematics, Thurston lists a dozen other definitions or conceptions of derivatives in his personal arsenal, some very sophisticated. But even those among his definitions that are elementary and have roughly the same scope there is a difference in their psychological affordances, and that can make all the difference.

why do or did people claim there is visual learning aside from spatial learning?

I'm pretty sure that those are distinct neurological processes, as revealed by the differing individual deficits that patients can have after suffering strokes. But I don't have the medical references at hand, and you have certainly seen many sources that combine writing about both, as I have.

Good article but I don't think it's the whole story. Works well for maths, probably, where in my experience everything is obfuscated by a) lack of any practical real-life application for most people and b) non-verbal symbolic representations of concepts.

With programming you very likely do want to apply the stuff you're learning to 'real life' problems, and you're going to be expressing all your efforts in a programming language with familiar keywords (and just a few symbols/operators). Here the problem is not intuiting what the purpose is - it's easy to explain what Ajax calls are supposed to do, for instance, but actually implementing them is quite bitty. You need to set up a sort of chain of connections between multiple points, and not until you've learnt all the details of this process, can you tuck it all away neatly under one abstraction and free up brain cycles to deal with higher problems. I find more and more that when I learn a new corner of programming, there's just inevitably going to be a certain number of hours of faffing about learning the details before it 'clicks.' You feel stupid for a week or so, the boom You Know Kung-Fu, like it was easy all along.

Having said that some students just really struggle with basic concepts like 'variables' and need to make sure they intuitively grasp them. But that's about passing, not getting straight As.

    [T]he students who struggle in technical courses are those who skip
    the insight-developing phase. They capture concepts in their notes
    and they study by reproducing their notes. Then, when they sit down
    for the exam and are faced with problems that apply the ideas in
    novel ways, they have no idea what to do. They panic. They do
    poorly. They proclaim that they are “not math people.” They switch
    to a philosophy major.
This may well be true, but if it is, these students are setting themselves up for a fall: if they wish to be any good at all at philosophy then they will need to cultivate precisely this skill. Much of philosophy consists of taking a general set of tools (concepts) and applying them to different situations. It isn't terribly fruitful approach unless one understands those concepts in the first place.

What is described should be effective, but seems like too much work to me. I prefer the advice I offered in http://www.perlmonks.org/?node_id=70113 instead. Besides, you get the benefit of looking like a really lazy genius.

This article is devoid of interesting content. The central thesis is: "In order to understand something, you need to develop insight. Well, duh. It does not explain how to develop 'insight', it does not explain what constitutes 'insight' and it does not even justify that the main example, visual representation of a derivative, results in 'insight' and results in people having an easier time grasping and using derivatives. As I am skeptical the example actually grants that 'insight' (it may seem obvious to you and me, but that is the trap we must avoid. The point is that it isn't obvious to many), this article did not add anything to my understanding of 'teaching' or 'understanding' at all.

The article is correct in the insight part, however it misses(or doesn't state explicitly) the fact that insight comes from the definition of the problem, what you are trying to do. Every concept is a solution to a problem, and to get the insight, my approach is to go through a list What am I trying to accomplish (this is where visualizing comes) What are the other ways of doing it How does this method work, and why Why is this method better then others *Where will this method not work.

After this solving any problem in the problem set is a piece of cake. Reduce the problem to subproblems, check applicability of the concept to the subproblems, apply the method, enjoy the result.

Like most study tips, these do not suit me.

From what I know of Cal Newport, I expected data -- evidence that these techniques work better than X. I thought Dr. Newport might even say X works better for group A and Y works better for group B.

That is exactly the reason why studying technical subjects is such a joy! Once you grasp a concept, you don't need to learn anything by heart (which I suck tremenduously at.)

This article is very helpful, but in all honesty, I think the formula is slightly more valuable than the picture. They're both essential, of course, but the formula is really the key to understanding the concept.

This is said, of course, from the vantage point of someone who has studied calc with 3 variables and so on, so may not have the fresh perspective.

Erm... how to do well in technical courses - understand it. Profundity squared. Not.

Author is missing the fact that yes, you need to understand it, but you also need to practice the exams. The further into your university years you get, the more your basis in understanding becomes valuable, but you still need to practice the exams.

A friend and I like to put it this way: after you learn information, you need to compress it. Find a way to make it take up as little brain space as possible. Then you're more likely to retain it, to understand it, to be able to use it.

This is all well and good, until the day when you decide to learn something on your own from a book, and encounter concepts defined in epsilon-delta form that make zero sense to a mind trained on intuiting concepts from graphs.

Visualization will not get you beyond 3 dimensions, nor will it get you understanding systems in terms of Lagrangians/Hamiltonians, nor will it give you the ability to read texts geared toward actual mathematicians.

Speaking for myself, it was surprisingly difficult un-learning the "slope of a tangent line" type of conceptualizing in order to understand math with sufficient rigor to be able to actually read math texts correctly.

Understanding by symbol pushing is not real understanding. This is all that is wrong with how mathematics in college is taught. They start and end with symbol pushing, and the real insight remains locked in the professor's head. The professor projects his insight into symbols, and the students only learn the projection.

What should be done is start with the intuition and visualization, and then show how the ideas can be made precise. If you would have been taught only the epsilon-delta form from the start, it would have been easy precisely because you would not yet have obtained the real understanding.

Even in high dimensional spaces visualization is very important. This often happens by analogy with lower dimensional spaces. For example if you start with a region in Hamiltonian phase space, then the region's volume is constant as time evolves. This is a highly intuitive and visual statement. Saying the same in symbols wouldn't be nearly as clear.

Yes, the "develop a visual analog" approach will not be effective if you spend all your time translating back and forth between the linguistic abstraction (for all delta, there is a small enough epsilon such that...) and your visual analog. For example, I just checked, and Baby Rudin (http://www.amazon.com/Principles-Mathematical-Analysis-Third... ) does not contain a single picture or line drawing.

Additionally, some things like ordinary algebraic manipulation are very well-suited to linguistic abstractions ("multiply the polynomials, take the derivative, put all terms involving z on one side of the equation, apply the quadratic formula"). Sometimes only the linguistic abstraction can give the solution (e.g., "this problem is easy because the quadratic coefficient cancels out, and the equation is in the form t^3 + c t = d").

It's also worth noting that manipulating the linguistic abstractions takes a lot of insight and talent (e.g., knowing the perfect substitution of variable to make an integral fall into a known form, or knowing which one of the four error terms will be hard to control, and working on it first).

It's not wise to be over-committed to the visual approach.

I have generally found it very helpful to spend a lot of time understanding the behavior simple concrete cases, and understanding how a general mathematical principle applies to them. The visualizable low-dimensional case of analytic geometry is a particularly flexible concrete case for understanding many principles of calculus and linear algebra. I appreciate fairly well how it breaks down: I went on to path integrals and other quantum stuff where the number of dimensions is much larger than three. But the understanding from 1-3 dimensions was very helpful. More generally, one can make a habit of thinking about how general principles apply to special concrete cases that you understand. When trying to understand group theoretical theorems, you can check how they apply to your favorite concrete groups. When trying to understand conservation of angular momentum, or the Bohr correspondence principle, you can cross-check your understanding of them with what you know about the behavior of hydrogen atoms and balls rolling off the edges of tables and so forth. And probably many readers here will have naturally tried thinking about how a nontrivial algorithm would work on some simple concrete data set.

The advantages of thinking this way seem to be a little like the advantages of test-driven development: time spent understanding representative concrete cases doesn't teach you everything, but it can eliminate many misunderstandings very quickly.

So, how do you, as an individual, learn this? Do you just memorize a set of rules and when to apply?

That said, I believe the above is for the people who will never get to higher level mathematics, but rather are struggling with first level calculus.

The important part is understanding the concept.. not to necessarily visualize it. For instance, once you understand the concept in 1D, it's not that much more difficult to extrapolate to multiple dimensions.

In my experience, it’s the transition from 1d to 2d that’s the most important. You learn the concept in 1d, then carefully transition to 2d while still keeping an eye on the 1d case and on what the extra dimension contributes. The understanding of the latter helps to get from n to n+1.

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact