One of the things that I’ve really begun to do in the last few years is pick up the trail in an attempt to become a great programmer. I am obviously not there, nor do I think I’ll ever get there – but I believe I’m on the right path! Previously to my changing my goals / gaining focus on what I wanted to do, I only got better and more knowledgeable at things that were needed for my job. Now, I’m starting to gain momentum – I can almost *feel* my brain bulging!!
So here are my top tips for becoming a better programmer!
Do Some Homework!
A lot of people are very content with programming for a living, but through sheer code exposure logic – if you do programming at home you are exposed to more code and will therefore become better over a shorter period of time. It’s kinda simple when you think about it. There are a few different ways to do this as far as I see it:
- Take home some work and refactor that ugly function you created. A task that is too big and time-consuming for too little benefit to warrant a redesign in “works time” – but is pecking at your soul, screaming “I’m your dirty secret!”.
- Create your own project to work on. Establishing a really good, motivating idea can be a great way to spur you on. It could be something for your own devouring or for a wider market (though, check to see whats out there if the latter).
- Contribute to Open Source – this is probably one of the better, most light weight solutions you can go for. You’re under no obligation to contribute and at worst you get to look around another persons code that you wouldn’t normally and potentially pick up some interesting methods of achieving something you’ve not thought of.
Syndication, Syndication, Syndication!
Find some good blogs & podcasts and subscribe to them! If you can dig out some of the best bloggers for the technology stack that you’re interested in, you can sometimes get some excellent articles to read on the way into work. It’s important to avoid subscribing to too many blogs – you need to be able to actually read them. Too many would be unproductive and you would not get chance to read them and give them the concentration that they deserve.
As it stands at the moment, the blogs I can recommend are: Coding Horror, Joel On Software, Stack Overflow, Scott Hanselman’s Computer Zen, Jon Skeet Coding Blog, ScottGu’s Blog, you’ve been HAACKED, Elegant Code and of course, shameless plug to mine Blog @ Amadiere.com
I’d also highly recommend listening to a few podcasts when you can, the Stack Overflow podcast is particularly good, but there are plenty of others. So scout around for the ones which focus on your development environment (or are to a degree, fairly generic like the Stack Overflow one).
Care About Your Craft
I’m not saying you have to start hyper-ventalating when someone shows you a demo of some of the stuff in ASP.NET 4, but you should at least be interested in what opportunities it might have to offer you (exclusion, of course, for those that do not use .NET). The mere fact you are reading online blogs about improving your craft implies that you already care enough to read and work out of hours. It’s important I believe to feel for your projects, they should be like children to you. You look after them, care for them, make sure they wash behind their ears and when they are finally of age, you can help them leave home and go and live with their users.
Keep Updated With Changes To Your Development Stack
Things change. Don’t be as they say, a “COBOL Dinosaur”. You should be subscribed to whatever feeds you can that tell you when software and development languages are updated. If the updates aren’t detrimental to your development, go ahead and install them and have a play around with any of the new features that took your fancy. Ride the wave of the future!
Have A Book To Read
It doesn’t have to be a dead tree, but having something you can just work your way through will do no harm. There are a number of great books that people recommend with the top ones being Code Complete and the The Pragmatic Programmer. I quite enjoy language and environment specific books too, such as Professional ASP.NET 3.5, Professional ASP.NET MVC 1.0 and Professional C# 2008.
At the end of the day – don’t procrastinate! Write some code! Get your hands dirty and enjoy the glory that is !le code!