SICP 공부에 도움이 되는 자료들

2007/12/14 16:29 | Posted by 너굴;
『컴퓨터 프로그램의 구조와 해석』을 공부하는 분들이 점점 늘어가나 봅니다.
지난 '애자일 회고' 제목  아이디어 요청에 좋은 의견을 내주셨던 낭만고양이 님께서는 이미 연습문제를 풀어보며 해답과 해설을 올리고 계시고, 만성피로 님께서도 연습문제를 Erlang으로 풀어 소스를 올리셨네요.
얼마 전, 역자이신 김재우 님께서 『컴퓨터 프로그램의 구조와 해석』을 공부할 때 도움이 될만한 자료들을 알려주셨습니다. 한번 볼까요?

가. 책에 나오는 코드
각 장에 있는 예제들을 돌려보려면, MIT에서 올려놓은 코드 파일 꾸러미에서 장별로 *support라는 이름이 붙어있는 파일 속의 코드가 꼭 있어야 한다고 합니다.
링크입니다. - http://mitpress.mit.edu/sicp/code/index.html (맨 아래에 한데 묶어 놓은 파일도 있습니다.)

나. SICP에 나오는 코드를 다른 언어로 옮겨쓰는 일을 하는 곳이라고 합니다.  
http://www.codepoetics.com/wiki/index.php?title=Topics:SICP_in_other_languages
들어가보니 C++부터 자바스크립트, 루비(Ruby), 루아(Lua), Erlang 등 참으로 다양하네요.

다. 버클리 대학의 강좌 영상과 MIT OpenCourseware 강의 노트
버클리 대학의 강좌입니다. http://webcast.berkeley.edu/course_details.php?seriesid=1906978454
(rm파일이니 RealPlayerReal Alternative를 설치하셔야겠네요.)

MIT 강의 노트는 차례가 조금 다르고, 다루는 내용도 훨씬 더 넓고 깊지만, 크게 도움이 된다고 합니다.
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-001Spring-2005/LectureNotes/index.htm

라. 한국어 동영상 강좌!
위의 자료들이 훌륭하긴 하지만 모두 영어라는 데에 압박감을 느끼실 분들이 계시리라 생각합니다. (동병상련 T_T) 이런 분들을 위해서 김재우 교수님께서 한국어 동영상 강좌!YouTube에 공개해주셨습니다. (현재 3장이 올라 있고, 강의 진도에 맞춰 그때 그때 올리시겠다고 하시네요.) 감사합니다. ^^

이올린에 북마크하기(0) 이올린에 추천하기(0)
미투데이로 한마디    트위터로 한마디

프로그래밍의 원리를 알려주는 책 - SICP

2007/10/22 21:42 | Posted by 인사이트
안윤호 님의 글을 보면 조엘 스폴스키(Joel Spolsky)가 SICP에 대해 불평하다 재평가했다는 얘길 하고 있죠. 그런데 최근 번역서가 나온 조엘의 『Smart and Gets Thing Done』에서도 SICP를 다시 거론하고 있네요. ^^ 조엘은 이력서 선별 기준으로 “컴퓨터에 열정을 갖고 프로그래밍을 정말 좋아한다는 뚜렷한 증거를 찾으려 애쓰며.... 그런 판단의 근거” 중 하나로

컴퓨터 프로그램의 구조와 해석을 읽고 진한 감동을 받아서 눈물까지 흘렸다는 내용을 자기소개서에 서사적으로 기술한 사람은 진정 프로그램을 이해하는 마니아임에 틀림없다.

라고 쓰고 있습니다.

내친김에 국내에서 SICP를 이미 원서로 읽고 글을 올리신 분들을 찾아봤습니다.

마법사 하르 님은 “상당히 인상 깊은 교재였다”며 “컴퓨터에 대해 서술하거나 언어의 문법에 대해 이야기하기보다는 문제를 먼저 제시하고 해당 문제를 프로그램 로직으로 어떻게 해결하는지를 서술하는 형태로 구성이 되어 있고, 문제의 경우도 해당 분야에 대한 기초적인 이해가 있어야 쉽게 이해할 수 있는 것들이 많았었다.”라고 소개하고 있습니다. 마법사 하르님은 SICP를 감수하신 이광근 교수님의 제자이셨나 봅니다.

