휼륭한 개발자가 되려면? – 기본에 충실해야 한다

By | 2007년 12월 3일

얼마전 MS가 주관한 ‘2007 데브데이’에서 한국MS 최고기술임원인 김명호 박사님께서 하신 기조연설이 화제에 많이 오르고 있습니다. 참석한 개발자들에게 “공부와 변화를 두려워해서는 안된다“, “이 길이 아니다 싶으면 차라리 다른 일을 하라”라고 단호히 얘기하셨다죠.

그 김명호 박사님은 지난 달 발간된 저희 책 “컴퓨터 프로그램의 구조와 해석(SICP)”과 상당한 인연을 갖고 계십니다.
동아대 교수로 재직하셨을 적에 SICP로 강의를 하셨고, 그때 300여 명의 학생들이 강의실 계단까지 꽉 차서 강의를 들었다는 얘기는 아직도 동료, 제자들 사이에 회자되고 있을 정도라 하네요. 저희도 SICP 발간을 결정한 다음 가장 먼저 조언을 요청한 분이 김명호 박사님이고, 번역자이신 김재우 님도 김명호 박사님께서 소개시켜 주셨죠.

이번 MS의 데브데이에서 김명호 박사님께서 연설에서 얘기하신 내용 중 “기본에 충실해야 한다…… 기본지식을 갖추고 있다면 새로운 지식을 습득하는 것에 두려움이 없다.”는 내용은 프로그래머를 키우는 마법의 책(Wizard Book)이라 불리는 SICP에서 추구하는 철학과 일맥상통하는 듯합니다.

사용자 삽입 이미지

기조연설에 나선 김명호 박사님, 언제 뵈도 열정에 가득찬 젊은 모습 그대로입니다. 사진은 서명덕 기자님께 요청해 받았습니다.


김명호 박사님께서 월간 마이크로소프트웨어 12월호에 SICP를 추천하는 글을 써주셨습니다. 아래에 전문을 올리니 어떤 책이고 왜 읽어야 하는지 판단하는 데 도움이 되었으면 합니다.  ^^

제가 이 책을 처음 대한 것은 20여 년 전 KAIST 길남 박사님의 개가식 서재에서였는데 아직도 그 때의 감동과 충격이 생생하게 남아 있습니다. 개발자의 관심을 끌기 위해 수많은 책들이 출현하고 사라져 갔지만 적어도 이 책만큼은 아직도 저의 최고의 애독서이며, 아직도 저 스스로를 기술임원이니 소프트웨어 아키텍트니 하는 불편한 타이틀보다 개발자 마인드를 가진 전문인임을 자랑스럽게 생각하도록 하는 원동력이 되고 있습니다. 대학교에서 후학을 지도하던 시절, 강의실 복도를 메우며 의자도 없이 일어서서 혹은 벽에 기대어 제 강의를 청강하던 학생들은 지금도 그 때의 강의를 떠올리며 저를 기억에 남는 스승으로 생각하고 있습니다. 그러나 정작 저는 저의 열정이나 교수법보다 더 좋았던 것이 바로 이 책 때문이었음을 고백하지 않을 수 없습니다.

이 책의 대표적인 특징은 프로그래밍의 기본기와 기초체력을 충실히 다질 수 있는 필수 영양소 위주로 구성되어 있다는 것입니다. 대다수의 소위 프로그래밍 서적이 특정 언어의 문법이나 열심히 소개하고 예제 몇 개를 보여주는 것에 그치고 있는데 이는 잡식과 편식으로 허약해진 개발습관을 조장하는 것에 지나지 않습니다. 제대로 된 프로그래밍 교재라면 프로그래밍 자체를 가르쳐야 합니다. 프로그래밍이란 결국은 문제 해결을 의미합니다. 그런 의미에서 프로그래밍 교재와 프로그래밍 언어 교재는 엄격히 구별되어야 합니다. 감히 단언하건대 이 책에서 소개된 모든 문제나 예제를 스스로 가장 자주 사용하는 언어로 충실하게 표현할 수 없다면 불행하게도 그 독자는 문제 해결 능력도 언어에 대한 전문성도 부족한 어설픈 개발자입니다.

특정 언어에 구애 받지 않고 자유롭게 문제의 해법을 사고할 수 있도록 이 책에서는 Scheme이라는 언어를 사용하고 있습니다. 저의 경험상 이 언어를 학습하는 비용은 거의 0에 가깝습니다. 물론 어떤 언어이든 그 언어의 특이한 기능, 관용적 표현 및 라이브러리를 모두 학습하는 것은 시간이 걸리는 일이지만 적어도 이 책을 학습하는 동안에는 그런 일이 거의 필요 없습니다. 그 결과 이 책은 문제 해결에만 거의 대부분의 사고를 집중하고 폭넓은 분야에서의 여러 문제를 위한 다양한 해법을 학습하는 데 대부분의 시간을 활용할 수 있습니다.

그러나 무엇보다도 이 책의 가장 큰 매력은 프로그래밍이 즐겁다는 것을 확실하게 증명하고 있다는 점입니다. 이 책에서 소개되는 문제들과 그 해결 방법은 비록 처음에는 어려워 보일지 몰라도 결코 따분하거나 재미없지 않습니다. 오히려 이 책을 학습하다 보면 프로그래밍이 기쁘고 즐거운 일이라는 것을 깨닫는 것에 그리 오랜 시간이 걸리지 않습니다. 더구나 지금처럼 Scheme 인터프리터가 다양하고 폭넓게 보급되어 있고, MIT의 오픈코스웨어를 통해 강의 동영상까지 제공되고 있는 것은 어쩌면 저보다 20여 년 후에 이 책을 대하는 독자 여러분의 행운이라 생각됩니다.

어휘와 토씨 하나에 이르기까지 최선의 노력을 기울인 역자들의 노고는 이 책을 원서 이상의 가치를 가진 책으로 거듭나게 하였음을 확신합니다.

ps. 원문은 추천글 말미에 한 문장이 더 있습니다만, 저희에겐 낯 간지러운 얘기라 생략 ^^

사용자 삽입 이미지

김명호 박사님의 데브데이 발표 자료 일부입니다. 책 리스트 첫 머리를 '컴퓨터 프로그램의 구조와 해석(Structure and Interpretation of Computer Programs)'이 차지하고 있습니다. 두 번째 책 The Pactice of Programming은 '프로그래밍 수련법'이란 제목으로 조만간(?) 인사이트에서 발간 예정 ^^

.

2 thoughts on “휼륭한 개발자가 되려면? – 기본에 충실해야 한다

  1. serahero

    데브데이 세미나를 듣고 바로 산 책이네요. 아 그놈의 기본..ㅜ_ㅜ.

    Reply
  2. 열이아빠

    낯간지러울만한 이야기는 아닌것 같은데요..ㅎㅎ
    추천의 글을 보니 바로 받아보고 싶은 욕심이…
    미루어놓은일 끝내면 바로 질러야겠네요.

    Reply

댓글 남기기