I recently have had the humbling experience of pair programming with several developers where I was just astounded at the speed at which they were able to get code generated. One thing I noticed is that most of their coding was done with the keyboard with very little use of the mouse – everything was shortcut based. When it was my turn to take over the wheel I found myself extremely slow compared to them, partly because I was not familiar with their keyboard and layout, but the majority of the slowness I felt was due because I kept having to use my mouse to trigger certain commands which was slowing me down.
After looking back at the experience it has highlighted to me how important it is to know your tools…. kind of like the master craftsman concept relayed in the book “The Pragmatic Programmer”. To add to this I had a conversation with a colleague of mine where he mentioned how his brothers were Farrier’s – Farrier recognize the importance of knowing their tools and so often get together and have competitions to see who can perform certain tasks the quickest and to learn from each other. While I have been exposed to programming competitions, I have never seen a competition locally that emphasizes speed – generally the programming events I see have a problem and the majority of the time is spent on problem solving instead of implementation. It would be interesting to see a competition where the problem solving was done and so the focus was on the speed of implementation instead of the problem.
Well.. for now I am back to school with learning new VS2010 shortcuts!