This isn't to knock comments in general; they're indispensible. But if code is well-written, then it's usually easier to just read and code than the English comments in understanding a program. Comments are generally reserved for the few instances when the code is necessarily so confusing, or an edge case is so non-obvious, that an English explanation is appropriate. And those cases are relatively rare; there is a large cognitive cost in process-switching between code and English, so whenever possible you should refactor code instead of adding a comment.
In place of "comments", I would suggest the other part of good programming is is automation. It should be easy to kick off unit tests, integration tests, and runs on sample data. A proper shell script will show exactly how to run the code, and unit tests show how to use all the little pieces. And perhaps the biggest win is that you can guarantee that all your code, tests and run scripts are up to date and compatible with each other. The dark side of comments is that there is no way to check whether they are up to date.