How to be a Programmer

Robert L. Read, PhD: "This long essay attempts to summarize the non-technical things that I wish someone had explained to me at the beginning of my career as a professional programmer. It is primarily concerned with social situations and team relationships that occur in typical software development. I try to cover what I consider the essential, often non-techncial, skills of the beginning, intermediate and advanced programmer."

http://samizdat.mines.edu/howto/