I know this sounds like a strange question.
Intuitively, I know what the concept of memoization means because I have used it in my code before I ever heard of the term. The problem is, I use it so rarely that I lose the association and have to look it up; and, it feels like technobabble (read. gibberish) every time I use it. I might as well be a 'turboenacabulator'.
Is there an easy/simple way to describe how memoization works that relates to the word itself.
I know it's easy for most people to accept definitions out of a book as canon but sometimes I like to iron out the subtleties to form a firm distinction.
Memorize is the obvious choice for word association but there are subtle differences between memorization and memoization. For example, I would memorize vocabulary before an english test. Ie, 'memorization' requires the cost of pre-loading the state prior to execution.
Memoization OTOH, doesn't rely on pre-loading state but instead warms a cache on demand so the only additional overhead incurred in its use is the additional check for warmed state.
The word 'caching' makes more sense in this context because caches are typically implemented in a volatile environment where the state is disposed of as soon as execution ends.
The word 'memorization' implies long-term state, and therefore, susceptibility to stale data.
So, for me the term 'property caching' describes memoization best. Property because, unlike a variable, a property can/will also include calculation. Caching for the reasons I explained above.
SideNote: I don't appreciate the sarcasm. I understand that some developers are lacking in the people-skills department and survive by their egotism but I asked this question as a genuine concern.