This post of @jessitron on the opposition of lambda calculus and Turing Machine, opposing Academy and Engineering, got me thinking on memory and abstraction … Here is the story telling, out of my Lateral thinking , to be followed on the below #Sketchnote:
- (I am in the train) It is dark, I perceive something looking like a lamp and I want to have my neighbor act on it .
- But I cannot, because this perception is just in my « head ». and the lamp is too far..
- Well, maybe he (my neighbor) speaks the same language than me, and I can ask him ? Hm…
In fact, I can re-cognize what I see, this is a lamp, which I pattern-match it to the other lamp I saw before in my memory…
I can associate it to the generic concept of « light », and I have a word for this . I can now ask my neighbor, who is just sitting next to the lamp, if he is kind enough to switch it on, please, so I can see the light …
Memory & Pattern-Match -> Model -> Share
This memory I use for pattern matching, is mine . It is personal. It is the sum of my experiences . I cannot share it.
but I can think, and abstract, i.e. build model out of (perceived reality). this is still internal to me.
However, these Models, I can dump them on paper and share them, like the above #sketchnote, or use words,like the one you are reading, which are « shared » shortcuts for sharing concepts, pointers to shared models.
Like many humans, I have preference. and when learning, I may prefer to learn by creative tinkering, learn by abstract and thinking, or learn by feeling and sharing. Maybe It is due to my preference to Action, Thinking, or Feeling .
So, when I will be a grown up, I may choose to be a tinkering Engineer, or thinking in Academic , or share my feeling about ideas..
And if I am in IT, my preferred style could be the State and action style of Imperative programming, or .. the abstract declarative style of Functional Programming… not sure about feeling thought..
But regardless of preference, I can do all of them. Of course, I tend to do most the things I prefer. But, if I want to share and reuse these ideas out of my head, and feel good about it, I better have models I can share ….
(this is what got me crossed my mind when reading) :
NAUR 1986: The primary result of programming is the theory held by the programmers
- Theory: The knowledge a person must have to do certain things intelligently, explain, answer queries, argue about them…
- The programmer must Build a Theory of how certain affairs of the world will be handled by a program; Explain how the affairs of the world are mapped into the program and documentation; Respond to demands for modifications, perceiving the similarity of the new demand with the facilities built.
• This knowledge transcends that possible in documentation.
- This theory is the mental possession of a programmer; the notion of programmer as an easily replaceable component in program production has to be abandoned.
Naur86 quoted by Cockburn98 in 
1 Slide 10