Thoughts2014.01.07 09:41

개발자들은 생각보다 많은 책을 읽습니다. 직업상 그래야 할 일이 많기 때문이죠. 그런데 그런 책만 보다 보면 지칠 때가 있습니다. 개발자도 사람인데 항상 딱딱한 프로그래밍 관련서만 볼 수 있나요. 그래서 오늘은 좀 가벼운 마음으로 읽을 수 있는 책들 몇 가지를 소개하려고 합니다. 개인적으로, 이 책들은 저에게 참 많은 자극을 주었던 책들이기도 합니다. 


1. 아웃라이어 (김영사) 


말콤 글래드웰의 역작 "아웃라이어"는 왜 어떤 사람은 평범하게 살아가고, 어떤 사람은 탁월한 인생을 사는지를 알려줍니다. 그것도 풍부한 예제와 함께요. 이 책은 일만시간의 법칙, 그러니까 누구든 10,000시간 동안 의도적인 수련(deliberate practice)를 거듭하면 전문가가 될 수 있다는 법칙으로 잘 알려져 있습니다만, 사실 그것보다 더 많은 이야기를 담고 있습니다. 노벨상 수상과 출신 대학 간에는 유의미한 통계적 관련성이 없다던가, 어린 아이들을 상대평가하는 것이 아무 의미가 없다던가, 전문성에 소통이 굉장히 중요한 팩터라던가 하는 것들이 그런 사례죠. 


그러나 역시 우리같이 전문가로서의 인생을 꿈꾸는 사람들에게는 '일만 시간의 법칙'이 매력적일 수 밖에 없겠어요. 인생을 조금씩이라도 개선하려고 의도적으로 노력하는 사람들에게, 대략 오년쯤의 시간이 흐르면 새로운 인생이 펼쳐질 수 있다는 것만큼 매력적인 메시지가 어디 있겠어요?


SEE ALSO: 10,000시간의 법칙 

SEE ALSO: 10,000시간의 법칙 (2)


2. 이소룡, 세계와 겨룬 영혼의 승부사 (김영사)


갑자기 웬 이소룡 타령이냐구요? 그러게 말이죠. (풉) 그러나 돌이켜보면 이소룡은 정당히 대접받을만한 가치가 있는 무술인입니다. 심지어 개발자에게까지 말이죠. 글래드웰의 기준으로 보면, 이소룡이야 말로 '아웃라이어'죠. 그의 인생은 온전히 무자비할 정도로 모든 것을 개선하려는 노력에 바쳐져 있습니다. 이런 인물을 만나기란 쉬운 일이 아니에요. 여러분 주변에 그런 노력으로 모든 것을 조금씩이라도 바꾸려는 사람이 있습니까? 그렇다면 여러분은 행운아입니다. 





SEE ALSO: 달인, 이소룡


3. 에릭 클랩튼: 음악으로 굴곡진 삶을 관통한 뮤지션의 자서전 (마음산책) 


에릭 클랩튼의 삶은 딱 한 가지 단어로 요약할 수 있습니다. 바로 음악이죠. 다소 예의없이 이야기하자면, 이 거장의 인생 가운데 중반부는 음악 말고는 완전히 개판이었어요. 그러나 그 인생이 후반부에 극적으로 바뀔 수 있었던 것은, 그가 절대로 포기하지 않았던 바로 그 음악 덕분입니다. 이 자서전을 보다 보면 흥미로운 대목을 여러 군데 발견할 수 있는데요. 특히 그가 처음에 기타 연습을 어떻게 시작했는지를 보면, 재미있는 통찰을 얻을 수 있습니다. 그것은 바로, 그가 지루할 정도로 반복적인 연습에 굉장히 많은 시간을 투자했다는 점이에요. 개발자 주변에도 이렇게 끔찍할정도로 지겹게 반복되는 무언가가 널려 있습니다. 그런 지루함을 인생을 바꿀 자극제로 삼을 방법은 없는 것일까요? 


SEE ALSO: 프로그래머를 위한 시간 관리 법칙 [1] [2] [3] [4] [5] [6] [7] [8]


4. CODE 코드: 하드웨어와 소프트웨어에 숨어있는 언어 (인사이트)


