[ 프로그래머의 자기 수련 - 서적 ]
◆Programming Pearls, Bentley, Jon Louis
실질적인 코드(C, C++)와 함께 알고리즘 개선, 코드 최적화 등을 다룬다. CACM에 연재됐던 것을 모으고 좀더 덧붙인 것이다. 현재 프로젝트에서 알고리즘이나 자료 구조에서 문제가 생기면 일단 마음을 차분히 가라앉히고 조용한 곳에서 이 책을 읽어 보라.
◆Structure and Interpretation of Computer Programs, Abelson, Harold , et al
미국 MIT 대학에서 10년이 넘도록 입문 코스용 교과서로 사용되고 있는 유명한 고전이다. 비록 수년이 흘렀고, Scheme이라는 그다지 대중적이지 못한 언어를 사용했지만, 이 책은 여전히 고전으로서 가치가 빛나고 있다. 세월이 가도 변치 않을 프로그래밍의 근본 원리 전달을 목적으로 집필됐기 때문일 것이다. 이 책은 겉 표지에 마법사 그림이 있어서 마법사 책이라고 불리며, 에릭 레이먼드의 해커 사전에도 등재돼 있다.
◆Design Patterns, Gamma, Erich, et al.
하나의 디자인 패턴은 특정한 종류의 문제를 해결하는, 프로그래밍 언어보다는 좀더 추상적인 차원에서 일반적인 방법을 서술한다. 저자들은 "네 명의 동지들(Gang of Four)"로 더 알려져 있다. 국내 서점에서도 바닥이 날 정도로 잘 팔리는 베스트 셀러이다.
◆A Pattern Language : Towns, Buildings, Construction, Alexander Christopher
패턴 언어는 원래 건축학에서 온 개념이다. 건물을 짓는 것과 소프트웨어를 만드는 것(영어로는 모두 build라고 한다) 간에는 상당한 유사점이 있다. 디자인 패턴을 본 사람이라면 이 개념의 원류를 공부해 보는 것이 매우 유익할 것이다. 이 책과 함께 많이 읽히는 "Timeless Way of Building" 은 좀더 철학적(노장사상과 관계가 깊다)이고 사변적이다. 이것을 읽는다면 세상을 보는 관점이 바뀔 것이다. 흔히 알렉산더의 이론에 대한 반대로 실증적인 결과와 예가 없다는 것인데, 그의 "The Production of Houses"를 꼭 읽어보길 권한다. 필자는 이 책에서 프로젝트 관리와 적응적 개발(adaptive developement)등의 가능성을 발견했다.
◆How Buildings Learn : What Happens After They"re Built, Brand, Stewart
◆The Mythical Man-Month : Essays on Software Engineering, Brooks, Frederick
더 이상 설명할 필요가 없는 책이다. 진행 중인 프로젝트 팀에 더 많은 인원을 쏟아 부으면 오히려 제품출시가 더욱 늦어진다는 점을 밝힌 것으로 유명하다. 소프트웨어 공학에 관심이 없거나 기반 지식이 전무한 사람도 읽어볼 만한 책이다.
◆Code Complete, McConnell, Steve
소프트웨어 구축 과정에 관한한 거의 모든 사항을 "코드 중심으로" 모아둔 집적체다. 필자는 아직까지 이 주제를 다루면서 이 정도로 포괄적이면서 동시에 가치있는 책을 보지 못했다. 특히 33장의 참고자료는 더 많은 자료를 원하는 사람에게 유용하다.
◆How to Solve It, Polya, George
문제 해결에 관한 한 최고의 베스트 셀러다. 한글 번역판이 있는 데, 국내에서 이 책의 가치가 제대로 평가되지 못하고 수학 시험 준비 서전으로 분류되고 있는 점이 아쉽다. 비단 수학뿐만 아니라 거의 모든 "문제 해결"이라고 할 만한 것(프로그래밍으로 포함)에 대해 건강한 경험적 가이드라인(휴리틱스)을 제시하는 책으로 교육적 가치도 높다. 이 책을 공부하고("읽고"가 아니라) 나면 한층 똑똑해진 자신을 발견할 수 있다.
◆Godel, Escher, Bach : An Eternal Golden Braid, Hofstadter, Dougl as R.
GEB 라고 불리는 이 책은, 저자 호프슈테더 교수에게 퓰리처상을 안겨줬다. 아마 컴퓨터 관련 직종뿐만 아니라 자연과학, 철학 쪽에서까지 널리 읽히는 인기 서적이 아닐까 한다. 수학의 괴델과, 회화의 에셔, 음악의 바흐 작품을 비교하며 공톰을 찾는다. 전산학의 시원이라 할 수 있는 튜링 컴퓨터에 대한 설명도 있다.
◆Computer Architecture : A Quantitative Approach, Patterson, David A., et al.
전문 프로그래머라면 하드웨어적인 지식도 절대 놓쳐서는 안된다 이러한 지식을 아는 사람과 그렇지 못한 사람의 프로그래밍 능력과 몸값은 엄청난 차이가 있다. 컴퓨터 아키텍처에 관한 한 최고의 양서로 평가받는 이 책은 학부생이나 평범한 프로그래머들이 보기엔 다소 난해할 수 있다. 그럴 경우 같은 저자의 "Computer Organization and Design"을 보는 것이 좋다.
◆Elements of Style, Strunk, William and E.B.White
영미권에서 작문 관련 서적으로 가장 많이 팔린 책이다. 브라이언 커니건과 플로거가 쓴 "The Elements of Programming Style"은 이 책의 제목을 흉내낸 것이다. 영미인과 문법이나 철자법 등에 대한 논쟁을 하다가도 "스트렁크와 화이트의 책에 따르면"이라는 한마디면 종지부를 맺을 수 있을 정도로 권위적인 책이다. 특히 5장 스타일에 대한 가이드는 기술적 문서를 작성할 때는 물론이고 프로그래밍을 할 때에도 참고가 될 것이다.
◆The Psychology of Computer Programming, Weinberg, Gerald M.
이 책은 에릭 레이먼드가 썼던 "성당과 시장"에서 비자아적 프로그래머(egoless programmer)에 관한 언급으로 국내에 많이 알려졌지만, 사실 영미권에서는 이미 베스트 셀러의 반열에 오른 지 몇 십 녀 됐다. 프로그래밍을 인간활동의 하나로 인식하고 심리학적인 접근을 통해 새로운 분야를 세운 기념비적인 책이다. 아직까지도 ACM이나 IEEE회원들이 가장 많이 구입하는 책 중 하나이며, 최근 실버 기념판이 출간되었다.
◆ACM Turing Award Lectures : The First Twenty Years : 1966 to 1985
< Reference >
-From Microsoft Magazine.
'[ IT Column ] > Self Trainning' 카테고리의 다른 글
김형곤, “개발툴로 매출 200억, 신뢰와 자부심이 힘” (2) | 2011.06.27 |
---|---|
김장중, “지금 학생이라면 창업하지 않았다” (0) | 2011.05.16 |
권영범, 그는 왜 CTO로 돌아왔나 (0) | 2011.05.16 |
개발자를 위한 글쓰기 - 독서의 지겨움 (2) | 2011.03.11 |
작은 아이디어가 만들어낸 개발의 즐거움 (0) | 2011.03.11 |