There is no way to better state this…. :)

Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. By writing very complex code, you’ll approach your ”cleverness level”, and be unable to move forward, much less get anyone else to take it ownership.

I take pride in what I call “readable even after an all-nighter code”, which, as the name implies, can be understood even when you’ve been coding all night long.

Related post: Two kinds of software challenges

Original Source: