After a long hiatus, I'm getting to write some code at work... for a real project.
The mental muscles are a little atrophied, the focus is starting to come back, the mind rejecting new frameworks like the body ejects foreign particles. It's a little painful, but good. Moving from the playing with code in my spare time to banging it out again is an adjustment, but like rolfing, seems to be a good one.
For me, it's good to reading something bracing and cautionary at times like these to remind you that you too at any moment may already be total jackass.
Some time you cast your net into the interwebs and get nothing but sweet sweet salty bilious wisdom and weirdness.
These pieces are reminders that for all the cerebral blather, coding is a social, emotional activity rooted deep in the lizard brain, steeped in fear, pain, loathing, hunger, lust, envy and other nasty animal tendencies. To cop larry wall, hubris, impatient, and laziness are virtues. Yes it can be elegant and artistic and creative, but that's true of almost any human activity from painting to accounting to shining shoes if one truly engages, so it's not worth dwelling on creative flair as an inherent quality of the activity itself.
A lot of the people who do this are weird, and the weirder they are, usually the more I love them. They aren't artist weird where they spend endless brain cycles rationalizing why what they do has value. They are weird because they find humor in something that they could never in a million years turn into a joke that would get them laid at a bar. This is the weirdness of experience gone right..
I think what Chris and Dzoba are railing about lack of experience which usually leads to more experience than the pan can handle, or alot of standing around and sucking. Zed Shaw is railing against the lack of experience that misses the point of the experience.
What got me thinking about this is I went on a bike ride tonight with my friend who's day job consists giving mice cocaine and seeing what they do when subjected to auditory and visual "stimulation". He calls it researching "experience seeking behavior", I call it hampster disco, but he spends alot of time thinking about why mice will continue to do something over and over that is not particularly good for them.
As he describes it, the brain, similar to a version control system, observes and commits to memory lots of paths or patterns of activity and stimullus. When a path leads to a reward, the brain merges that path into the corpus of experience that informs decision making. These "patches" become more and more reinforced the more time a pattern leads to a particular reward.
In times of extreme environmental stress, a selective benefit arises from quickly strengthening pathways that lead to something that fulfills a need. It allows one to adapt, break the normal routine, venture out of the cave, find food and get a nice little chemical reward in the brain. This works great when the path that leads to a reward is connected to something actually needed (food, water, shelter), but not so productive if the reward is given randomly (recreational substance abuse, shiny new frameworks, television, internet porn).
For example drugs, this means the brain of a formally class conscious well-to-do white guy can suddenly find it very rewarding to smoke crack all day with a social circle of people he previously never thought worth noticing. Random stimulus is truly an equalizer.
Back to the commandline. Code is driven by little rewards... passing tests, compiling code, working code, happy clients, fat paychecks, launch parties, open source love-ins, the joy of learning, and so on. Now more than ever thanks to the internet and open source, you can engage in the joys of tribalism and good old fashioned public displays of machismo. Maybe if we are lucky, we can get internet famous and speak at conferences and people will use our words like pointy sticks as they argue with each over things that don't matter to anyone. Or if we are really lucky, our code will stick around long enough hordes will curse our names over the pain it's inflicted upon them.
In the first version of the camel book to cover object oriented Perl, Wall inverts his virtues and talks about false laziness, false hubris, and false impatience (pointing a finger at abstraction). The gist is that at some point, the tasty breadcrumb trail can lead one into not being lazy enough, impatient enough and proud enough of oneself just to do the thing that works and keep moving. Suddenly you are trying to scale to infinity with no users or working code.
Coming out of a hiatus and I'm seeing where my cues are off in this regard. This piece from Chris Wanstrath where he tells rubycon to turn off the blogovision and get back to hacking things definitely struck a chord. Consuming lots of information does not make one smarter, but applying information regularly does. Time to get back into practice.
Anyway, it's nice to be writing code again.