This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I've been reading a trendy book about how a journalist was able to train himself to have an astounding memory in a year (Moonwalking with Einstein, if you are interested). In it he talks about 'memory palaces' -- constructs you use in your mind to hold vast amounts of data. Basically it's using your spatial memory to remember non spatial things. You can read about it here: http://en.wikipedia.org/wiki/Method_of_loci
I was wondering if anyone here has used such tricks to memorize the large number of details one needs to know to do well on SCJP? I am not suggesting this kind of thing would be a replacement for writing and thinking about code... no substitute for that. But there's just so much to remember!
It raises an interesting question for me, especially with this kind of test. For rote knowledge, I can certainly see the application. One might even argue that the web introduces this kind of memory model in the large -- we associate, or at least I think most of us do, specific web sites with the kind of information they provide. Perhaps this is more of a linguistic metonymic function than a spatial walk, but it seems to me there are some strong similarities.
Some questions on the exam exercise one's reasoning rather than knowledge. One of the benefits of declarative programming with annotations, by contrast, is that annotations can replace whole patterns of code "reasoning" with a word. Java's otherwise imperative form obliges a code reader to follow a chain of commands to one of several possible results and determine if the apparent result is the same as the correct result. Could you apply a spatial walking memory technique to code paths? I'm not sure how, since what you'd try to remember in those cases isn't information, but a state change, its consequences, and its relation to the available answers.
I dunno, maybe it could be. Interesting thought.
Make visible what, without you, might perhaps never have been seen. - Robert Bresson
Joined: Aug 17, 2009
Very interesting! Not really what my question was about, but I like it!
The guys that are the best with the memory palace system get so good that they can memorize a few decks of cards in minutes. And that knowledge will stay with them for quite a while (I'm told). So what you could do is, in your mind plan out courses for code, and since Java is OO, it mightn't be that hard to create images to get a grasp of it. You just blew my mind!
Perhaps this technique would be useful for the parts of the exam where more rote memory is needed - I'm thinking mostly of the API topics like I/O classes, dates, numbers, currency, string related, regex, and collections.
Spot false dilemmas now, ask me how!
(If you're not on the edge, you're taking up too much room.)
Apart from areas mentioned by Bert, you really need to understand the concepts otherwise one might end up failing which is rather undesirable. The whole point of taking an SCJP certification is to improve the Java skills and in my opining trying to take shorter routes would not help in the long run.
Best way to remember is to apply- This will retain for a longer time, even more than what just-memorizing would retain.