By Simon St. Laurent
January 1, 2009 | Comments: 6

My New Year's resolution for this year is simple: practice.

Tim recently posted an editors list conversation about practice that I started. It's time to push forward into the things I've been talking about.

The main things I plan to practice are skills that I had but have let decay: trumpet and programming. I'm not aiming for mastery in either one, just for competence.

I'm returning to the trumpet after 24 years, and it's totally obvious that the path forward involves playing over and over, first to redevelop muscles and then to relearn technique. As much fun as it is to read about trumpet playing, there simply isn't any substitute for playing early and often, preferably with guidance.

Programming is a very different world. There aren't exactly exercise books, and the value of repetition is different. Programmers strive to eliminate repetitive code, and it's hard to imagine sitting down to solve the same problem twenty-five times until the solution is memorized. Valuable repetition in programming comes from solving similar problems in different contexts, and from growing more and more familiar with the environments you use. Very few people set out to memorize an API, but it often happens along the way.

I never left programming the way I left trumpet. I simply stopped playing trumpet after eighth grade. I've gone back and forth with programming since sixth grade, getting totally into it for a year or two at a time and then departing out of frustration, distraction, or the need to do something else. At O'Reilly, I'm exposed to programming constantly - I edit and write computer books after all! - but editorial is a long ways from actually programming. Even writing books about programming is a seriously meta- activity, one that requires more attention on the communications than on the code. (The code has to be right, but - though this may depend on the audience - the explanations have to do a lot more than the code.) My work isn't programming practice.

When I first started at O'Reilly, I was writing Java-based XML code on a regular basis. Most of it was to demonstrate particular points or to address specific problems I had in dealing with DocBook, though it did get intricate at times. Eventually, though, the appeal of doing text-processing in Java (was I really that crazy?) faded, and I just plain had lots of other work to do, so I went about three years without programming - except for occasional dabbling in Ruby and some small bits of Microsoft Access.

I have a clear path forward for practicing trumpet - it's fairly clear what skills I need to learn, and how to acquire them. On the programming side, it's far less clear what "practice" will mean. My current expectation is that I'll continue to build what I call "Rails micro-applications", simple web applications that address a small set of needs. As they accumulate and maybe even integrate, I'll be getting the practice I need to settle deeper into Rails and move forward.

I don't expect to become a master at either of these things. Frankly, I think that "mastery" is usually the wrong goal, a strange habit in our culture of setting ourselves up to fail. Mastery happens, but we need to remember - and value - the intermediate steps. Most of us will never be the Outliers Malcolm Gladwell describes as "The Story of Success".

The opposite of the "success" he describes, though, isn't failure. It includes a wide range of competencies, of people getting things done, without necessarily hitting "the big-time". You don't have to become an outlier to be a success - and you shouldn't let that get in the way of practicing.

You might also be interested in:


And the obituaries commemorating the recent passing of Freddie Hubbard remind us of just how physically demanding the trumpet is--apparently he managed it badly and got injured by it. Apparently, it's not like riding a bicycle at all! So good luck.


Simon, have you ever gotten wind of Carmine Caruso, the great trumpet teacher that lived in New York City. His list of students is a Who's Who of trumpet players-- like Marvin Stamm and Randy Brecker. A simple GOOGLE of his name will take you to some active websites that evangelize his methods. I can highly recommend a little book that has long been associated with his teaching, "Zen In The Art of Archery" by Herrigel. I've always noticed the parallel between my accumulation of musical skill and my accumulation of programming skill. I use the programming language Mathematica to create programming "etudes" for myself. As a matter of fact it's time for me to end this rant and go run thru Giant Steps in all 12 keys and perhaps an if/then statement or two....

As a programmer who also has musical passions, I enjoyed reading your article. What I do is keep my guitar next to my desk so I can pull it out for a quick exercise or too.

Great post. There's a cool little book called "The Practicing Mind" by Thomas M. Sterner. It doesn't say anything revelatory, but it does point out that all of life is best looked at as practice.

Thanks .

Achievements are positive but I reason - "being" who you grown into is more favorable however more challenging to decide. I reason coming from Poland and living here, that I have become a ever more appreciative of all things - large, small and inconsequential. I endeavor not to take something for granted.

News Topics

Recommended for You

Got a Question?