Be critical with your code. And sometimes, yourself.
There is a difference between saying “an idiot wrote this code” and “this code is crap”. The comic is the latter. On purpose, I presume. Attacking the author is unlikely to have any benefits, but it should be possible to strongly criticize the code itself. In reality, many authors can’t separate themselves from their work, but the ability to do so is a valuable asset.
Left to themselves, most people have a tremendous ability to ignore their flaws, and it hampers their growth. A bit of shame is often a positive motivation. I am ashamed of a lot of code I wrote last year. I have reasons why it is the way it is, some of which are defensible, but some are just “WTF was I thinking?” If you don’t have nagging bits of guilt about your recent body of work, it might well be a benefit for someone to point out problems in terms that break through your defenses.
I would be happy if someone tore into everything I wrote for the Oculus Mobile SDK. I’m sure most of it would be just me nodding my head and agreeing, but I bet I would learn something from it, and it would influence my future work.
- John Carmack - from Disqus