Ticker Tape ParadeLittle pieces that may just make sense

Memorising isn't bad

January 4, 2009

I've often heard people say that they hate memorising stuff, or that they'll just 'use their brains instead of mugging up stuff'. Well, guess what? It doesn't work that way. You memorise alphabets, you memorise your multiplication tables, and your formulae, and your programming syntax and if you don't, you should. All for a good reason. It makes life easier. And it's sensible. If you're wasting time constructing your tools, you're Doing It Wrong®.

Examples of such foolishness:

  • Deriving the formulae that you have to use to solve a problem: It is stupid. Don't do it. You're not a bigger man because you do it. So long as you understand how the formula happened, memorise it.
  • Writing your own strcmp() because you don't know the library functions of the language you use: Everyone does this. And completely misses all the corner cases.

After a certain point, knowing what to use is more important than knowing how to make what you use.

9 comments

MarcJanuary 4, 2009

You shouldn't memorise stuff at all. You should automatically remember it by virtue of understanding it or having used it many times.

adminJanuary 4, 2009

Understanding how something comes about rarely results in it being committed to memory.

Remembering something by virtue of having used it many times means that for a certain number of those many times you won't have remembered it. I find this an inefficient way of working.

MarcJanuary 5, 2009

It is the job of media to store data. Not human beings. What use are you then?

adminJanuary 5, 2009

I was hoping you'd say that. Look at it this way: if you're working on heat conduction, isn't it much simpler to just know Bessel's differential equation and its solution rather than having to solve them each time?

Simply put, it's the difference between storing your information on disk and on CPU cache.

MarcJanuary 5, 2009

Who's solving them each time? You simply look it up!

sindhuJanuary 6, 2009

search itself is time consuming, when done physically.

RoshanJanuary 6, 2009

Precisely. Even otherwise, imagine looking for the behaviour of the substr() function every time you used it!

MarcJanuary 7, 2009

Search is time consuming? In the age of the Internet?!

http://www.google.co.in/search?q=behaviour+of+the+substr()+function+&ie;=utf-8&oe;=utf-8&aq;=t&rls;=org.mozilla:en-US:official&client;=firefox-a

RoshanJanuary 8, 2009

Now imagine doing that for each of four or five library functions, not a large amount to use in say 20 lines of code. That's an easy 3-4 minutes you're spending (that's as much as the time spent writing the whole 20 lines, if you'd already known these). And if you don't commit them to memory that time, you'll have to look them up again and again until repeated use forces them into your mind.

That's horribly inefficient.