<i>"Enter a-ha moment #1. As a poet, this explanation of systems design made perfect sense. A layer that rationalizes concrete details in an abstract way–that’s metaphor, my friend. Effective metaphors build a relationship between the abstract and the concrete (i.e. “love is an island”). Like equations, metaphors also capture patterns in our lives–they “abstract out” the concrete details.<p>In a delectable moment, I realized it was entirely possible for a poet to think this way–and that the connections between the different disciplines enriched them both. For me, a discovery process happened when I could relate the new concepts to my framework for the world. Bring on the code."</i><p>I had that revelation too years ago, when I realized that the process of abstraction in programming was the same or similar to that of abstract art. I had never appreciated abstract art, and had been studying up on it to better understand it, when I finally grokked (what was obvious in hindsight) that abstract art is an attempt to extract the abstract essence of something and re-represent it in a concrete medium. Very much an a-ha moment.<p>I can totally relate the author's experience here.
"I came to John with an idea of what I wanted to make–so I was personally motivated to complete the project."<p>I think this is a key point of learning. When someone feels ownership, it makes them have more motivation to complete a project.
As a poet first and a programmer second, it was good to see how the worlds correlate so closely. Without having the words to talk about concepts, it hurts your agency. By learning what an array is, or what a slant rhyme is, it gives you the ability to appreciate a whole new level of subtly.