good programmer

Why Good Programmers Are Lazy and Dumb

예전 내 멘토(그 당시에는 그냥 우리 파트의 장이었지만 생각해 보면 그때 부서의 선배들이 모두 멘토였다. 그 중에서도 지금 언급하는 이 분은 특히나 내겐 멘토같은 분이었다)가 했던 말이 있었다.

좋은 시스템 프로그래머가 되려면 게을러야 한다.

그때도 어렴풋이 의미를 이해했지만 어제 트위터에 올라온 글을 보니 그때 그 말이 기억난다.

그 분이 하셨던 말씀도 같은 요지였다. 사람이 적당히 게을러야지(혹은 어떤 면에서 게을러야지) 귀찮은 일들 특히나 머리를 쓸 일이 없이 손이나 발만 쓰는 반복적인 일을 귀찮아 하면 그런 일들을 좀 더 효율적으로 하기 위한 방법을 찾기 위해 머리를 쓴다고.

위 링크에서는 좋은 프로그래머는 lazy하고, dumb해야 한다고 한다. Lazy는 앞에서 말한 것과 같은 이유다. “Because only a lazy programmer will avoid writing monotonous, repetitive code - thus avoiding redundancy, the enemy of software maintenance and flexible refactoring”
Dumb은 다소 의외일지 모르지만 겸손해야 한다는 것으로 해석하면 된다. 자신을 “Smart"하다고 생각하는 순간 더 이상 a) 배우기를 멈추고 b) 문제를 제대로 보지 못하고 선입견을 갖게 된다는 점이다.