Sunday, March 17, 2013

Practice

The exact benefit of practicing is a skittish creature to define. Over the past week I have been considering examples of practicing, some that relate to my project and some that don't, to help nail down what it is exactly that practicing does for me.

Learning new things

Being a learn-on-the-fly type of guy, the first (few) times I practice something, it is akin to bushwhacking. As part of the research for Fractal Canvas, I am learning a new language (WebGL.) On my left screen I have a tutorial open on one half and the manual on the other. On my main screen, I switch between my code editor and browser to see the results. Practicing at this stage is just transcribing from the example to my own code, understanding each piece as I do (from the manual) and tweeking little things here and there to familiarize my intuitive sense with the parameters.

In an example from a completely different field, I picked up a trombone yesterday and my friend taught my the basics of how to play. Being a tubist, the fundamental sound-making came easily, but the slide was completely new. Creating relationships between partials, notes, and positions came more and more easily as I fumbled through notes in easy pieces, finding each one as I went.

Intuitive Sense

Practice can lead one to develop an 'intuitive sense' relating to some task. In programming, this may be the approach I take to solving a problem, styling a page, or making accommodations for afterthoughts. In music this intuitive sense fuels my interpretation of the ink on the page. But perhaps the most tangible example comes from my experience as a machinist on Code Red. By the end of a 6-week build I could mill 1/1000th of an inch of metal off a rod by eye, identify the thread size on bolts, and estimate parts and features to the nearest common fractional size. These abilities were developed through repetition and unconscious pattern recognition. These intuitive skills, including those in programming, music, and machining along with the countless similar skills everybody picks up every day, are clearly definable products of practice.

Maintenance

In programming there are distinctly different skills in theoretical understanding and application. Practicing writing actual code is the transition from one to the other. Each time I write a similar piece of code I become less dependent on manuals and documentation. Phrases and melodies in band pieces become muscle memory. My fingers and mouth sync up better as I practice, and my ears become more finely tuned to the music. This stage is where things become facile, "like riding a bike."

Relearning

When I take my bike out for the first time in the spring, it's obvious that some relearning is in order. It takes a moment's thought (and planning ahead) to unclip my shoes from my pedals before I stop. It takes a few miles to remember just how much to lean over when corning at race speeds.

Most programmers 'know' more than one language. Many are similar, so once you know one it may take a day or two to 'learn' another. But every time I take a hiatus from a language, it takes a day with the documentation to remember the exact syntax specific to parts of that language.

Just this Monday, in band we took out Bayou Breakdown for the first time in three weeks; we crashed and burned. We all went home, refreshed our fingers and re-attuned our ears to our parts, and made it through the piece just fine a few days later.

Practice

I considered four 'types' of practicing from my own experience. In just this last week I have had a chance to experience and contemplate each. In my project, each kind of practice is certainly present to a large degree. This weekend I have worked on learning a new language, brushed up on a familiar language (SQL), and written in SAFE/PHP/HTML/CSS, all languages with which I am very familiar.

Istvan.

No comments:

Post a Comment