Evolution of a developer
30 July 2007 in General | Comments enabled
Lately I’ve been thinking a bit about how developers progress and evolve into better developers, partly inspired by recent pod casts from folks like Scott Hanselman about how to become a better developer in six months.
Before I go further, I don’t believe any endeavour has a point of perfection, even the best in a field is striving to do even better. Nobody is immune from needing to increase their skill level and if you think you are or can’t be bothered then change fields – you’re likely just holding others back by being a stick in the mud.
How do I try to become a better developer?
- Work with the best. I have the fortunate situation of working with a couple of the best developers I’ve ever met. Working on solutions with them, nutting out how to tackle a problem and general knowledge sharing has enabled me to learn a considerable amount from them.
- Reading blogs isn’t enough. I used to believe that simply consuming huge volumes of information from blogs and software development related sites would make me a better developer. I’ve since come to realise it only helps in making me aware of the possibilities but doesn’t help me practically. Now when I spot a blog post about something that takes my interest I’ll try and pull down some code or implement what is being shown. Actually doing things is far better than just reading about them.
- Subscribe to mailing lists. Blogs and various sites are good to keep track of but it’s quite a learning experience to track mailing lists for projects that you’re interested in. Even tracking mailing lists in areas that you won’t be using day-to-day are great for providing perspective on what other developers are up to, for example, I watch the Moonlight mailing list about the Silverlight port to run on mono / linux. Mailing lists provide the nitty gritty detail about what is going on behind those blog posts that just trumpet new versions.
- Actually write code. This one seems like a no-brainer and relates closely to point two – if you’re thinking about how something could be done then just write it up. I have a ‘research’ folder in my dev directory so where I spike up silly little bits of code just to see how something might work. Writing, combined with the reading I’m already doing, provides a complete learning experience.
- Participate in discussion. Too many people are happy to be wallflowers and just watch others discuss and debate topics that relate directly to them. Why wouldn’t you share your thoughts if it affects you or is directly related to you? Usually fear of being cast as wrong about something or looking stupid. I try to take the approach of always sharing my thoughts no matter how stupid I may look – either I’ll be corrected and learn from it or I’ll look like I’m super clever. Ideally over time you’ll tend towards the latter. Never be ashamed or afraid of engaging in conversations and debates.
As you can see, much of my view about becoming a better developer is tied to a “use it or lose it” attitude being augmented with giving yourself new ideas seeded from other people. One thing to remember is that the evolution happens gradually over a long period of time, applying rules like this doesn’t mean on Monday I’m going to suddenly be a developer God.
I’m happy to hear if anyone else has habits that have helped them evolve as a developer.