본문 바로가기

Grew from/Review

[리뷰] 그림으로 이해하는 알고리즘

알고리즘을 공부해야 되는 시기(튀어야 할 때)가 왔다.
예전에 공부했었지만, 지금 회사를 3년을 넘게 다니는 바람에 그 사이에 다 잊어버렸으므로 다시 처음부터 시작해야 되는 상황이다.

나는 공부할 때 루틴이 몇가지 있는데, 처음 공부하는 분야 나 익숙하지 않은 분야를 공부 할때는 반드시 그림 위주의 책을 보면서 공부를 시작한다.

나는 기억력이 상당히 안좋은데 공부를 많이 하다보니깐 그것을 극복하는 방안으로 시도 했던 방법중 하나인데, 나중에 뇌과학 책 보니 실제로 사람의 뇌는 활자보다 이미지를 훨씬 더 잘 기억한다고 나와있었다.
(색상, 선, 구조 등 여러가지 요소를 받아들이는 과정에서 뇌의 다양한 기능을 쓰기 때문이라고 한다.)

초반에 공부 할때는 활자 위주의 책보다는 그림, 도표등으로 정리가 잘되어있고 얇은 책으로 먼저 공부를 해서 두뇌에 이미지화 시키고 중반에는 더 자세한 책들로 복습하면서 기억을 강화시킨다.
후반에는 공부한 것들을 정리해서 작성하면서 공부한 것들 자체를 이미지화 해서 두뇌에 각인시킨다.
 
방금 말한 나의 초반 공부법에 부합하는 알고리즘 책이 나왔으니 바로 "그림으로 이해하는 알고리즘"이다.
그림으로 이해하는게 더 와닿는다고 했으니, 글로만 설명할께 아니라 이 책의 내용을 한번 보는 것이 낫겠다.
어떤 부분을 보여주면 좋을까 고민하다가 "이진 탐색"을 택했다.

이진탐색은 설명을 말로만 들으면 살짝 아리송할 수도 있는 알고리즘이지만, 이렇게 그림으로 보여주면서 해설까지 곁들이면 프로그래머가 아닌 사람들도 개념 자체는 이해할 수 있을 정도로 쉽게 다가온다.

이제 여기 나오는 그림으로 이해한 동작 방식을 코드로 옮기면 그것이 바로 이진 탐색 알고리즘 코드가 되는 것이다.
 
이 책의 장점이라고 생각하는 것이 있다면
1.데이터 구조(자료구조), 정렬, 탐색, 그래프 까지 필수적인 알고리즘도 다루지만 심층 면접 질문 같은데서 이야기 하기 좋은 보안 알고리즘 파트(해시함수, 공개키 등), 압축 알고리즘(런 렝스, 하프만)까지 다룬다는 점이다.
면접을 떠나서도 개발 공부하다가 이름은 들어봤던 건데 이런 구조로 동작하는 거였구나 하고 컴퓨터 공학 소양이 올라가는 기분이었다.

2.핵심적인 알고리즘 위주로 그림으로 군더더기 없는 설명만 진행해서 책이 꽤 얇다.(264P)
처음 공부하는 책이 너무 두꺼우면 진도도 느린데 봐야할 부분도 많으니 끝까지 못보고 지쳐서 포기하는 경우가 많은데, 이 책으로 빠르게 회독수를 늘려가면서 이해가 되고나면 두꺼운 책으로 공부해도 빠르게 진도나가서 완독할 때 좋다.
 
단점이 하나 있다면 프로그래밍 코드가 전혀 없는 책이다.
실제로 구현한 코드를 보는 것이 목적이라면 이 책말고 자기가 원하는 언어로 쓰여진 알고리즘책을 봐야한다.
 
알고리즘 공부를 시작하려고 하는 시점에 이런 책이 나온것이 반가웠는데, 더군다나 출판사에서 보내주셔서 이렇게 리뷰까지 작성해보았다.

부디 이 책으로 공부 시작하시는 분들도 원하시는 바를 이루시길!