When attacked he seldom, if ever, defended his position, rather he attacked back. Such a method of playing soon produces a very interrelated board. It took me a while to realize that of course that is why he was able to prove the existence of good coding methods. I learned from him to say the same to myself when stuck, and on some occasions his approach enabled me to get significant results. Without courage you are unlikely to attack important problems with any persistence, and hence not likely to do important things.
Courage brings self-confidence, an essential feature of doing difficult things.
However, it can border on over-confidence at time which is more of a hindrance than a help. There is another trait that took me many years to notice, and that is the ability to tolerate ambiguity. If you believe too much then you are not likely to find the essentially new view that transforms a field, and if you doubt too much you will not be able to do much at all. It is a fine balance between believing what you learn and at the same time doubting things. Great steps forward usually involve a change of viewpoint to outside the standard ones in the field.