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
You shouldn't memorise stuff at all. You should automatically remember it by virtue of understanding it or having used it many times.
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.
It is the job of media to store data. Not human beings. What use are you then?
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.
Who's solving them each time? You simply look it up!
search itself is time consuming, when done physically.
Precisely. Even otherwise, imagine looking for the behaviour of the substr() function every time you used it!
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
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.