Along with being a programmer I study a couple of sword martial arts, with the one I'm most experienced in being German Longsword of the 14th-16th century. Anyway, in longsword there are a lot of complicated things you can do, like for example this... and things even more complex.
They'd be very very hard to pull off in an actual fight. But I read a thought recently on martial arts that suggested the reason you learn the complicated things and practice them is not because you expect to do them ever, it's because in doing that you continue to hone the principles that make the simple things work. Most of the time you do those simple things, but they'll be better because you've practiced the weird stuff and reinforced the principles that underlie everything.
I liked that idea. Programming, I think, is the same way. 99% of the time you shove things in a list or a hash or you use an object directly through it's only interface or whatever. But having done some of the weird stuff not only means you've done that, it also builds up your understanding of the underlying principles so that you're better at the simple stuff.
April 21, 2010
Subscribe to:
Post Comments (Atom)
Hmm, I wonder how many readers can guess which guy is in greater danger in that picture!
ReplyDeleteSome of this really boils down to "leave your comfort zone, and see where you fall apart---fix that and you'll be better at the normal stuff." It's why I waste a lot of time learning about weird data structures...