해커의 기쁨(2판)

“입사문제를 풀어본 자라면 이 책의 소중함을 온 몸으로 느낄 수 있을 것이다. 이 책에 나온다. ‘그’ 문제가! 그리고 혹은 ‘류광’님을 아신다면…!!”

1.

결론부터말하면 이 책은 결코 쉽지 않다. 코드가 많고 적고를 떠나서 다루고 있는 내용 자체의 무게감이 상당하기 때문이다. 그리고 우리가 알고 있는 일반적인 ‘알고리즘’이 아니라 좀 더 디테일하고 깊은(Deep) 한 내용들이 많이 나온다. 이 책을 구매했던 가장 큰 동기는 챕터 4, 5, 6 때문이라 할 수 있다.

2.

일반적으로 이 책은 굉장히 디테일한 부분의 알고리즘을 다루고 있기 때문에 순서대로 읽었을 떄 오는 경험의 부족이나 지식의 상실감이 크다. 반면 이 책의 챕터 4, 5, 6은 게임회사를 비롯해서 제법 많은 회사에서 1차 시험 문제 및 리트머스스 알고리즘 문제로 사용하는 경우가 많다. 특히나 챕터 6의 ‘워드 검색’은 정말로 많은 곳에서 시험 문제로 출제하는 경향이 있다. 사실 비트 및 조금 난감한 시험문제의 경우 이 책의 연습문제에서 원형이나 응용을 찾을 수 있다.

3.

그런데 뒷쪽에서 펼쳐지는 챕터 13장에서 18장까지의 내용은 전공자라고 하더라고 생소한 분들이 많고, 내용을 알고 있다고 하더라도 컴퓨터 구조등에서 적당한 이론을 배웠을 확률이 많은데, 실제 코드를 통해서 연습해 볼 수 있다는 장점이 있다. 반면에 기본적인 지식이 없으면 내용 자체가 어려울 수 있으니 챕터 13장에서 18장까지의 내용을 읽을 때는 위키피디아에서 용어등을 사전에 찾아서 읽어보면 더 좋다.

4.

반면에 언급하지 않은 챕터의 경우 내용과 예제가 너무 추상화된 부분이 많아서 그 점은 다른 서적으로 동원해서 내용을 보충해야 할 듯 싶다. 이 책을 읽는데 소모되는 배경지식이 상당하는 점은 이 책의 가장 큰 ‘벽’이 될 것으로 생각된다.

5.

비전공자의 경우 위키피디아를 비롯해서 사전에 몇가지 지식을 검색을 병행하면서 읽으면 더 많은 도움이 될 것이다. 기존의 자료구조나 분할 정도 알고리즘과 같은 형태의 큰틀에서 설명하고 있는 책이 아니라 굉장히 기술적이고 Deep 한 내용이 많다는 점을 염두해 두고 읽어본다면 더 큰 도움이 될 것이라 생각한다.

6.

첨언하자면, 류광님의 번역본이라 번역에 대한 믿음이 크다. TAOCP 씨리즈 번역서를 비롯해서 이펙티브 씨리즈에서도 곽용재님과 함께 많은 도움을 받았던 분이다. 번역자의 능력이 국내에서 최고라 할 수 있기 때문에 이 책은 소장하고 몇번을 천천히 읽어도 부족함이 없을 것이라 생각한다.

p.s.

p.s. 양질의 내용, 좋은 번역가, 좋은 기획의 출판사가 만나면 얼마나 좋은 책이 나오는지 보여주는 멋진 예라 할 수 있다. 그리고 연습문제가 쉽지 않다. 정말로…

“이 책의 가장 큰 장점은 접근이 쉽지 않은 알고리즘 정확히는 비트에 대해서 다루고 있다는 점이다. 그리고 부동소숫점 연산에 관한 내용을 코드로 다루는 몇 안되는 알고리즘 책이다. “

Written on June 26, 2014