Source of my problems: design issues 5% architecture constraints 5% language shortcomings 1% mental blocks 5% personal time management 4% personal energy 5% communication with others 75% I waste more time just trying to figure out what others are trying to say, sometimes in person and by voice, but mostly in writing. For most emails, I have to click "reply" or call back simply because what you're trying to tell me is…
Similarly, I tell people that I can count on one hand the number of times I've had a project fail (or nearly fail) because I or someone on the team couldn't open a database connection, or write to a file, or shrink an image, or what have you (it's happened, but very rarely, and usually because of some arcane weirdness or a truly incompetent person). Overwhelmingly, projects I've been involved in that failed or nearly…
Despite that, the most important training I have received is from taking the in-house courses on subjects like Interviewing, making decisions, being effective, basic management skills, etc. The one thing they have all had in common was that they taught (and stressed) better communication skills.
Seemingly simple, "soft" stuff like learning how to listen better has been more useful in my day to day work as a programmer than a technical graduate degree. Go figure!