Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

When I was managing programmers I sometimes warned them about being careful to distinguish between cleverness and wisdom. Never realized that Wittgenstein had made this remark.

In the context of programming, the best person on my team was wise, but he sometimes could not resist being clever to the detriment of the readability of the code. To me, clever code is the stuff you might find (admittedly these are extreme) on the The International Obfuscated C Code Contest. "Wise" code is code that does what it needs to do but is clear. The weakest person on a team should be able to read and understand (and maybe fix bugs in) this code.

We had one example where the person in question had just read about multiple inheritance in C++ and just could not resist the urge to use it in some key code that none of the rest of us understood at all! I made him rewrite it without multiple inheritance.



I can't help but think of a parallel between "wisdom vs cleverness" and "difficulty vs complexity". (from Rich Hickey's definition: https://paulrcook.com/blog/simple-made-easy)

Being clever rather than wise will push you to find those simple/elegant solutions that are not easy to understand or maintain. In reverse being wise rather than merely clever you will go with the boring or seemingly complex solution if it is easier for the team to understand and maintain.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: