Saturday, December 15, 2007

Dormant Sticky Memory and Layered Comprehension

I recently finished reading Descartes: The Project of Pure Enquiry by Bernard Williams. As soon as I read the last page, I moved back to chapter 2, and started again from there. This is because I had retained and comprehended only about 50% of the book. Through the years, as I've learned better how to learn, immediately rereading has become an invaluable device for me, especially with a subject where I lack familiarity or educational background. (Like philosophy.)

If you had asked me on page 303 (the last one) to recall or explain anything from chapter 2, I would have been hard pressed to give you an answer. Just now, having finished reading the chapter again, I'd say that I grasped it nearly in full.

What I found really interesting, however, was how those things that I wouldn't have been able to recall at the end of the book jumped out from somewhere in the back of my mind the moment I read them again. For instance, there is an argument about "false lemmas" that uses an analogy about owning a Ford. After rereading the first few sentences, I could recall the full argument in most of its detail.

So there must be some aspect of memory that works like a hard drive. (There is: it's called long term memory.) It just dumbly writes the "file" there in one of its sectors, where it resides unknowingly until something recalls it and loads it into short term memory (RAM), where you can actively use it.

Here's a useful little graphic from Wikipedia (note: this model is criticized for being too simplistic, but it fits pretty well with how memory works upon personal reflection, so it's still a useful visualization, I think):



When I first read the book, I had very little stored on the subject of Descarte's Cogito ergo sum. Mr. William's book is a thorough analysis of the subject using modern logic, with the benefit of centuries of debate preceding him. In short, it was a pretty steep curve to dive into. This is why I think that on my first pass I retained and ultimately comprehended so little.

On the second pass, it was quite different. I had obviously retained more than I thought, but since it wasn't coupled with strong comprehension, it seems to have been just rather "dumbly" stored. I doubt that if I had never read the book again, I would have been able to explain the "false lemmas" argument. Perhaps I would have recalled hearing about it somewhere, but it would have been foggy.

But as I reread, my mind already had some notion of the concepts, and so comprehension occurred more rapidly and to a fuller extent than before. You might say that my comprehension came about in a layered manner. A hazy concept lay in memory, was fortified by reprocessing the original text, and then stored again (to disk!) as a much more useful item.

This makes me think of my early days learning to program, when there were plenty of concepts I was unclear about, and I was rereading all the time. I was playing around with QBASIC on a DOS computer, then tried my hand at Turbo Pascal. Languages ultimately without a future.

But I learned the "primitives" of programming from those languages: variables, looping, conditionals, routines, etc. This is a layer of comprehension and sticky memory still employed today. In fact, it's quite clear to me that despite the plethora of languages available, with all their different syntax and conceptual leanings, the actual number of concepts you need to understand really well are not that numerous. And once you've obtained and stored those layers, further comprehension occurs much faster.

For example, once you understand C pointers and how they work, all reference work in any language, whether Perl, C#, Java, Python, is easy to understand. The nuance presented by the language is just another, usually small, comprehension layer that must be added.

As new programming paradigms appear, I notice that I am able to grasp them much more quickly than I did the primitives from my early stages of instruction, even though those concepts are usually much more abstract and difficult. This is because, I think, like the second reading of my book, necessary, prior concepts are lying dormant in their sectors, ready to be loaded and rehearsed. Except it's more like the nth reading, where n is a pretty high number.

So if you're new to programming, are overwhelmed by concepts and language choices, or feel like you're learning at much too slow a pace, never fear: if you stick with it and do the work, you will soon notice your comprehension and retention accelerate.

No comments:

Post a Comment