윈도 진영의 Guru 찰스 펫졸드가 저술한 이 책은, 프로그래머라면 한 번은 보고 넘어가야할 탁월한 교양서입니다. 아마 컴퓨터의 하드웨어와 소프트웨어를 다룬 책 가운데, 이 책처럼 쉽게 가벼운 마음으로 읽을 수 있는 책도 드물 거예요. 이 책은 우리 주변에 존재하는 다양한 '코드'들이 어떻게 탄생되었는지를 이야기해주고, 그 코드들이 어떤 수학적 근거 위에 탄생했으며, 어떻게 컴퓨터 안으로 자연스럽게 스며들게 되었는지를 알려줍니다. 그 과정이 전혀 흥미진진하게 느껴지지 않는다면, 여러분의 적성은 아마 컴퓨터가 아닐지도 모릅니다 (응?)


5. 넛지: 똑똑한 선택을 이끄는 힘 (리더스북)


이 책은 우리가 만드는 시스템이 사용자와 어떻게 상호작용하는 것이 바람직할 것인지를 일깨워줍니다. 어떻게 해야 최대한 사용자에게 유리한 선택을 불편하지 않게 알려줄 수 있을 것인가? 물론 이 책이 기술하는 영역은 개발자가 관심있어하는 영역과는 좀 다릅니다만, 우리가 하려는 일이 결국 세상에 좋은 일을 하려는 것이고보면, 어떻게든 사용자에게 좋은 일을 해 보자는 목적을 달성하기 위해서는 이 책이 말하는 메시지 처럼, 사용자가 똑똑한 선택을 할 수 있도록 하는 시스템을 구축하는 것이 바람직하겠다는 귀중한 통찰을 얻을 수 있습니다.



저작자 표시 비영리 변경 금지
신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

  1. 좋은 정보 잘 얻어 갑니다^^ㅎㅎ

    좋은 하루 되세요~

    2014.01.07 09:47 신고 [ ADDR : EDIT/ DEL : REPLY ]
  2. 마음에 치유와 여유를 가지는 것이 저도 좋다고 생각합니다. 그 중에서 Code 정말 좋은 책이죠 ^^
    한편으로 자기 개발서에 실망도 많이 했는데
    "성공한 사람의 인생은
    성공한 후에 포장되어
    평범한 사람을 망친다. "
    라는 글에 심하게 공감하기 때문에 심취만 안하면 될 듯 합니다. ^^

    좋은 글 언제나 감사합니다.

    2014.01.07 10:21 신고 [ ADDR : EDIT/ DEL : REPLY ]

Extremely Agile/General2010.10.20 10:04
어제 마이크로소프트에서 일하는 김창훈 박사를 만났습니다. 대전에 일이 있어서 들렀는데, 저는 바빠서 저녁식사 하는 장소에는 가질 못하고 일하고 있다가 잠깐 가서 얼굴만 보고 와야 했죠. 신세진 일이 있어서 다음에는 저녁을 사겠다는 (대체 언제가 될지는 모르지만) 말만 하고 돌아왔습니다. 그런데 마침 어제 인사이트의 신간 "CODE: 하드웨어와 소프트웨어에 숨어있는 언어"를 받았습니다. 마이크로소프트의 찰스 펫졸드가 지은 책이죠. 마이크로소프트에서 일하는 두 사람을 같은 날 만나는 드문 경험을 한 셈입니다.

어제 대화를 나누다가 모교의 컴퓨터공학과 학생들에 대해서 이야기를 잠깐 나누었는데, 교과 과정이 학생들을 올바르게 이끌어주지 못하는 것 같다는 이야기를 하더군요. KAIST의 학생들과 비교해 보면, 질문의 내용과 수준이 너무 차이가 난다는 말도 했습니다. 하드웨어와 소프트웨어 관계에 대해서도 깊은 이해가 없는 것 같다는 말도 했구요.

보통 컴퓨터공학이라고 하면, 하드웨어와 소프트웨어 전반을 아우르는 지식 체계를 말합니다. 하드웨어를 잘 모르고 소프트웨어를 논하는 것도 우습고, 소프트웨어를 잘 모르고 하드웨어를 논하는 것도 우스운 법이니 그 둘 사이의 균형을 잘 맞추어야 하는데, 그걸 체계적으로 정리하고 가르치는 것이 컴퓨터공학과에서 보통 하는 일이죠.

