Skip to content

Instantly share code, notes, and snippets.

@hayeah
Created February 8, 2010 17:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hayeah/298368 to your computer and use it in GitHub Desktop.
Save hayeah/298368 to your computer and use it in GitHub Desktop.
Thinkers and Doers
There's really no such thing as being a "thinker"
who can't get things done and being a "doer" who
doesn't think much.
Each of us has a fixed quantity of energy we can
use any given day. Thinking and doing are both
activities that consume the energy.
If you think too much, then you simply don't have
resource left (either time or energy) to do it.
If the aim is to get as much done as possible,
then the way to do it seems to stop thinking. You
use up all your energy doing. Logical enough.
But then, if all (or most) of you do is doing, the
biggest danger is to be doing the wrong thing all
the time.
So some thinking IS needed. The question, for a
pragmatist, is how little of it can you get a way
with it?
I suspect that to succeed in different domains of
problems, different upfront thinkings are
required.
If you want to meet a girl, overthinking is
counter productive, because not only does thinking
not help (you can't predict anything), it starts
to make you anxious. Thoughts about how to handle
it best degenerates into thoughts of failure.
Whether you should leap straight into it (a
goal-oriented series of action), perhaps depends
on the predictability of the playing field.
For unpredictable domains, you have to think
"fast", rather than think "much". By definition,
the fast paced, unpredictable nature of it (say, a
business), demands you to react to the
circumstances RIGHT NOW. If you fail to react fast
enough, you are reacting to a situation that no
longer exists.
When do we have the luxury to think as much as we
want, or even the NEED to do so?
I think the converse to unpredictablity isn't
"predictability". There's simply no such thing as
"predictability". Unpredictability is a symptom
that your thinking of the world is outdated, or
outpaced by the speed of change (there's rarely
velocity, that is to say, a direction of change).
The domain of problems where you can and should
think as much as you can are those that depends
entirely on your imagination, and your internal
model of the world (which doesn't necessarily have
anything to do with the Real World).
Some examples are like programming language,
novels, composition, painting, axiomatic
mathematical system, literary theory,
philosophy...
These ostensibly attempts to "represent" the
world. But what they really represent is the
internal perspective of one person. As a novelist,
you can be writing about "real people", what what
you are writing really is how you think real
people are like.
So the domains where you can think are those that
are "private". The quality you look for is
internal coherence. The system fits
together. Within the world described by a novel,
the characters behave in believable ways.
And of course, an internal representation run the
gamut of being completely insane to something that
seems real.
In the case of a programming language, it is also
the distillation of the language inventor's
representation of the world. It's interesting in
that a language is both a medium for thoughts to
manipulate your internal representation, and a
tool to manipulate the actual world.
And of course, different people have different
senses of the world, and they find different ways
of thinking more "natural", and different ways of
doing things more "convenient".
But despite a programming language being something
that interacts with the external world, it is
largely an internal activity (for the
programmer). So internal coherence of the language
has far greater weight then whether it's useful or
not, meaning, whether standing in the frame of
that language, you can successfully be doing
thinsg, and navigate the world.
Arguably there are languages with strong internal
coherence we call beautiful, but are not terribly
useful if we place greater weight on getting
things done. Getting things done is a reaction to
the world, and the world cares nothing about your
sense of elegance and consistency.
So you have Haskell. Very elegant, very consistent.
Is it useful?
And you have C. Dangerous. Ugly. Unfriendly.
Is it useful?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment