Sometimes I don't feel motivated to get things done. I work for myself.
No one will fire me if I don't work. I won't go out of business.
I won't lose customers. I could sit in front of the TV all day and
do nothing.
Of course, I feel a whole lot better when I work. I get excited
about ideas. I smile. I challenge myself. My business improves.
So why do I sometimes go weeks without writing code? Or sit down
and force myself to work, without really getting into it?
What happened to the old days, when I'd come home from school
and fire up
TurboPascal for a few hours of just plain messing
around?
I think in the years I worked as a professional software
developer, I got
BurntOut.
Over the past two or three years, I discovered
PythonLanguage and
UnitTests and
DesignPatterns. I realized I could push myself to
the next level as a developer.
I read
ExtremeProgrammingExplainedEmbraceChange and
ThePragmaticProgrammer
and
RefactoringImprovingTheDesignOfExistingCode. I taught myself Emacs and CVS.
I know I have a million things to learn. Lately I have discovered
SqueakSmalltalk and
HaskellLanguage.
But it seems to me that all this learning doesn't help until I apply it.
And I
have used it. But it seems lately I do more learning than using.
Learning and playing is easier than creating something worthwhile.
Knowledge is useless until we apply it.
And yet, lately, when I think about sitting down to write some real code,
It just hasn't seemed like fun.
I want to change that. I want the
FunOfDoing back, not just the
FunOfLearning.
This wiki makes me smile. So many smart people leaving their thoughts for other
people to find. I like the plain white pages. I like clicking a link and writing
this page.
Wiki tells me to
DoSimpleThings. I like that. I can do that.
I don't need to force myself to be productive. I don't need to worry about
completing my projects anymore. Even if I did, maybe forcing myself
doesn't work too well.
Maybe it makes more sense to just relax for a minute. Clear my head.
Put a smile on my face and sit up straight and come back to
BeginnersMind.
What do I want to build? Not a big thing. Something small. One little piece.
WriteTheUnitTestFirst.
Run the test. It fails. A challenge!
What can I do?
DoTheSimplestThingThatCouldPossiblyWork.
It worked! How exciting!
So breathe in. Exhale. Smile.
Relax. Imagine the next thing for a minute. Write the code.
Relax, imagine and code.
Do it again.
And again.
And soon I have the
MentalStateCalledFlow.
The work gets done, little bit by little bit.
ThankYou for teaching me this.
--
MichalWallace
Beautiful!