아겔 님의 글은 책 소개는 아니지만 '마법사 찬가'라는 글에서 SICP를 “ SICP란 책의 표지에는 마법사가 그려져 있다. 책의 내용은 "structure and interpretation of computer programs"란 제목처럼 컴퓨터프로그램에 대한 기초(그렇다고 어느 시점엔가 잊어버릴 그런 무의미한 '기초'가 아니라 프로그램을 작성한다면 언제나 잊지 말아야할 기초로서.)를 설명하는 책이다."라고 소개하고 있습니다.

안윤호 님은 또 다른 글 ‘LISP을 다시 살펴보는 이유’에서 “MIT의 SICP 과정은 컴퓨터 교육에 새로운 이정표를 만들어 처음의 몇 년 동안 대단히 성공적이었다. 책은 정말 잘 만들어진 교재”라는 글을 올려주셨네요.

칭찬 일색이라구요? 뭐... 내용은 독자 분들이 판단하시는 거고, 여기에 올리는 글들은 출판사의 홍보 글이니 그러려니 하고 봐주시길..... ^^

사용자 삽입 이미지


지난 토요일(20일) 저녁 따끈따끈한 책이 출판사에 도착했습니다. 그동안 많은 분이 SICP에 관심이 있었지만 영어의 장벽과 만만치 않다고 알려진 내용으로 인해 쉽게 접근하지 못하셨을 텐데, 역자분들이 지난 5년 간 흘린 땀방울이 많은 도움이 되었으면 좋겠네요.

아래는 꼼꼼히 원고를 손봐 주신 이광근 교수님께서 써주신 '감수의 글'입니다.


SICP를 감수하고 - 이광근(서울대 컴퓨터 공학부 교수)

"Structure and Interpretation of Computer Programs". 이 책을 처음 접한 것이 1987년 가을이었습니다. 제가 대학원 과정을 막 시작할 때였습니다. 재미있었고 놀라웠고 많은 것을 깨우쳐 주었습니다. 그리고 지금은 너무나 유명해진 책이 되었습니다. 전 세계 유수의 많은 대학교에서 이 책을 사용해서 강의하고 있습니다.

이 책을 통해서 우리들은 소프트웨어 제작의 기본 원리, 구성 요소, 프로그래밍 미학 등을 습득하게 됩니다. 그래서 소프트웨어 시스템의 복잡한 모습을 손쉽게 다룰 수 있는 능력과 자신감을 익히게 됩니다. 그리고 컴퓨터라는 도구가 소프트웨어를 자동으로 실행시키는 원리를 익히게 됩니다.

특히 이 책은 위의 내용에 우리가 쉽게 집중할 수 있도록 꾸며져 있습니다. 실습언어로 Scheme이라는 매우 간단한 언어를 사용하기 때문입니다. Scheme은 비록 널리 사용되는 프로그래밍 언어는 아니지만, 실습언어를 익히느라 정작 배워야 할 것을 소홀히 하는 문제점이 없도록 하는 데 탁월한 효과를 냅니다. 독자들은 오직 어떻게 소프트웨어를 기획하고 구현하는지에 집중할 수 있게 됩니다.

원리를 단단히 익힌 사람은 방편에만 능한 손재주를 쉽게 능가합니다. 글로벌 선두를 차지하는 인력 풀은 이제는 기술흐름의 핵심을 맛본 사람들로 구성될 것인 바, 원리를 단단히 파악하지 못하는 교과 내용은 그런 인력의 저변을 두텁게 하는 데는 바람직하지 않습니다.

제가 1995년도에 귀국 후 대학에서 강의를 맡으면서, 기회만 되면 학부 학생들에게 이 책을 소개하고 교재로 채택해 왔습니다. 저는 ‘시스템 프로그래밍’이라는 기존의 강의에서 ‘프로그래밍의 원리’라는 새로운 강좌를 만들면서(서울대와 KAIST에서) 이 책을 교재로 쓰고 있습니다.

