Tuesday, August 01, 2006

Styles of learning

Newsflash: Folks learn differently.

As I'm working my way (slowly) through Head First Design Patterns, I had an epiphany.

(no, it didn't hurt. Well, much.)

In thinking about design, and how things are designed (especially in the software development world) it occured to me that there are paper folks, lego folks, and visualizers. I'd always held that "real" software designers could "think about" all the pieces and start coding. You know, do the design in their heads with nary a pen put to paper.

Slightly behind those in my unconscious estimation were the paper folks. Who drew out complex interaction diagrams of how their product would work. ERD's and UML and such.

And then there are the pedestrian lego folks. (ie, me) As I was reading the book, I absently picked up my latest lego creation (4 cyl inline engine with pistons-a-pumpin) and began to tear it apart in preparation for the next creation. I observed two things.

1.) I really like to work with physical objects.
2.) The engine was the product of multiple iterative designs.

I didn't sketch out how it would work on paper. I didn't "visualize it", staring off into space seeing imaginary 3d entities dance and click.

No, I picked up a 24 tooth gearwheel, plugged in a 3 stud axle and began making a camshaft. Thinking as my fingers moved, so to speak. You might even say that the fingers moving were pumping thoughts through the brain.

I then realized that I had only one 3 stud axle, and my office cohort suggested a way to use 4 stud axles instead. (with 1/2 size spacers) Anyway. Long story short, the camshaft went through several "build it, tear it apart, build it again" rev's, as did the block, as did the motor-gear interface thingie. (one speed transmission? Big gearwheel + little gearwheel + old high rpm/low torque motor)

Anyway. I needed to "do" it in order to design it. Yeah, there was still more than a bit of staring off into space, but I benefit greatly from seeing my design in hand when improving it. I naturally (because of LEGO?) gravitate towards doing a "proof of concept" and then going back and rebuilding for strength, maintainability, yadda yadda, etc.

And I've always looked down upon myself for that tenancy. Or, perhaps, I've venerated those who are able to do the whole "complete conceptualize" thing without the "crutch" of modeling. I thought they were somehow intellectually superior. (who knows, perhaps they are - after all, they're holding more "in their heads" then I can)

But frankly, maybe modeling isn't such a bad thing after all. I mean, I can SEE a bad design as it goes together. (and the gears all grind to a halt because of too much friction) Modeling helps me, so I'm not going to knock it.

Ok, 'nuff soul searching for the time being. It was an interesting side note. I have more important things to do.

Like how to get a similar gear reduction/orientation shift that I saw accomplished (very cleanly!) with a worm gear, using only the components in my ancient (though augmented) 8055 set.