

How a Poet Learned to Program - johndbritton
http://johndbritton.com/2012/02/03/how-a-poet-learned-to-program/

======
SkyMarshal
_"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.

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 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.

I can totally relate the author's experience here.

------
shakes
"I came to John with an idea of what I wanted to make–so I was personally
motivated to complete the project."

I think this is a key point of learning. When someone feels ownership, it
makes them have more motivation to complete a project.

~~~
reneighbor
I do agree with this. However, I think most online tutorials and books are
skewed towards being not intellectually stimulating. Very much, "This is a
loop. This is how you print." Barf.

The Stanford 106a track for CS freshmen is excellent. The curriculum is more
bite-size than doing a project from top to bottom, so they introduce elements
slowly (arrays only come up 3/4 into the class for example). However they
design problems that really poke your problem-solving brain and challenge you
to solve it with the limited tools you've learned.

Here's the first assignment. A former TA says that problem (3) from this book
is the most intellectually challenging of the whole course, and it's from
before you've learned _anything_ about any language:
[http://see.stanford.edu/materials/icspmcs106a/07-assignment-...](http://see.stanford.edu/materials/icspmcs106a/07-assignment-1-karel.pdf)

I think a (good) class teaches depth while a project gets you up and teaches
breadth. If you do a web project, you'll learn about frameworks, hosting,
using different libraries, etc but the actual code you write will be
rudimentary. Both are important of course.

------
enigmabomb
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.

