Becoming A Better Developer
A common thread going round the blogosphere questions what is required to become a better developer [http://www.hanselminutes.com/default.aspx?showID=90]. One blogger reckons it’s to read a book a week for 26 weeks [http://graysmatter.codivation.com/HowIAmBecomingABetterDeveloperPart1OfInfinity.aspx] and do a little catch up learning. He’ll certainly be better read than before, but better as a developer? Well, maybe. There might be a few other things that will help too.
- Ensure your foundations. Know the basics really well. If your core HTML [http://www.cdburnerxp.se/htmlcheatsheet.pdf], C#, PHP etc is always at your fingertips, it’ll leave you time to concentrate on the trickier things. That includes using your IDE [http://download.microsoft.com/download/e/7/9/e79cce22-b196-4b9f-9ea7-b1a21f5342e9/VCSharp_2005_color.pdf] , its plugins [http://excastle.com/blog/archive/2007/01/31/13141.aspx] and your source control system [http://weblogs.asp.net/dwahlin/archive/2007/08/13/video-how-to-getting-started-with-subversion-and-source-control.aspx] . * Keep the well thumbed copies of your core [http://www.amazon.co.uk/Instant-HTML-Programmers-Reference/dp/1861001568/hmobiuscom-21] reference [http://www.amazon.co.uk/Pragmatic-Version-Control-Subversion-Programmers/dp/0977616657/] books [http://www.amazon.co.uk/Effective-C-Specific-Ways-Improve/dp/0321245660/hmobiuscom-21] to hand. * Target what interests you. No point trying to work on managed DirectX if you want to be a web developer. Choose an area in your chosen field you don’t know aren’t comfortable with and work on that. Set manageable milestones to where you want to get to. * Read beyond the official documentation. Blogs and books are good, but try and be selective or you’ll never be able to… * Write code regularly. Writing code is like riding a bike. You don’t really forget how. Writing good code however is like doing a wheelie on a bike. You have to practice to manage it and then keep practicing to sustain it. Discipline yourself to do this. [http://www.codinghorror.com/blog/archives/000931.html] * Try explaining what you’ve learnt to others. That you’ve managed to achieve a milestone on your way to becoming a better developer doesn’t matter if you don’t know how you got there. Make it clear in your own head by writing down what you’ve learnt or explaining it over lunch to someone else. If you can’t do this, you need to work through it again. Remember, secure your foundations before going to the next step. * Enjoy it. If you’re not enjoying it, it’s not going to help. It’s easier to learn when you’re happy and having fun than when you’re alone and miserable. The whole Head First series of books [http://www.oreilly.com/headfirst/] uses that as one of its tenets. If work isn’t a fun place to be, do it at home. Joining an open source project might well be a good way to proceed here. Working with an enthusiastic bunch of like-minded people on a project you’re genuinely interested in is a great experience. * Look at and learn from other people’s code. Preferably their good code [http://weblogs.asp.net/bsimser/archive/2007/07/29/being-a-better-developer-by-studying-other-peoples-code.aspx] . A lot of people learnt HTML by simply viewing the source code of a page they liked in their browser. Online source code repositories mean that you can now do the same in many languages. Sites like koders.com [http://www.koders.com] now offer search engines targeting only these repositories so it’s also easier to find the code you want in the first place. * Learn from other developers mistakes. Don’t sit in silence. Don’t code alone. When you get stuck, ask your co-workers, your open source team mates, your peers on coding forums and your friends how to solve the problem. 99% of the time, the problem is not a new one and someone will have come across it before. * Know yourself. If you’re a morning person, don’t try and force yourself to work in the evening. If you’re disorganized, write some lists, figure out how to get things done and get going.