What does this code do?
johndcook.com
johndcook.com
Commenting is great, but you need to know how the program is put using meaningful function and method names not only when they are declared, but also when they are called/passed.
I use comments when I've taken a non-obvious path with the code, and I explain why in comments. I think that is what comments are for.