Awareness is Key to Kicking a Bad Habit

Yesterday evening I had a pro golf lesson with the very capable David Lavelle. The lesson started off with me hitting a few balls so he could see my swing. Straight away, he was able to tell that my grip needed work and that I was standing too close to the ball.
Within five minutes he was able to show me a new grip, change my stance and correct the distance between me and the ball. It felt a little uncomfortable but I stuck at it.
It made an instant difference. I began hitting the ball cleaner and it flew far straighter then before. It was an amazing feeling to see such an immediate improvement from just a few small tips.
You Can’t Beat Expert Advice
If you don’t know what you’re problems are then there’s no way you’ll be able to address them. Having an expert take a look at my golf swing allowed me to see what faults I had.
Before yesterday, I had no idea that my grip was all wrong. I was also blissfully unaware that my stance was the cause of most of my drives skewing off to the left. So with the new knowledge from the 30 minute lesson I now have an angle to improve my drive and my overall game.
Developers Have Bad Habits Too
The golf lesson and the advice David gave me got me thinking about applying this approach to other aspects of my life, like writing code.
As a developer I’m always looking for new ways to improve my skills. I’m an avid reader of many different developer blogs like Sitepoint, jQuery’s John Resig, and Irish PHP and open source evangelist, David Coallier. I keep up to date on new frameworks and other modern approaches to make my code more readable, scalable and extensible. I also refactor my code as often as possible to prevent it from becoming stale and unreadable. So in general, it’s safe to say that I’m constantly trying to find new and better ways to architect my software.
But it’s not perfect, and I’ve no doubt that I have as many bad habits in my coding style as I have in my golf swing. My recent golf lesson, and the advice given to me by my instructor has made me think about how I could use the same approach to improve my skills as a developer.
Learning to Learn
If you’ve ever heard of the Conscious Competence Learning Matrix, you’ll know that there are four steps to learning anything new. These are:
- Unconscious Incompetence
- Conscious Incompetence
- Conscious Competence
- Unconscious Competence
(thanks to Louise from Optimum Training for showing this to me)
This matrix outlines how humans learn. Basically, it highlights the steps taken during the learning phase of anything new. These four steps can be explained as:
- We’re unaware that we don’t know how to do it
- We’re aware of it, but we still don’t know how to do it
- We know how to do it but we have to concentrate really hard to do it
- We know how to do it and can do it instinctively without thinking
For me, it’s the first stage that I struggle with. I’m constantly worried that I’m missing something new. That a new framework or a new approach will somehow pass me by and I won’t hear or learn of it.
However, once I do hear about something new, I’ll voraciously pursue it until I’ve either satisfied myself that it’s not relevant or I’ll convince myself it’s the next big thing and I’ll spend time adopting it into my armoury of development tools. Either way, I’m constantly trying to get passed the stage of unconscious incompetence. I’m eager to learn, but I can only learn what I know I don’t know.
Becoming More Open About My Code
I think every developer, myself included, could benefit from expert/peer advice on their own coding practices. Just like in the golf lesson, a 30 minute meeting with another developer could help highlight some weaknesses and help to identify aspects of my coding style that could be changed easily yet deliver maximum impact on the quality of the code.
I’m keen to get this type of advice, as I’m used to working in isolation away from other developers. So to help get around this I think I’m going to become more open about the way I code and start to publish parts of my work so I can start to get some feedback from the community on the most effective way to write software.
Helping Each Other Out
If there are any web developers reading this who would like to discuss their coding practices or get feedback on their approaches to solving the everyday problems of the web I’ll be happy to give my two cents. Email me or leave a comment here.
Posted by Iarfhlaith |
Link
|
Share |
6 Comments »




