Dear Rookie Developers
First off let me start by saying I am still a Rookie in a lot of ways. I still make plenty of stupid mistakes and I still forget to submit my hours on time:)
I have been on a few development projects and have learned a lot about how to develop software. Admittedly I still am not sure on what is the best way to develop software, but I have some advice on the pitfalls and things that I think were bright spots on my rise to programming mediocrity.
Get help early and often.
Don’t be embarrased to ask a senior developer how he/she would implement a solution. I do it all of the time. None of us really know the best solution, we just know the best solution in relation to the solutions that we have seen. Push for code reviews they are an invaluable tool into the mind of another developer, try and study the code before hand so you have some context on the problem at hand.
Scott Hanselman talks about it all of the time.
Code is interesting, how else are you going to get the best practices that are going to keep you on the good side of your developer comrades.
Be proud of your work, but don’t be afraid to throw it in garbage.
It is great to be proud, but we need a healthy mix of pride and realism. A lot of times I will write a method and just delete it and rewrite it. It you are doing TDD then the second time your code will probably be a lot cleaner and more efficient.
Read Code Complete
There is a lot of great advice in Code Complete that every developer should be familiar with.
Start out thinking about testing
When you start coding, think about how easy it will be test this method. The more you do that the easier the jump TDD will become.
Learn new languages
As computer scientists we are abstract thinkers. That is one of the many reasons that math is taught to us. It gears us up for the abstractions that are on the horizon. By learning new programming languages we learn on how to approach a problem on a whole new level. It can also help us identify improvements that can be made in our process. Just look at what has happened in the Java world, and the .net world. Seems like we have a constant trickle of Java tools being ported over to the .net world.
These are just a couple of things you can do to improve your craft. But keep in mind development is like a trade. When you first start out we are all just apprentices, we learn from others on the best ways to approch problems, and code. We perfect our craft and hopefully one day we will be masters at our trade.