숙련자와 초짜의 차이

[Signal vs. Noise 에서 스크랩 –][1] Christopher Alexander on the difference between a fifty-year-old carpenter and a novice

건축이나 모터싸이클 수리 같은 _아날로그 시대부터의 전통_이 있는 분야가 컴퓨터 공학의 프로그래밍 쪽의 메타포로 자주 사용되는데1 그 중 자주 인용되는 크리스토퍼 알렉산더의 “A Pattern Language"에서 따온 부분이 37 Signals에 있더라.

Along the way, he compares the work of a fifty-year-old carpenter with the work of a novice. The difference: The experienced craftsman plans less because he has learned to do things in a way that lets him make small mistakes. This gives his work “unconcerned simplicity.”

숙련된 목수는 조금만 계획한다 — 왜냐하면 일 자체를 거의 실수하지 않는 방향으로 하는 법을 알기 때문에.

이게 바로 “unconcerned simplicity” 다.2

초보/초심자들이 일 — 예를 들어 프로그래밍이라거나 :p — 을 할 때 계획을 세우려고 하는 것은 “실수 했을 때 바로 잡지 못할 까 두려워하기 때문” 이라는 것. 지금의 내게 딱 맞아 떨어지는 느낌 -_-;;

이렇게 하면 잘 안될지도 모르는데, 저렇게 하면 나중에 고칠 수 없을텐데?하면서 시간을 소모하고 있는 것. 숙련된(장인?) 목수는 일단 일을 시작해도 나중에 삽질한걸 덮을 수 있다는걸 알기 때문에 대범하게 작업할 수 있고, 나같은 초짜들은…  Orz

뭐 별 수 있나, 더 경험하고, 더 생각하고, 더 공부하는 수밖에…


  1. 스티브 맥코넬의 코드 컴플릿이나 많은 패턴 관련된 책, 프로그래밍 에세이에서 활용한다. ↩︎

  2. 번역을 하고 싶은데 마땅한 한국어 표현을 모르겠다. “태연한” 이라고 하기엔 좀 그렇고 무의식적인? 신경쓰지 않아도 자연스럽게 나오는? 정도의 느낌인데 무슨 단어가 좋을지는 내겐 너무 어렵군. ↩︎