해커와 화가...

@codemaru · August 29, 2006 · 9 min read

          md 0

이번에 강컴 서평왕 마일리지로 구입한 책 중에 하나 입니다. 이전부터 좋다는 이야기는 많이 들었지만 그다지 끌리지 않아서 사지 않았었죠. 그런데 알고 봤더니 저자가 폴 그레이엄 이더군요. 딱히 다른 살만한 책도 없어서 구입했습니다. 결론을 먼저 말하면 책 내용에는 정말 대 만족입니다. ㅎㅎ~ 책 표지에 있는 이단적인 통찰과 현실적인 지혜라는 말이 정말 딱 들어 맞는 그런 책이었습니다.

이 책을 번역하신 분은 꽤나 유명하신 임백준님입니다. 여러 권의 소프트웨어 관련 책을 쓰신 분이죠. 그런데 솔직히 번역에 대해서는 다소 불만입니다. 제가 보기엔 번역 자체에 문제가 있었다기 보다는 원 텍스트 자체가 다소 모호할 수 있었다는 생각도 듭니다(원 텍스트를 읽어보지 않아서 뭐라고 말 할 수가 없겠네요). 불만스러운 이유는 한번에 이해할 수 없는 문장이 많다는 점 입니다. 이러한 문장들이 모여서 책 읽는 속도를 심하게 저하시킨다는 생각이 들었습니다.

레오나르도는 그림이 엄청난 무게의 탐사를 감당할 수 있도록 만들기 위해서 스케치라는 수단을 발명했다.

"엄청난 무게의 탐사를 감당할 수 있도록" 이라고 했는데, 이 표현이 한번에 이해가 되시나요? 전 정말 한번엔 이해가 되지 않더군요. 정말 잘 쓰이지 않는 표현들을 묶어서 사용함으로써 독자를 방해하는 듯한 느낌입니다. 문맥적으론 레오나르도는 그림의 수정을 쉽게 하기 위해서 스케치라는 수단을 발명했다 라고 해도 무방할 것 같습니다.

15세기의 플로렌스에서는 어떤 특별한 일이 벌어지고 있었다. 그런 일이 지금은 일어나지 않기 때문이다. 레오나르도와 미켈란젤로가 날 때부터 가지고 있었던 재능이 뛰어났다고 하더라도, 밀란에서 태어난 사람들 중에서도 그에 버금가는 재능을 가지고 있는 사람이 있었다고 가정하는 것이 옳다. 그렇다면 도대체 밀란에서 태어난 레오나르도에게는 무슨 일이 일어난 것일까?

위 문단도 꽤나 이해하기가 힘듭니다. 처음에는 이해가 되지 않더군요. 옮겨 적고 나니 무슨 말인지는 알겠지만 그래도 문장들 사이에 순서나 구조가 어색한 감은 지울 수 없습니다.

대학 시절에 어떤 문제를 풀 때에는 그것을 우선 종이 위에서 완전하게 푼 다음 컴퓨터 앞에 앉아야 한다고 배웠다. 하지만 나는 프로그래밍을 그런 식으로 하지 않았다. 그 당시 나는 분명히 몇 장의 종이보다는 컴퓨터 앞에 앉아서 프로그래밍하는 것을 더 즐겼다. 또 전체적인 프로그램을 미리 신중하게 적어서 내가 생각하는 방향이 옳은지 여부를 확인하기 전에 조각난 코드부터 대책 없이 늘어놓은 다음 그것의 모양을 조금씩 잡아 나가는 방법으로 프로그래밍을 했다.

...

나는 오랫동안 이런 프로그래밍 방식에 대해서 남몰래 부끄러워했다. 하지만 내가 그 당시에 화가나 건축가 같은 다른 창조자들이 일하는 방식을 알았더라면, 내가 프로그래밍하는 방식을 지칭하는 특별한 이름이 있다는 사실을 알 수 있었을 것이다. 그 이름은 바로 '스케치'다. 적어도 내가 보기에 대학 시절에 배운 프로그래밍 방식은 전부 잘못되었다. 소설가, 화가, 그리고 건축가의 작업이 그런 것처럼 프로그램이란 전체 모습을 미리 알 수 있는 것이 아니라 작성해 나가면서 이해되는 존재다.

가장 인상 깊었던 부분 이었습니다. 솔직히 저 또한 저러한 느낌을 많이 가졌기 때문에 더욱 인상 깊었는지도 모르겠네요. 학교 교육이 항상 옳은 것은 아니라는 생각이 많이 듭니다. 더욱이 다수가 옳다고 주장하는 방법이 항상 최상이 아니라는 점도 책을 읽으면서 많이 느꼈습니다.

누산기를 생성하는 함수를 작성하고자 한다. 그것은 숫자 n을 받아들이고, 다른 수 i를 받아들여서 n을 i만큼 증가 시킨 값을 리턴 하는 함수를 리턴 한다.

위와 같은 코드를 lisp의 장점으로 작성하는 샘플이 책 중간에 나옵니다. 몇 년간을 프로그래머로 일했음에도 전 저 말을 한번에 이해하지 못했습니다. 더 심각한 건 코드 조각을 보고도 도대체 무슨 일을 하는 코드인지를 알 수 없었다는 점이죠. 그냥 그러려니 하고 넘어가려고 했는데, 끝 부분에 C/C++/자바/VB는 이 문제를 해결하는데 전혀 사용할 수 없다는 이야기가 나옵니다. 발끈해서 파이썬 샘플을 돌려보고 나서야 무슨 코드인지를 이해하겠더군요. 함수를 리턴 한다라는 말이 핵심이더군요. 사고가 언어에 한정된다는 느낌을 많이 받았습니다.

단순한 컴퓨터 책으로 치부하기에는 그 내용들이 너무도 아까운 게 많습니다. "부자가 되는 법"이라는 챕터를 읽으면 이 책이 재테크 책인가? 하는 의문이 들기도 합니다. 예전 시골의사의 부자 경제학이란 책에서 말한 투자 수익률을 뛰어넘는 부가 가치를 창출하는 실전적인 방법을 소개하고 있습니다. 6, 7 챕터는 정말 흥미롭게 읽었습니다.

책 내용이 그렇게 쉽지는 않습니다. 솔직히 주석으로 나열된 부분을 직접 읽지 않으면 한번에 그 문장의 뜻을 이해하기가 힘듭니다. 문화적 차이도 있고, 배경 지식의 차이도 큰 것 같은 생각이 들더군요. 주석을 책 마지막에 배치시킨 것 또한 불만입니다. 처음엔 참고 문헌이 뒤에 있는 줄 알고 보지도 않았으나, 다 읽고 나니 자세한 해설이 있더군요. 책 밑에 배치시키는 게 더 좋을 것 같습니다.

@codemaru
돌아보니 좋은 날도 있었고, 나쁜 날도 있었다. 그런 나의 모든 소소한 일상과 배움을 기록한다. 여기에 기록된 모든 내용은 한 개인의 관점이고 의견이다. 내가 속한 조직과는 1도 상관이 없다.
(C) 2001 YoungJin Shin, 0일째 운영 중