Awareness is Key to Kicking a Bad Habit

Golf Tips for Web Developers

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:

  1. Unconscious Incompetence
  2. Conscious Incompetence
  3. Conscious Competence
  4. 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:

  1. We’re unaware that we don’t know how to do it
  2. We’re aware of it, but we still don’t know how to do it
  3. We know how to do it but we have to concentrate really hard to do it
  4. 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.


6 Comments added. Add comment?

  1. Robin Blandford says:

    My coding is v amateur. I could learn a lot!

    Jun 10, 2008
  2. Iarfhlaith says:

    Really? I had you pegged as an out and out coder. What areas are you looking to improve on? Maybe we could help each other out.

    Right now I’m looking at getting to grips with the UI plugin for the jQuery JavaScript framework, the HTTP packages of PHP’s PEAR repository and I’m also looking at different ways to process form submissions that supports both synchronous and a-synchronous callbacks.

    One other thing that I’ll be looking at pretty soon is the Adobe Air platform. The last time I wrote a desktop app was in VisualBasic for a college project, so I’m sure it will be an interesting challenge!

    Jun 10, 2008
  3. Gordon says:

    I’d certainly like someone to check out my PHP code from time to time. I should probably use more functions and classes to optimize and clean things up.

    In my mind, the best programming validation comes from creating or participating in an open source project. I’ve participated in projects in the past and its a great boost when a couple of other developers like and adopt your method of tackling a particular process.

    Iarfhlaith, Have you anything in mind about how this open approach to code would evolve? How or what can I do to participate ?

    Jun 11, 2008
  4. Iarfhlaith says:

    Getting involved in an open source project is something I’d love to do. I often hear about the benefits of getting your code analysed and critiqued by the community and I think it would be a great way to improve my skills and help drop my bad habits. And obviously it’d be great to work on a significant project as well.

    As for my commercial projects, I’ll have to do a bit of thinking to come up with a way to share code without diluting the IP that goes with it.

    Jun 11, 2008
  5. connector says:

    nice advice tiger !

    met ur mate fintan damson earlier connecting … small world ! 😉

    u guys out for beers any time soon ?


    Jun 18, 2008
  6. Iarfhlaith says:

    Cheers Conor, still working on my swing!

    Yeah Fintan and I go way back. It certainly is a small world, especially in Ireland.

    If you’re interested in making some new connections, there’s a bit of a party over at Cineworld on Parnell street tomorrow night. The Irish tech cognoscenti are hosting a party to celebrate the release of Firefox 3. There’s over 200 registrations for it.

    Here’s the link to the registration site:

    It’d be a great place for some new connections!

    Jun 18, 2008

Sorry, comments for this entry are closed at this time.