Maybe take a look at The Passionate Programmer by Chad Fowler... quoting from the webpage:
In most cases, remarkable careers don’t come by chance. They require thought, intention, action, and a willingness to change course when you’ve made mistakes. Most of us have been stumbling around letting our careers take us where they may. It’s time to take control.