이제 비로소 번역본이 나왔습니다. 너무 늦었습니다. 하지만 쉽고 부드럽게 번역해 보려는 번역자들의 노력이 많이 배어있습니다. 전문 용어를 정확히 이해하고 그 의미가 쉽게 전달되는 말을 찾으려고 했고, 이때 지레 ‘겁먹게 하는’ 용어(불필요한 한문)를 피하고, 될 수 있으면 쉬운 말을 찾았습니다. 우리말, 한자어, 외래어를 따지지 않고, 번역할 전문 용어의 내용을 가장 잘 전달하는 쉬운 말을 찾아 낸 모습이 곳곳에 배어있습니다.

아무쪼록 이 번역본이 쉽고 널리 읽혔으면 하는 바램 입니다. 그래서 관심 있는 청소년들이나 이제 막 전공을 시작한 대학생들이 즐겁고 유익하게 만나는 책이 되기를 바랍니다.

이올린에 북마크하기(0) 이올린에 추천하기(0)
미투데이로 한마디    트위터로 한마디

컬러, 신비로운 조합.

2007/06/19 13:39 | Posted by 너굴;
안녕하세요. 인사이트 신입편집자 '너굴;'이라고 합니다. (세미콜론도 아이디예요. ^^)

인사이트에 들어온지는 어언 한 달이 되었는데, 오늘에서야 정식으로 인사를 드립니다. 앞으로 책을 만들면서 블로그도 함께 맡게 되었습니다.

인사이트엔 책을 만들고 싶어 무턱대고 들어왔습니다. 잠시 겪은 경험이긴 하지만 편집자란 세계는 많이 심오하네요. 배울 것도 많고 할 일도 많고. 그래도 이 모든 어려움을 다 이기고 어엿한 정식 편집자가 되기로 결심해 봅니다. ^^


입사 후 한 달 동안 서점, 디자인사, 인쇄소, 제책소, 코팅사 등 책의 현장을 한바퀴 둘러보게 되었는데요. 찾아가는 곳마다 참 다양한 색깔의 열정들을 만나볼 수 있었습니다. 그 중에 먼저 인쇄소에서 겪었던 것을 적어볼까 합니다.

처음으로 표지 인쇄를 구경가는 날. 인쇄소에 들어서자 강한 잉크 냄새와 덜컹덜컹 인쇄기 소리가 저를 반겨주었습니다. (안녕~ 앞으로 친하게 지내자~) 실용주의 프로그래머의 표지가 바뀐다는 사실은 이미 알고 계시죠? 이 날 인쇄될 표지가 바로 《실용주의 프로그래머》였습니다. 개인적으로 좋아하는 책이기도 해서 기쁜 마음으로 지켜보게 되었지요.

굳이 인쇄소까지 가는 이유는 '디자이너가 요구한 색이 제대로 나왔는지' 감리하기 위해서라네요.

인쇄기에서 나온 따끈따끈한 표지. 굉장히 이쁘네요!

그런데 사장님께서 '좀 다르죠?' / (너굴 생각 : 흠... 사장님이 다르다면 다른 거겠지.)

인쇄기의 색감을 조정하고 또 찍어봅니다.

'오우, 더 이뻐졌는걸?'

그런데 사장님께서는 '아직이죠?' / (흠... 역시 사장님 의견이니까 동의하자... ㅡㅡ; )

이런 식으로 무려 1시간 반동안이나 계속 찍어보았습니다. 제 눈에도 색깔의 차이가 느껴지기는 하더군요. 그런데 어느 색이 더 좋은지는 도무지 알 수가 없었습니다.

'OK 갑시다.' 그렇게 다 찍은 줄 알았는데 그건 속표지더군요. 겉표지는 2시간이나 걸렸습니다. ^^;

교정지에 나타난 색감과 인쇄기에서 찍히는 색감을 맞추기 위해 기장님께서 열심히 잉크를 섞고 찍어보는 모습이 너무도 신기했습니다. 샘플로 조금씩 찍어볼 때마다 점점 교정지와 같아지는 표지. 눈으로 본 색깔을 잉크를 섞어서 맞추다니, 이건 마치 영화 《향수》같습니다. (맡아본 냄새 만들기.)