그런데 제가 학부에서 보낸 4년을 돌아보면, 저는 하드웨어에 대해 공부하는 것이 너무 재미가 없었어요. 사실 그렇잖아요. 소프트웨어가 거시적이라고 본다면 하드웨어에는 미시적인 구석이 있죠. 플립-플롭이나 AND-게이트 같은 자그마한 소자들을 이렇게 저렇게 엮어서 덧셈과 뺄셈을 구현하는 게 재미있었을 턱이 있나요. 소프트웨어의 세계에서는 덧셈과 뺄셈은 그냥 되는 건데.

물론 지금 돌아보면 말도 안되는 생각이죠. 거기다 하드웨어를 알면 할 수 있는 일들이 훨씬 많아집니다. 아두이노 패키지처럼 하드웨어와 소프트웨어를 잘 결합해서 사람들로 하여금 보다 창조적이고 재미있는 일을 할 수 있도록 이끄는 프로젝트를 보면, 확실히 하드웨어와 소프트웨어는 같이 배워야 하는 무엇이라는 생각이 들어요. 아이폰을 비롯한 스마트폰 광풍을 봐도 그렇구요. 표면적으로는 앱 생태계가 활성화되는 것 같지만, 사실 그 시장을 지배하는 건 아이폰이라는 하드웨어죠. 물론 Xcode나 안드로이드 SDK같은 걸출한 Abstraction이 없었다면 지금의 아이폰도 없었을테니, 하드웨어와 소프트웨어를 따로 떼놓고 생각하려는 시도는 정말로 무의미해요.



말이 좀 샜는데, 다시 제 학부 시절로 돌아가 보겠습니다. 제가 왜 하드웨어 수업이 재미없었는지의 이유를 곰곰히 생각해봤는데, 대체적으로 다음과 같이 요약해 볼 수 있더군요.

1. 하드웨어의 세계가 너무 미시적으로 느껴져서 답답했다
2. 소프트웨어와의 연결고리를 제대로 찾지 못했다
3. 교수님들이 무슨 소리를 하는 것인지 제대로 알아듣지 못했다

3은 제 자질문제이니 넘어가도록 하고, 보통은 1과 2를 잘 이해하지 못해서 재미가 없었던 것 같아요. 특히 중요한 문제는 2번인 것 같은데, 소프트웨어와의 연결고리를 제대로 찾지 못하면 대부분의 학생들은 그걸 어디다 써먹어야 할지 잘 알지 못해요. 그들이 실생활에서 보는 대부분의 하드웨어는 소프트웨어라는 인터페이스에 둘러싸여 있거든요. 요즘은 그 소프트웨어들이 보여주는 하드웨어 abstraction이 너무 우아해서, 마치 하드웨어라는 것이 세상에 존재하기나 했었느냐고 묻는 것 같이 보일 때도 있죠. (물론 그래도 아직 사람들은 컴퓨터를 구입할 때 메모리 용량, CPU 속도 같은 걸 따지긴 해요.)

CODE는 바로 그 연결고리, 그러니까 하드웨어와 소프트웨어 사이에 어떤 관계가 있는지를 보여주는 책입니다. 저처럼 하드웨어에 대해서는 도통 관심이 없는 삶을 살다가 '정말 그렇게 살아도 되는 걸까?'하는 질문을 하기 시작한 분들이나, 컴퓨터공학과에서 새로운 인생을 시작하게 된 학부 1학년생들, 아니면 이제 막 컴퓨터라는 것에 대해 관심을 갖기 시작한 분들에게 정말로 괜찮은 안내서가 되어줄 거라고 확신합니다. 워낙 쉽게 씌여졌기 때문에, 그저 컴퓨터에 대해 좀 더 알고 싶다는 분들에게도 좋은 책이 될거라 믿습니다.

저는 이 책의 첫 페이지를 넘기는 순간 무척 즐거웠는데, 다른 분들도 그 경험을 함께 나눌 수 있었으면 좋겠습니다.
신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

  1. 혹시 하드웨어 과목을 담당하는 교수님 탓 아닐까요? ㅎㅎ
    저도 하드웨어과 소프트웨어가 어떻게 연결되는지 지금도 잘 감이 안 오는데
    추천해주신 이 책 한 번 읽어보려고 합니다. 제가 해왔던 공부와 일도 그렇고 지금 하는 일도
    하드웨어하고는 좀 멀긴 하지만 공부는 언제 어떤 상황에서든 계속 해야 한다고 생각이 들어서요...

    2010.10.20 23:47 신고 [ ADDR : EDIT/ DEL : REPLY ]