I was so naive and stupid

October 10th, 2010 1 comment

I’m an idiot.  Or rather, I was.

Looking back about six months, I can’t help but notice how naive and wrong I was about so many things.  Jejune misstatements and patent falsehoods.  I shake my head at my former self.

And that’s a good thing.

I want always to be improving.  If I get to the point where I can evaluate myself from six months prior, and I don’t see any difference from my current self, then I have failed.

I set goals.  I achieve goals.  I learn new things.  I refine.  I filter.  I tweak.  I discard.  I collect.

Juggling lacrosse balls with my goalie gear in the background

Juggling: a goal from long ago, finally accomplished.

This is not some sort of desperate race to avoid some depression-driven self-reproach.  No, I think rather highly of myself.  My current self.  That old me?  Well, he was an idiot, but he’s gone now.

And in six months, I hope that my present-day me looks like an idiot, too.

Coaching: why not for programmers?

September 9th, 2010 3 comments

Driving back from my goalie training session this evening, I got to thinking: why is one-on-one coaching so rare among technical professionals?  Professional athletes work with individual coaches, so why not professional programmers?

I am by no means a professional hockey goalie.  The rec leagues are my domain, not the NHL.  Still, I have a incessant need to improve my skills.  I want to be the goalie drinking the victory beer, not the sorrow beer.  That’s why I work with a goalie coach.  It’s not cheap, but the return on investment is significant.

I get instant feedback.  I see how things should be done.  I drill movements until they become second-nature.  I interact with an expert who can identify my strengths and focus on areas where I need work.  I develop good habits.  I can’t get away with laziness or errors, because I’m always being watched.

Professional athletes work with coaches all of the time, for similar reasons.  Granted, they are able to afford more time with their coaches, but the dynamic is similar.

Programmers, on the other hand, seem to receive little in the way of coaching.  College is nice for training, but it works through practice and competition.  Does the code do whatever it is well enough to satisfy the automated grading program?  Great — you pass.

Industry is no better.  There, code reviews are opportunities for evaluation and correction from peers, but they are too time constrained for extensive critiques, and they are certainly not the place for assignment of practice drills.  Pair programming has the one-on-one aspect of individual coaching, but the partner is not necessarily an expert and may care little for your individual growth.

Instead of being coached, programmers stumble through years of individual study and marginal projects.  Passion and practice seem to make the best coders, with those in the rarefied air being several times more productive than the norm.  But are those elites reaching their full potentials?  Could the 9-5ers be moved above their plateaus?

Programming should be coachable.  It’s art, after all, and artists have long worked with coaches.  Musicians, painters, and singers all have coaches (or go through apprenticeships).  Photographers subject themselves to critiques.  Authors have editors.  I will go so far as to consider individual athletes as artists, for — like artists — athletes combine a deep knowledge of the physics of their domain with the creativity necessary to outshine competitors.  Similarly, programmers take the rules of code and compose ASCII symphonies, with structure, elegance, patterns, and surprises.

So, then, why is the concept of coaching foreign to the software development profession?  Is it a lack of time?  Is it arrogance?  Is it trust in exploration, forums, and side projects?  Are there simply no coaches to be employed?

I’ll concede that coaching does exist in some corners of the programming world.  Competitions like the ACM-ICPC tend to have coached programming teams.  One might argue that a software project manager is a bit like a coach, too — though in that case, he’d be concerned with the performance of the team, not necessarily the skill development of any individual.

Maybe the professional coders are convinced that individual practice is the only way to get better.  Maybe they believe that additional university courses will help them improve sufficiently.  Maybe they simply haven’t thought about it.

I have no doubt that an excellent programmer could improve by working with a coach.   But it doesn’t happen.  Why not?

The trip is now 37% closer than when it was conceived

September 4th, 2010 Comments off

From one of my other blogs:

“Six months after the initial idea, and I’m more excited than ever about this trip. Hard to believe that it’s just nine or so months away!  The more I talk about it, the more I think that my idea of visiting every (continental) American state and Canadian province by car is…”

Continue reading at StoppingInEveryState.com

The other pizza farm

August 29th, 2010 3 comments

About a year ago, I visited a delightful farm in rural Wisconsin that pumped out amazing pizzas.  In the time since, a competitor has emerged.

Like A-Z Produce’s pizza farm, the Love Tree pizza farm (actually Love Tree Farmstead Cheese) is about a two-hour drive from the Twin Cities.  They are both in rural Wisconsin.  They both bake their pizza outside in wood-fired ovens.  Neither one of them supplies customers with anything other than pizzas in cardboard boxes.

The pizza area at Love Trees farm

The pizza area at Love Tree's farm

I arrived at the Love Tree farm around 7:00 with a group of friends.  We found goats, sheep, and fields.  Farm dogs lazed on the grass.  The air smelled of earth and wood smoke, the latter of which guided our way.

Down the hill from some nice-looking farm equipment and we found ourselves at the pizza oven.  The order for three pies was placed.

