I tend to follow a very pragmatic approach to software development, so expect the list to contain practical advices on how to improve your overall development process.
Care about the code you write. Your goal should be to write code that works (Of course), that it is clean and readable. Leave one of the tree and you’re going to regret the day you choose to become a developer. An high quality codebase is going to improve both the quality of your work and your productivity.
Use the right tool for your job. When you start a new project spend some time to understand what is the best tool you can use. Do I really have to tell you why it is so important?
Use source control. It should be obvious, but it is better to be safe than sorry and be sure that you use it. Be aware that Dropbox (I saw someone using it) does not count as source control. You should use git or mercurial. Subversion is better than not using any source control system, but why would you use it when better alternatives are available?
Automate everything. Is there something that your computer can do instead of you? Have it do it! It is way better than you at building your project, running tests and producing reports. If you think that your effort is required to do any of these tasks I bet that you are doing them wrong. Instead of wasting your time doing repetitive tasks automate them and build new stuffs or just have more fun!
Keep track of bugs and get rid of them. You should always know what is not working. And, since you don’t want to deliver something broken, you either have to fix it or get rid of it.
Work on what you are supposed to deliver, one bite at time. Set up a kanban board, follow its (very few) rules and get the work done. It’s easier to get things done if you finish what you started before switching to something else.
Keep yourself updated. Once in a while check Hacker News and reddit programming to get some fresh news. I always find amazing things linked there. I also follow other coders on twitter. Be aware that is may be addicting, so you really need to find the right balance.
Read books for coders. For a list of the readings I recommend you should keep an eye on my book reviews. However, don’t forget to read also something non technical. No matter how much you like coding, there is life outside programming and make sure you are not missing it.
Start a coding blog. I write mine mainly because it is fun. Apart from that it gives me the (much needed) chance to practice my writing, to share with others the things I discover and to get some feedbacks (Please add a comment saying what I missed in this checklist).
If you already do all these things you are great and you are ready for some bonus tips:
Free Yourself From the Tyranny of Null. You don’t want to waste days and days debugging a nasty
Do an Xtreme Makeover to your legacy codebase.
Don’t be proud if you can’t understand the code you wrote an year ago.
Don’t blindly trust the design decision you find in famous libraries. For instance, check what is wrong with the Java core APIs.
What do you think about my checklist? What do you have in yours? Feel free to share your tips in the comments.