제목을 처음 접했을 땐 브루스테이트라는 사람이 발상한 '세븐 랭귀지'라는 새로운 언어라고 생각했는데, 부제를 보고 그게 아님을 눈치챘다.
표지엔 영어로 되있어서 상대적으로 눈에 띄진 않지만 '한 주에 한 언어씩 7주를 학습'하는게 목표인, 7개 언어의 학습서이다.
나는 책으로 새로운 언어를 처음 접할 땐
보통 기본서 - 설치부터 역사(?), 프로젝트급 예제로 이어지는- 라고 불리는 책과
레퍼런스로 사용할 수 있는 백과사전형 책을 통해 공부하는 걸 선호한다.
아무래도 이런 책은 목록만 봐도 언어의 특성과 기능, 차이점, 상황에 따른 구현 방법을 일목요연하게 살펴보기 쉽기때문이다.
사실 기본서를 통해 읽다보면 그 과정이 지루해서 점점 더뎌지기도 하고,
막상 닥치면 필요한 것이 있나 검색을 하게되지만 그래도 언어가 특정 상황에 어떻게 사용하는 지 등
활용할 만한 범위를 미리 가늠해 두는게 안심이 되기 때문이다.
나의 평소 언어 습득 방법과 소요시간을 고려하면 7주에 7언어를 학습한다는 건
마치 만병통치약을 파는 사기꾼을 본 기분이었지만
한빛출판사고
번역가도 임백준씨고(이 분 책을 제대로 읽은 적은 없지만 친숙해서인지 신뢰가 갔다.)
졸트 상도 탔다하고 (무슨 상인지 모른다. 그저 표지에 언급할 정도니 뭔가 있겠지..)
이런 주변 요소들 때문에 반신반의하며 책을 열었다.
이 책은 반드시 서문을 읽어보길 권한다.
다른 책을 읽을 때 처럼 서문을 넘어가서 놓치기엔 아쉬운 중요한 대목이 있다.
바로 저자의 의도 및 학습 방법!
7가지 언어를 이 정도 분량의 책에서 해내겠다는 점을 선뜻 믿기 어려웠기 때문에,
그저 개론서 수준으로 언어의 특징을 서술하는 정도겠지라고 생각했으나
서문을 다 읽을 때 쯤 '믿습니다! 선생님!'의 자세가 되있었다.
애초에 저자도 이 책만을 통해 해당 언어를 완전하게 습득하는 것은 어렵다는 걸 잘 알고 있었다.
다른 기본서처럼 설치를 친절하게 도와주고, 각 환경에 따라 어떻게 하고 이런 게 아니라
설치방법 정도는 알아서 찾아볼 수 있고 당신에게, 'hello world'를 출력하는 게 아닌
왜 이런 언어가 탄생하게 되었고, 이 언어의 장점은 뭔지 느낌이 퐉! 오는 예제들로 진한 정수를 선보인다.
회사에서 빠르게 언어를 스터디할 때 사용했던 방법 - 보다 많이 아는 사람의 지도 하에 자질구레한 것은 털고 핵심만 접하는-과 유사한데 이런 방향으로 출판 책은 드물어서 좀 새롭기도 했다.
서문을 읽으며 부러움을 많이 느꼈는데
하나는 저자가 해당 언어의 창시자들에게 직접 사사(라는 건 적절한 표현이 아니지만 그런 기분에 가까웠다.)하거나 해당 분야의 권위자들에게 직접 도움을 받았다는 점과
그 잘나가는 루비의 창시자가 옆나라 일본의 생존해 계신 분이었다는 거다.
루비 자체가 신생 언어라 발안자가 살아있을 수 있겠지만 먼 곳이 아닌 근처의 일본에 계신 분이라니
부럽기도 하고 멋지기도 해서 보다 현실감있게 배가 아팠다.
저자는 나름의 조사와 기준으로 객체 지향형, 함수형 등 각기 다른 발안점과 처리과정을 가진 7가지 언어를 선정하고,
해당 언어의 핵심을 선보이며 프로그래머의 사고를 확장시켜준다.
C, C++, MFC에서 C#으로 넘어갈 때, 그리고 Python을 접했을 때 굉장히 큰 문화 충격을 받았고
새로운 사고 영역을 접하는 경험을 했던지라 이렇게 다른 언어를 접했을 때
내가 얼마나 더 새로운 세계를 접하게 될 지 두근거렸고, 책을 읽은 지금도 꽤 만족스럽다.
기존에 C계열 언어만 했을 땐,
'지금 하는 언어도 잘 못하는 데 무슨 다른 언어를 배우나.
그저 얇고도 넓은 지식만 배워 다양한 언어로 'hello world'나 출력하겠지'라고 생각 했었으나
파이썬을 접하며 그 다양성과 자유로움에 반해, 기존에 하던 작업에 어떻게 적용할 수 있을까 고민하면서
간만에 머리가 말랑말랑해진 기분이라 무척 즐거웠었는데
이름도 모르고, 그 처리과정도 낯선 언어들을 접한 후를 생각하니 설레었다.
즉 서문만 읽어도 '어떻게 학습하겠어. 어떻게 나오나 보자'라는 불신은 지워지고
마지막 페이지를 덮은 후 자신의 모습을 기대하게 만들어 책을 읽을 큰 동기를 부여해 준다.
각 언어들마다 소개, 3일치 학습, 정리로 구성해서 이렇게 5일간 공부하고 주말은 쉬는,
무려 주 5일제!를 보장하는 학습 과정 같지만
예제나 부가적으로 찾는 시간, 생업 등에 쏟는 시간을 고려하면 개인 마다 차이가 있겠지만 막상 5일내 읽기는 좀 빠듯했다.
여름휴가도 미리 다녀온 지라 10여일의 시간동안 책에서 언급한 과제들을 하며 진행하는 것은 시간 상 어려웠고,
(저자는 비추했지만) 대신 가능한 머리로 이미지트레이닝 코딩을 하며 읽었다.
좀 급하게 읽었던 지라 다시 시간의 여유를 가지고 읽을 참인데, 낯설고 하니 좀 어렵긴 한데 그래도 꽤 즐겁다
언어에 관계 없이 개발하는 사람이라면 말랑말랑한 사고를 위해서라도 한번 쯤 읽어보길 권한다.
아쉬운 점은 책 소개글에는 중견개발자라 명시되있지만, 그간 봐왔던 책과 다르게 책 자체에 난이도 표시가 되있질 않았다.
일반 초보자가 읽었을 땐 어려움에 배신감을 느끼지 않을까 싶다.
기본적으로 어떤 언어를 습득해보고 나름 써본 경험이 있는 사람이
기존에 자신이 잘 쓰던 언어와 비교하고, 나름 겪어본 문법을 조금 변형하는 식으로 접해야 보다 쉽고 빠르게 읽을 수 있는 책이다.
'구경하기 > 종이' 카테고리의 다른 글
한빛리더스 - 긱 아틀라스 (0) | 2015.08.30 |
---|---|
안드로이드 시큐리티 인터널 (0) | 2015.07.12 |
크로아티아의 작은 마을을 여행하다 (0) | 2015.05.03 |
안드로이드 멀티스레딩 (0) | 2015.04.05 |
게임을 움직이는 기술과 발상 (0) | 2015.03.08 |