이런 산고를 겪으며 《실용주의 프로그래밍》의 이쁜 표지가 완성되었습니다. 짠~!

실용주의 프로그래머
 
덧글(by ks.han) : 표지 인쇄에 이렇게 시간이 이렇게 많이 걸리지는 않는데, 새로 거래하는 곳이라 호흡을 맞추느라 시간이 꽤 걸렸답니다. 그래도 원하던 색감에 얼추 까깝게 했는데, 아쉽게도 결과물은 표지를 코팅(표지 앞의 얇은 비닐막)하면서 종이의 따뜻한 느낌이 많이 죽었습니다. 꽤 고심해 선택한 종이인데....
이올린에 북마크하기(0) 이올린에 추천하기(0)
미투데이로 한마디    트위터로 한마디
인문사회과학 쪽으로 가면 새내기라면 꼭 읽어야 할, 선배에서 후배로 전해져 내려오는 책들이 있습니다. 시류를 타지 않고, 기초를 다져주며, 오래가도 변치 않는 향을 풍기는 그런 책들 말이죠.

인사이트라는 이름으로 그런 책들을 갖고 싶었습니다.

물론 처음부터 수미일관한 틀을 짜고 시작한 건 아니었지만, 그런 어렴풋한 생각에서 기획해 나온 책들이 ‘생각하는 프로그래밍(원제: Programming Pearls)', '실용주의 프로그래머(원제: Pragmatic Programmers)' 입니다. 애초의 기획이 낱권이 아니었기에 여러 책이 동시에 진행되기 시작했으나, 시간은 흐르고 책들은 더디게 진행되면서 2003년 초 생각하는 프로그래밍이 나온 후, 2년여가 지난 다음에야 실용주의 프로그래머를 발간할 수 있었고, 그로부터 2년이 흐른 이제야 프로그램, 프로그래밍, 프로그래머 시리즈의 또 다른 책 발간을 얘기할 수 있게 되었습니다.

003 프로그래밍 심리학(원제: Psychology of Computer Programming),
004 컴퓨터 프로그램의 구조와 해석(원제: Structure and Interpretation of Computer Programming)

여러 책을 추천하고 ‘실용주의 프로그래머’를 직접 번역해 주신 김창준님, '생각하는 프로그래밍'을 번역하신 윤성준님, 프로그래밍 심리학을 번역하신 조상민님(생각하는 프로그래밍도 공역하셨죠), 지난 몇 년 컴퓨터 프로그램의 구조와 해석 번역을 끌어안고 고생하신 김재우, 김수정님과 김정민님, 5장 번역을 맡아주신 안윤호 님, 감수를 맡아 주신 이광근 교수님, 진행을 도와주신 송우일님. 그 외에도 여기서 일일이 거론하기 힘든 많은 분들의 기여로 ‘프로그램, 프로그래밍, 프로그래머 시리즈’가 간신히 시리즈라는 이름으로 얘기할 수 있는 정도가 되었습니다.

아직은 책을 다듬어 나가는 마지막 작업들이 남았기에, 책이 독자 분들 손에 들어가려면 2~3개월여의 시간이 더 필요합니다만, 조금씩 진행되는 경과를 말씀드릴만 하다고 판단하여 글을 올리게 되네요.

책들의 겉모습도 바뀌게 됩니다. 시리즈의 3, 4권 발간에 맞춰 표지를 완전히 바꾸는 작업을 진행하고 있죠. 시리즈로서의 일관성과 통일감을 위해서. 이번에도 표지는 ‘오필민’님이 맡아 주셨습니다. (디자이너 오필민 님에 대해서는 기회가 생기면 다시 말씀드리겠습니다.)

시안은 아래와 같고, 아래 세 안 중 하나로 결정되면 각 책에 맞게 세부적으로 다듬는 작업을 하게 됩니다. 어떠세요? 괜찮아 보이나요?

사용자 삽입 이미지

시안 1



사용자 삽입 이미지

시안2



사용자 삽입 이미지

시안3

이올린에 북마크하기(0) 이올린에 추천하기(0)
미투데이로 한마디    트위터로 한마디

