If you are explaining how your code works, shouldn't you be rewriting it so it is obvious rather than adding comments?
I don't know about you but I go after people in open source projects I help manage who write comments like that. Such comments add no value collaboration and indeed they get in the way of debugging more than they help. Folks debugging shouldn't be debugging based on comments but rather based on code.
But with clear code, comments are still helpful if they are used to describe difficult design decisions, or flag issues the developer sees down the road. "This is a kludge" is a much more helpful comment than "looping through an array of invoice lines so we know what to print." The first draws the developer's attention to the fact that an area of code may be unusually troublesome, while the second may be out of date, may be wrong, or may otherwise distract from debugging.
Of course there are function header comments, etc, but those don't really need to be under discussion.
You are right about the code needing to talk to you, but if you see comments as a way of explaining what your code does, then it's both a distraction to the next guy and a crutch for you.
Edit: I think this shows the point of the question and why the trivial spoon-fed answers are likely to be ones I would find inadequate.
Edit2: So the way I read your answer is "programmer just wants to get things done and doesn't mind writing non-clear code to do it, explaining it with comments. Suitable for a maintenance programming role but may in time grow into others."
I don't know about you but I go after people in open source projects I help manage who write comments like that. Such comments add no value collaboration and indeed they get in the way of debugging more than they help. Folks debugging shouldn't be debugging based on comments but rather based on code.
But with clear code, comments are still helpful if they are used to describe difficult design decisions, or flag issues the developer sees down the road. "This is a kludge" is a much more helpful comment than "looping through an array of invoice lines so we know what to print." The first draws the developer's attention to the fact that an area of code may be unusually troublesome, while the second may be out of date, may be wrong, or may otherwise distract from debugging.
Of course there are function header comments, etc, but those don't really need to be under discussion.
You are right about the code needing to talk to you, but if you see comments as a way of explaining what your code does, then it's both a distraction to the next guy and a crutch for you.
Edit: I think this shows the point of the question and why the trivial spoon-fed answers are likely to be ones I would find inadequate.
Edit2: So the way I read your answer is "programmer just wants to get things done and doesn't mind writing non-clear code to do it, explaining it with comments. Suitable for a maintenance programming role but may in time grow into others."