A fear not mentioned directly in this post that definitely makes you a worse programmer is fear of (perceived) individual failure. I've dealt with (usually junior, but not always) programmers who shied away from difficult tasks or complex parts of a codebase. It seemed like they were afraid of failing and being seen failing, and preferred to select tasks they knew they could handle. A natural outcome of this is that you end up with big important parts of your codebase that are only understood by a handful of people, because they're scary. The fact that we had tons of automated tests didn't fix this.
You can partly address this by trying to make sure every part of your codebase is easy to understand, but sometimes your code is just going to be complex. That becomes an education problem, you have to work with these developers and coax them into confronting difficult chunks of code and help them develop the skills they need for understanding.
The same applies for development/debugging techniques. I walked one developer of equal seniority through using WinDbg once, because javascript he wrote was causing IE6 to crash. It was my first time doing it, so the role I had to play was the "let's just try things and see if we can get anywhere, there's no harm in failing" facilitator. Better to try something new than to give up. We didn't come away from the exercise with clear answers, but we had learned some useful information in the process by exploring.
You can partly address this by trying to make sure every part of your codebase is easy to understand, but sometimes your code is just going to be complex. That becomes an education problem, you have to work with these developers and coax them into confronting difficult chunks of code and help them develop the skills they need for understanding.
The same applies for development/debugging techniques. I walked one developer of equal seniority through using WinDbg once, because javascript he wrote was causing IE6 to crash. It was my first time doing it, so the role I had to play was the "let's just try things and see if we can get anywhere, there's no harm in failing" facilitator. Better to try something new than to give up. We didn't come away from the exercise with clear answers, but we had learned some useful information in the process by exploring.