사용자 삽입 이미지

TPoCP를 아시나요?
초판 1971년 발간. Silver Anniversary Edition, 즉 25주년 기념판이 나온 게 98년이니 초판 발간 후 37년이 지난 타이틀입니다.
(산천이 거의 네 번 변하는 시간이 흘렀으니, 바쁘게 변하는 세상에서 케케묵은 내용이 되었을까요? 글쎄요. 그건 독자 분들이 평가하시겠죠.)

이 책의 번역이 드디어 끝났습니다. 발간하는 책마다 사연이 없는 건 없습니다만, ‘드디어’라고 표현한 건 개중에서도 우여곡절이 많았기 때문입니다. (발간에 얽힌 뒷이야기는 기회가 생기면 차차 더 하겠습니다.)

번역은 최종적으로 조상민 님께서 마무리 해주셨습니다. 윤성준님과 ‘생각하는 프로그래밍’, ‘패턴을 활용한 리팩터링’을 번역하셨고, 마찬가지로 윤성준님과 ‘자바 세상을 덮치는 이클립스(1판)’을 집필하신 실력 있는 개발자이자 번역자이시죠. 

이제 번역이 마무리 되었기에, 완성도를 높여주실 리뷰어를 모집합니다. 분량은 원고의 1/4정도이며, 총 12명의 리뷰어를 모실 예정입니다.
리뷰를 하고자 하시는 분은 저희에게 연락주시거나, 아래에 댓글로 달아주시면 됩니다. (비밀 댓글도 괜찮습니다!)

단, 신청해 주실 분들은 아래의 사항을 유념해주세요. ^^

1. 영문과 한글이 능통하셔야 하는 건 기본이겠죠 ^^;

2. 번역은 원문을 그냥 옮기는 게 아니라 또 다른 창작이라 할 수 있습니다. 번역의 어려움을 아시는 분이 원고를 조금 더 잘 보실 수 있으리라 생각해, 신청하시는 분이 12명을 넘으면 번역 경력, 그 중에서도 책 번역 경력이 있는 분을 우선하겠습니다.

3. 심리적인 내용을 다루고 해당 용어들이 나오기 때문에 심리학 쪽 경력을 가진 분도 우선하겠습니다.

1/4 분량이라지만 꼼꼼한 리뷰라면 꽤 시간이 걸린답니다. 책을 먼저 읽어볼 기회니 일단 한번 해보자는 마음이시라면, 죄송하지만 신청하지 않으셨으면 합니다. 리뷰어 여러분의 기여가 추후 모든 독자분이 더 나은 번역서를 읽는 바탕이 될 테니, 성실하고 꼼꼼하게 원고의 오탈자까지 점검해 주실 분들이 신청해 주시면 감사하겠습니다.

저희에게 연락주실 때, 간단한 소개(번역 경력 포함)와 TPoCP를 이미 원문으로 읽으셨는지 여부 등을 적어 주시기 바랍니다. 리뷰어는 일단 23일까지 모집하고, 세부적인 진행 상황 등은 연락주신 분들께 따로 말씀드리겠습니다.

참고로, The Psychology of Computer Programming의 저자 Gerald M. Weinberg는 익히 알려진 대로 40여 년간 IT 업계에서 컨설팅을 해온 신화적인 분이고, 수십 권의 저술서가 있습니다. 그 중 ‘대체 뭐가 문제야?(원제 : Are Your Lights On?)’, ‘컨설팅의 비밀(원제 : The Secrets of Consulting)'을 저희 출판사에서 발간하기도 했구요.
TPoCP는 Jerry의 대표작이라 할 수 있고, 'Code Complete', 'Professional 소프트웨어 개발’로 유명한 스티브 맥코넬최고의 책 10권에서 첫 번째로 꼽은 책입니다. (2위는 Programming Pearls! 저희 출판사에서 발간하고 조상민님께서 번역하신 ‘생각하는 프로그래밍’이네요. ^^)


이올린에 북마크하기(0) 이올린에 추천하기(0)
미투데이로 한마디    트위터로 한마디
이전 1 다음