While I am not a programmer by profession (I am an electrical engineer by training), I read Robert Read's essay
How to be a Programmer: A Short, Comprehensive, and Personal Summary, by Robert Read with great interest.
His essay summarizes many of the less-technical issues
that anyone working in a "product development" environment should read. It is primarily focused on team relationships and dynamics that occur in these environment. While there is some programming specific information such as "How to Debug using a Log" (and I agree that debuggers can be overrated), the majority of topics are more along the lines of "How to deal with Difficult People", "How to Trade Off Time vs. Space", and "How to Tell People Things They Don't Want to Hear."
But the section I can't agree more with is "How to Debug by Splitting the Problem Space". This is more than a mantra for debugging software, this is a guide that can be used for solving all life's problems. Divide and conquer has proven itself historically, and will continue to prove itself as en excellent paradigm for (re)solving problems.
(Im)Personal Comments