Don't document bad code - rewrite it.
Good code is its own best documentation. As you're about to add a comment, ask yourself, "How can I improve the code so that this comment isn't needed?" Improve the code and then document it to make it even clearer.
We have a rule that if you check in code, you have to maintain it. So I mostly code on the side. I don't check in code anymore.
Even if you aren't in doubt, consider the mental welfare of the person who has to maintain the code after you, and who will probably put parens in the wrong place.
Some of these isolated applications that sit on one machine are a million lines of code. How do you deal with that? Most people have no way to wrap their head around it.
No matter what, the way to learn to program is to write code and rewrite it and see it used and rewrite again. Reading other people's code is invaluable as well.
Personally, I look forward to better tools for analyzing C++ source code.
I basically wrote the code and the specs and documentation for how the client and server talked to each other.
Good code is its own best documentation.