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.