This is one of the things that I hate most when I see it in someone else's code. I know what it means and why some people do it this way (what if I accidentally put '=' instead?). For me it's very much like when a child goes down the stairs counting the steps out loud.Anyway, here are my arguments against it:It disrupts the natural flow of reading the program code. We, humans, say if value is zero and not if zero is value.Modern compilers warn you when you have an assignment in your condition, or actually if your condition consists of just that assignment, which, yes, looks suspicious anywayYou shouldn't forget to put double '=' when you are comparing values if you are a programmer. You may as well forget to put ! when testing non-equality.
Doesn't if (0 == value) ... do more harm than good?
coding style
Ah, yes, Yoda conditionals  (If zero the value is, execute this code you must!).  I always point anyone who claims they're better at tools like lint(1).  This particular problem has been solved since the late 70s.  Most modern languages won't even compile this, as they refuse to coerce the result of the assignment to a boolean.As others have said, it certainly isn't a problem, but it does provoke a bit of cognitive dissonance.