4 ms·
It sounds trivial, but the idea of breaking things down into micro-steps is incredibly useful. I think it's fundamental to effective abstract thinking, and yet
by happy4crazy 16y ago
It sounds trivial, but the idea of breaking things down into micro-steps is incredibly useful. I think it's fundamental to effective abstract thinking, and yet most people (including me!) don't consciously think this way.
As an example, I was a physics major in college, so I'm used to thinking of myself as being pretty numerate. And yet, I've noticed that I'm not a very efficient learner of higher math; I enjoy it, which keeps me chugging along, but I often find myself getting discouraged when my brain doesn't automagically internalize new abstractions. Instead of approaching a new abstraction as a bundled collection of less-abstract micro-steps, I think "hmm, if I were really smart this would just sink in." Sometimes the new abstraction does just sink in, but it often doesn't, and then I feel briefly bummed about not being the radiant genius I thought I was.
This is a dumb attitude! An abstraction is like a steak; you can eat it, just maybe not in one bite. And the incredible, amazing thing about abstraction is that as you get better at it, you get to take bigger bites!
This all reminds me of something Kent Beck says in his TDD book:
It is not necessary to work in such tiny steps as these. Once you've mastered TDD, you will be able to work in much bigger leaps of functionality between test cases. However, to master TDD you need to be able to work in such tiny steps when they are called for.
Being able to do things in tiny steps is a skill, and being willing to do things in small steps when you choke on a big step, rather than feeling dumb and giving up, is the key to learning just about anything.