In the mind of the beginner, the possibilities are endless. In the mind of the expert, they are few.
Shunryu Suzuki in Zen Mind, Beginner’s Mind
This concept comes from Zen, and there is an apocryphal story of the zen master, the visiting professor, and the tea cup.
There seems to be some connection between the world of software development and martial arts. We have code katas, coding dojos and I’ve even read a couple of articles on Shu Ha Ri, relating it to learning to code. I’m not sure whether this is justified, to be honest – I don’t have a problem with the idea of kata as practice exercises, but the rest seems a bit dubious to me. In any case, in Japanese martial arts, beginner’s mind is “Shoshin“, and it seems to be an appropriate subject for my first blog entry.
While advancing your understanding of a subject means building on existing knowledge, it still pays to approach your learning as if you are a beginner. In my karate training, this means that when my instructor demonstrates a technique, I watch as though I’ve never seen it before, even though I may have already practised it many, many times. To do otherwise would mean that I would find it very difficult to improve, as it becomes more and more likely that I just won’t see the differences between how I already perform and how I want to perform. The added benefit is that I’m not surprised nor disappointed when I am corrected – I welcome correction, as any beginner should.
The same approach works well when learning a new programming language, software tool or methodology. Approach it as though you are a beginner, and it will help keep your preconceptions out of the way.
© Raw Mind Ltd.