Google has an interesting guide on how to become a successful software engineer.