본문 바로가기

서평/코딩, 개발

누워서 읽는 알고리즘 서평

반응형

코딩/개발 관련 서적을 읽다보니 '임백준' 이라는 분의 이름이 자주 눈에 띈다. 여러 개발 관련 서적의 번역에 참여하시고, '누워서 읽는 알고리즘'처럼 직접 집필한 책도 있다. 책을 읽는 개발자분들이 개발 관련 서적으로 가장 추천하는 책들중 임백준님이 관여하신 책들도 많다. 이번에는 임백준님의 대표작이자, 알고리즘 입문 서적으로 좋은 평을 가지고 있는 '누워서 읽는 알고리즘'에 대해 글을 써보고자 한다.

임백준님이 직접 쓰신 책은 처음인데, 이 책을 읽어보니 이분이 왜 유명한지 느끼게 되었다. 글빨이 정말 대단하다. 개발자가 쓴 책이라는 느낌보다는 전문 작가가 알고리즘에 대해 쓴 책을 읽는 느낌이다. 문장이 읽기 편한것을 넘어 아름답다는 느낌이 들면서, 이 책의 본질인 '알고리즘'에 대한 내용도 부족하지 않다는 생각을 했다. 저자의 경험, 다양한 퀴즈, 과학자와 수학자, 예술작품등 다양한 소재를 이용해 알고리즘이 무엇인가에 대해 생각해볼 수 있는 좋은 책이였다.

© olav_ahrens, 출처 Unsplash

책 '누워서 읽는 알고리즘'은 알고리즘 그 자체를 알려주는 책이라기 보다는, 알고리즘의 중요성을 느끼고 공부에 대한 동기부여를 얻을 수 있는 책이다. 책 제목처럼 가볍게 누워서 읽을 수도 있는 책으로, 컴퓨터 앞에서 코딩을 해가며 머리를 쥐어짜며 읽을 필요가 없는 책이다. 그래도 중간중간에 나오는 퀴즈를 풀기 위해서는 이면지랑 펜정도는 준비해서 읽는게 좋을 듯 하다.

하지만 자료구조나 알고리즘을 제대로 배우지 않은 (나같은)사람들에게 이해하기 어려운 부분들이 은근히 많다. 이런 부분이 나오면 그냥 넘기지 말고 몇분동안 고민해 보는게 좋으나, 도저히 답을 모르겠으면 일단은 넘기는 것도 좋은 방법이라 생각한다. 나는 펄(Perl)에 대해 모르는 사람으로써, 3줄(2줄)짜리 프로그래밍은 그저 의미없는 알파벳의 나열을 읽듯이 책장을 넘기기도 하였다. 제대로 하나하나 파고보면 좋은 아이디어를 얻을 수 있을지도 모르겠으나 그냥 빨리 뒷부분을 읽고 싶었다.

그렇다고 어렵다고 책의 아무 부분이나 넘기는 것은 좋지 못한 행동이라 생각된다. 적어도 작가가 '이 부분은 해봐라, 숙제로 남겨둔다'라는 느낌으로 말하는 부분은 어렵더라도 끝까지 도전해보길 권장한다. 직접 문제를 풀고 부딪혀봐야 느낄 수 있는게 있는 법이고, 작가가 굳이 이러한 표현을 쓴 이유는 이 문제에 대해 느껴야 책의 기본적인 내용을 이해할 수 있기 때문이라 생각한다.

 

 

 

 

"이러한 탐색의 과정을 통해서 컴퓨터 자원을 효율적으로 사용할 수 있도록 하는 유익한 알고리즘이 개발되기도 하지만, 사람들이 이러한 탐색에 뛰어드는 동기에는 특별한 이유가 없다. 바로 그것이 재미있는 점이다. 사람들은 종종 '왜'라는 질문 앞에서 굳이 설명할 길이 없는 그런 일들을 위해서 삶을 바치기도 한다. 아무 대가가 없는데 모험으로 가득 찬 고난의 길을 스스로 떠난다." - 누워서 읽는 알고리즘, 74p

이 책에서 가장 깊은 울림을 받은 한 페이지를 뽑자면 '팰린드롬' 알고리즘의 대한 파트(74p)를 뽑을 것이다. 이 팰린드롬 알고리즘은 대기업의 알고리즘 SW TEST에서 기본적으로 활용되는 것으로 알려져 있지만, 이 책에서의 팰린드롬 알고리즘은 개발자의 자세와 인생을 담은 알고리즘 그 자체라고 생각되기 때문이다. 더 큰 팬린드롬 수를 찾는 것 처럼, 개발자는 끊임없이 공부하고 그것을 활용해야 한다. 그렇지 못한 개발자는 도태될 것이다. 그리고 어쩌면 쓸모없을지도 모르는 일일지도 모르는 일에 자신의 시간을 바쳐 도전하다 보면 예상치도 못한 큰 발견을 하게 될지도 모른다. 그것이 개발자의 삶이라고 생각한다.

 

 

 

 

알고리즘을 어느정도 공부해보고 이 책을 다시 읽어볼 예정이다. 위에서 말한대로 펄언어에 대한 부분이나, 기타 알고리즘에 대한 이야기를 깊게 이해하지 못했다는 느낌을 지울 수 없었기 때문이다. 이러한 부족함은 그저 책을 재독한다고 채워지지 않을 것이다. 자료구조와 알고리즘을 공부하고, 다양한 문제에 부딪혀보고 고민해봐야 비로소 이해가 되기 시작할 것이라 생각된다. 나름 만족할정도로 공부하고 재독한다면 이 책이 어떻게 느껴질까? 이 책을 재독할때는 책 깊숙한 곳에 숨어있는 작가의 의도와 내공을 느끼고, 그것을 온전히 내것으로 만드는 날이 되었으면 한다.

 

 

 

 

누워서 읽는 알고리즘

[누워서 읽는 알고리즘]은 실전 프로그래밍을 업으로 삼고 있는 독자와 함께 가볍게 ‘수다’를 떨면서 우리가 매일 수행하는 ‘일’이 얼마나 재미있는지, 얼마나 아름다운지, 그리고 얼마나 �

digital.kyobobook.co.kr

 

반응형