The Way to Becoming a Better Developer

Posted by Ryan Baxter Fri, 07 Sep 2007 19:13:00 GMT

Wikipedia defines shibumi as “a Japanese word which refers to a particular aesthetic of simple, subtle, and unobtrusive beauty”. Ruby, 37signals, Nintendo, and Apple all have it. As a developer, I can often find shibumi in programming languages, websites, and applications, but have a hard time characterizing what it takes to be a master programmer. I don’t think I’m alone. The blogosphere is full of the self-help affirmations of programmers wishing to better themselves at their craft. How can we become better at what we do?

I don’t have the perfect answer, but borrowing from my experience in teaching martial arts may provide a clue. A frustrated student once asked me how he could become better at performing his kata. I responded by telling him that practice by repetition is the best way to improve form. Under his breath he muttered, “Practice makes perfect, but nobody is perfect”. Apparently it wasn’t the answer he was looking for. I suspect that most programmers would react similarly if told to keep practicing.

Judo, Taekwondo, and Karate-do all end with the letters “d-o”. “Do” is the Japanese pronunciation of the Chinese word, ”Tao”, meaning “Path” or “Way”. Each of these martial arts is merely a set of instructions for following a path. What the young student didn’t understand is that practice, in martial arts, is not a means for perfection. Practice is the goal. The key to becoming a better programmer is accepting that practice, focus, and attention are the only way to improve.

Comments

Leave a response

Avatar
retsoced Comment_bubble 2 days later:
While I am perfectly ready to let out a "harrumph", I think that anyone can attest that any degree of perfection cannot be attained in a vacuum. All of the diligence in the world will not help you understand why there are more than 50 moves in Shotokan's Gojushiho-Dai kata, or what those stances, punches, blocks and kicks strung together signify; if you do not have a Sensei. While I agree that practice, practice, practice can help anyone to become a better code monkey, but one must have direction, and mentoring leaders/colleagues in order to become a code ninja. It seems similar to an argument usually made among artists. Is it art or craft? Was Ansel Adams an artist or a superb craftsman toiling away for years in a darkroom perfecting the steps needed in order to create masterfully printed photographs? I don't know. To me, Ansel is a brilliant artist. What I do know is that I would not be the same photographer, designer and coder I am today without the mentors that I have had in the past helping to lead me while I strive for perfection....