The pizza oven and pizza maker

The pizza oven and a pizza maker

We passed the time watching the sheep get milked — the farm makes aged goat and sheep milk cheese — and sampling said cheese (very nice).  We listened to the quiet rural summer sounds.  We relaxed on a hill next to a pond.

The mood was light, and although there were far fewer customers than at the other pizza farm, those present were no less prepared for the experience.  Many had wine, most had blankets or tables, and few hesitated to strike up conversations with the proprietors.

We waited.  And waited.  And waited.  The sun set, the dearth of artificial light (a lone lamp dimly lit the pizza area) revealed the night sky, and our stomachs growled.  The operation was in its fourth week, and the pizza-production-line inexperience was showing.

A pizza maker tastes her product as she stares into the oven

A pizza maker samples her product as she stares into the oven

Finally, about two and a half hours after we placed our order, our pizzas came out.

I wish I could tell you that they were amazing and that the wait had been worth it but… I can’t.  The pizzas weren’t all that great.  I won’t go so far as to say they were bad, but the crust was generally too thick and underdone, the top was burnt, there was waaaay too much of something that tasted lemon-y in the sauce, and there was too much sauce in general.  The cheese on the pizzas was excellent, however.  I’d comment on what the pizzas looked like, but by that time it was so dark that we could barely see the outlines.

Nighttime pizza consumption (4 sec. @ f/2.8, ISO12800)

Nighttime pizza consumption (4 sec. @ f/2.8, ISO12800)

A long drive, followed by a ridiculous wait, all for disappointing pizza.  But would I go back?  Absolutely — with a caveat.  I’d like to go there again in about a year.  Why?

What I haven’t mentioned is the passion the family displayed for their farm, their cheese, and their pizza.  They seemed to genuinely care about what they were doing, and they appeared to be enjoying the work.  Pizza production is difficult, especially when a wood-fired stone oven is involved.  They need to work out the kinks and keep on iterating, like any good startup should.  I’m confident that they’ll nail it eventually.  They already managed to figure out award-winning aged cheese, after all.

For the pizza farm experience now, try the A-Z farm.  For the pizza farm experience in the future, keep Love Tree in mind.

Badlands Backpacking

July 6th, 2010 8 comments

I have a new appreciation for the dismay that early pioneers must have felt upon encountering the Badlands of South Dakota.  Imposing dirt-and-rock features rising from the prairie, they were a formidable opponent to forward progress.  Last weekend, I went backpacking in them.

The Badlands are not for backpacking novices.  I was in the Sage Creek Wilderness area of Badlands National Park, which has neither established trails nor sources of water.  The summer weather is hot and dry, and the terrain is exhausting.

When you’re not hiking up and down bluffs, you’re slogging through soft sand in washes or through knee-high thick grass, which threatens to trip you on every step.  You’d better watch those steps, too, because a poorly placed one could find your foot in a prairie dog hole — or worse, on top of an angry rattlesnake.

In exchange, you get fantastic views and immense solitude.  I hiked from one of the most popular backcountry access points, and according to the log book, there were only two other hikers out there at the same time I was.  Compare that to, say, Yosemite Valley, which is crawling with tourists.

The route I followed is generally known as the Sage Creek Loop.  There were no trails, and footprints in the mud are erased whenever it rains, so my guides were my topo map, my GPS, and some vague waypoints.  Backpacker.com suggests it as a three-day route, but I did it as an overnight.  The 4.1 liters of water that I carried wouldn’t have lasted me through another day.

The author in front of Sage Creek Basin

The author in front of Sage Creek Basin

I hiked west from the parking lot, encountered a lush oasis called Deer Haven, did some route finding, did some scrambling, encountered a dead-end on a route up a bluff, and cursed the many curves of the Sage Creek wash.  At midday, I was approaching heat exhaustion when I stumbled upon a rare bit of shade in the shadow of a bluff.  It was out of the sun, had a nice breeze, was bug free, and wasn’t muddy.  Perfect for a couple-hour nap.

Looking out over Sage Creek

Looking out over Sage Creek

Rejuvenated, I pressed on to the Tyree Basin, where I set up camp on the prairie for the evening.  In the background, there were massive banded earthen features.  In the distance, thunderheads loomed.  I set up my ultralight camping shelter — a tarp and my hiking pole arranged as a lean-to — and hunkered down for the storm.

The rain came, and so did the lightning.  I was the only thing on the prairie for some distance, and my hiking pole was made of aluminum, so all I could think of during the storm was, “Don’t die.  Don’t die.  Don’t die.”  I watched the hair on my arm intently for any signs of static buildup, some vague notion in my mind that if I saw impending doom I would somehow be able to run away from the bolt.

When the storm passed, I was treated to a spectacular sunset.  A cool breeze blew throughout the night, and I had one of the best nights of backpacking sleep that I can recall.

In the morning, I hiked down the Sage Creek Pass and back to civilization.

Total distance (according to my GPS): 24.0 miles