짬짬히 다시 읽던 임백준님의 행복한 프로그래밍 1판. 2판이라고 표지를 바꾸어 나온 최근 책이 있지만, 책을 다듬어서 낸 것 뿐일 것이다. 번역서가 아니니 크게 바뀔 여지도 없다. 여전히 내 마음 속에 앉아있는 이전에 읽었던 책을 정리하고 싶은 나의 욕심에 내가 무척이나 아끼는 글들이므로 애정까지 첨가되어 이번 독서도 불같이 해냈다.

읽기 시작한지는 꽤 됐는데, ⅓ 지점까지 읽는 것도 버거웠다. 다른 책들을 읽느라 이 책에 손을 댈 짬이 안 났기 때문인데, 이번에 할아버지가 돌아가시고 경주로 가는 길에, 드디어 이 책이 뇌리를 스쳤다. 이번 기회를 놓치면 또 언제 이 책을 완독할까 싶은 생각.

책 이야기로 돌아가자면, 이 책은 백준님의 첫번째 책이다. 예전 독후감에도 아마 적었을테지만, 대학교 시절 학교 도서관에서 누워서 읽는 알고리즘으로 처음 글을 접한 후 나는 임백준님의 프로그래밍에 대한 열정에 홀딱 반하고 말았다. 이렇게 오랫동안 현업에 종사하면서 아직까지 열정과 신념을 잃지 않는다는 게 얼마나 어려운 일일지. 이제는 조금 감이 오지만, 그 때는 그저 뜬구름 잡는 느낌일 뿐이었다. 하지만 그 뜬구름조차도 내 마음을 하늘처럼 푸르게 물들였다.

책의 챕터들의 이름이 재미있다. 시간과 커피 이름을 묶어서 각 챕터의 이름으로 삼았는데, 업무를 시작하고 끝내는 시간, 그리고 각 시간에 머리를 맑게 깨우기 위해 커피 한모금을 마시는 모습이 그려지면서 웃음이 난다. 커피를 즐기는 프로그래머라면, 아마 각 챕터들과 본인을 동일시하는 게 그렇게 어렵진 않을 것이다.

책은 점진적으로 프로그래밍의 철학을 향해 나아간다. 첫번째 챕터는 퍼즐 문제를 통해 프로그래밍의 핵심부부터 짚기 시작한다. 그리고 비트, 부울 등 저레벨의 이야기를 역사와 곁들인다. 섬세한 고민이 필요한 퍼즐들이 많다는 것은 임백준님이 생각하는 프로그래밍은 논리와 무척 맞닿아 있다는 것을 은유적으로 표현하는 것일테다.

두번째 챕터는 알고리즘에 대한 이야기가 이어진다. 쓰레딩, 컴파일러, 빅오 등. 챕터 3은 NP에 관련된 이야기나 공개키 암호화 방식을 필두로 한 암호화, 그리고 해킹, 콘웨이의 인생 게임과 유전자 알고리즘에 대한 이야기, 마지막 장에 이르러서는 언어의 간략한 역사와 프로그래밍에 대한 철학(소설처럼 읽히는 프로그램, 논쟁과 의사소통), 인터넷의 역사에 대해 몇토막씩 언급하며 책을 마무리짓는다.

사실상 각 챕터 내의 내용들이 크게 통일성이 있다고 하긴 힘들다. 챕터 내에 임백준님의 자유로운 문맥이 흐름대로 물결처럼 흘러다닌다. 독자는 그 물결에 떠서 유영하듯 즐기게 된다. 마치 업무를 하다가 자연스럽게 다른 업무로, 이리 저리 넘나드는 듯한 그런 부드러운 물살이다.

여러 역사적 사실들과 임백준님의 철학이 한데 뒤엉켜 마치 우연을 통해 만들어진 미술작품과 같은 오묘한 매력을 뿜어내는 책이 되었다. 아무래도 첫번째 책이다 보니 글들에서 듬성듬성 성김이 느껴지지만, 그것도 또한 매력이라고 할 수 있다.

임백준님의 책은 읽으면 일단 기운이 난다. 의욕이 샘솟는다. 나의 무의식 저변에 놓여져 있는 어떤 부분을 자극하는 글들이다. 특히 아래와 같은 글을 보면 나 자신을 다시 한번 되돌아보게 된다.

프로그래머들이 즐겨 이용하는 질문이 하나 있다. “네가 만든 소프트웨어가 조종하는 비행기에 올라탈 자신이 있는가?”가 바로 그것이다.

재밌었다.