이 책을 읽기 전에 한빛미디어 홈페이지에서 책의 간단한 소개와 함께 추천사를 읽었다. 거기에는 많은 독자들의 추천사가 있었는데, 책을 끝까지 읽어본 느낌으로는 임백준님의 추천사가 가장 적절할 것 같았다.
“컴퓨터나 수학을 전공하지 않은 사람들이 자칫 소홀히 하기 쉬운 프로그래밍에 있어서의 과학적 기초를 아주 쉽게 하나씩 설명해 주는 드물지만 소중한 시도의 책이다. 이미 튼튼한 기초를 갖추고 있는 사람들에게는 스스로를 재점검할 수 있는 복습의 기회를 제공해 주고, 기초가 부족했던 사람들에게는 매우 훌륭한 참고 서적이 되리라 생각한다.
책의 내용을 간단하게 정리하면 고등학교때 배웠던 수열, 순열, 조합, 행렬 등에 대한 내용과 컴퓨터공학과의 전공필수과목인 논리회로(또는 디지털 디자인 등등으로도 불린다)에 대한 내용들, 그리고 자료구조 정도의 내용을 담고 있다. 책의 뒤쪽부분에 인공지능과 암호화에 대해 다루고 있는데, 그냥 간단하게 훓고만 지나가는 정도이다.
이 책은 대학교 컴퓨터전공 교과과정을 이수한 사람들에게는 복습 이상의 의미는 없을거라는 생각이 든다. 논리회로에 대한 내용과 자료구조에 대해서는 설명도 꽤 괜찮았고 제공되는 C 소스코드도 있어서 만족스러워 보인다. 하지만 보기좋게 잘 정리해 놓은 그 이상의 뭔가는 없다. 책의 앞쪽에서 수열, 순열등에 대해 언급하고 있는데 내용이나 수준이 고등학교때 배운 정도의 수준이고 실제로 이산수학이라든가 응용수학, 또는 선형대수학과 같은 내용들은 다루고 있지 않다.
그렇다면 이런 내용을 모르는 독자들이 읽기에는 적절한 책인가라고 묻는다면 또 그렇지도 않다. 처음 접하는 사람들에게 설명은 지나치리만큼 간단명료하고 스스로 해볼 수 있는 간단한 연습문제 조차도 제공하고 있지 않다.
‘좋은 프로그램을 만드는 핵심원리 25가지’ 는 분명 괜찮은 책이지만 내용과 난이도 조절에는 실패했다고 본다. 처음부터 500 페이지 정도 분량의 책에 담기에는 좋은 프로그래밍을 만들기 위해 필요한 것들이 너무 많기 때문이 아닐까? 차라리 시리즈별로 책을 내는 것이 더 좋았을지도 모르겠다는 생각이 들었다. 또한 책 중간중간에 생각보다 오타들이 많이 보였는데, 좀 더 편집에 신중했었더라면 하는 아쉬움이 남았다.
그럼에도 불구하고 이 책이 번역서가 아닌 국내집필이라는 점, 그리고 테크닉이나 API 에 대해 장황하게 설명하는 도서들이 난무하고 있는 요즘에 이러한 기본원리를 다루는 보기 드문 국내서적이 출간되었다는 것은 큰 의미를 가진다고 본다. 앞으로 좀 더 전산학의 근간이 되는 많은 양서들이 출간되길 바라며, 또한 한빛미디어에서도 좀 더 다양한 이론서들의 출간에 힘써줬으면 하는 바람이다.