So you want to be the best developer you can be? Warning - your career needs resemble those of a living plant more than that inert diploma sitting on your wall. Uncle Bob of Clean Coders, said that developers should spend upwards of 20 hours per week in “sharpening the saw”. I’ll let that sink in for a minute – that is half of your normal work week – on top of your real work. Now you know what you’re up against.
So here are my recommendations to anyone who wants to get better…
On Software Craftsmanship
You are paid to make decisions. One of the critical ones is how much money to spend on developing a chunk of logic. Be thoughtful about taking shortcuts because you are just pushing even bigger costs into the future. Those costs will be born by you, your colleagues, and your company. The trick is to "do the right thing" without over-engineering (over spending). Here are some great technical resources you should consider:
Design Patterns by Gamma and Beck
Refactoring by Fowler and Beck
Working Effectively with Legacy Code by Michael Feathers
Look on the Pragmatic Bookshelf for others
On Polyglot Programming
Make it your goal to learn a new programming language each year, even if you aren't going to use it in your job. It will change the way you think about problems.
On Agile Practices
If you want to find a way to efficiently deal with the unknown and constantly changing demands, you need to fully understand agile.
Phoenix Project by Kim et. al. (you will have a hard time putting this book down)
Pragmatic Programmer by Hunt and Thomas
Practices of an Agile Developer by Venkat Subramaniam
On Career Planning
Don't ignore your career. Don't drift along. Even if you don't have specific goals right now, you should read up on career planning - you'll get lots of ideas. A good place to start is
Passionate Programmer by Chad Fowler
On Learning via Blogs
Spend 20 minutes each day trying to keep up with the flood of great insights and ideas by reading blogs. Here are some of my favorites.
Martin Fowler Bliki (design and abstractions)
Robert Martin’s 8th Light (software process and practices)
Jeff Atwood’s Coding Horror (hard core rubber meets the road advice)
Petri Kainulainen (software testing)
Yegor Bugayenko (software rebel and contrarian – this will get you out of your rut)
Java at DZone (great for keeping up with the latest)
Scot Hanselman’s Computer Zen (ignore the .NET stuff but lap up all the rest)
Ted Neward’s Interoperability Happens (general software, product, practices)
On Recharging Your Creative Batteries at Conferences
Nothing like mingling with your peers to recharge your batteries and to get exposed to new ideas.
Go to all the conferences that you can fit/afford.
No Fluff Just Stuff in various cities across the country including San Diego (one of my favorite and very affordable)
That's the five minute recommendation. Good luck. Grow. Prosper.