원래 책 표지 부분의 저자란은 잘 읽지 않는데, 이상하게 눈이 갔다.(운명?)
저자인 한상훈님은 신소재공학을 전공한 뒤 개발사를 창업하고, 군복무 이후 다른 회사를 창업하여 다양한 스타트업 팀들과 함께 일하며 경력을 이어갔다고 한다. 이후에 서술하겠지만, 다양한 경험을 통해 전문성도 있을 뿐더러 알고리즘을 쉽게 설명한 재밌는 책이 나온 것 같다.
책에 대한 간략한 평가
책 내용을 설명하자면, 자바스크립트로 된 설명과 예제를 통해 다양한 알고리즘을 배울 수 있는 책이다. 기존에 알고리즘을 공부한 사람이 굉장히 새로운 지식을 배울 수 있느냐? 그렇다면 아니다. 그런데 이것은 다른 알고리즘 책도 그렇다.
큐나 스택, 해시맵(Javascript니까 Object라고 해야 맞으려나 ㅎㅎ)과 같은 설명은 없지만 공간 복잡도나 빅오 표기법 등 알고리즘 설명에 빠지지 않는 부분도 잘 설명이 되어있다. 그리고 책이 가볍고 얇은데 생각보다 많은 알고리즘이 잘 설명이 되어있다. 쓰잘데기 없는 내용을 빼고 알고리즘에 대한 핵심과 예제들로만 되어있어서인가..?
이 책의 특징
다양한 알고리즘에 대해 "쉽게" 설명이 되어있다는 것이다.
쉽게란 무엇인가? 아무리 설명을 잘 한다 해도, 듣는 사람이 이해가 안되면 좋은 설명이 아니듯, 이 책은.. 그런 불상사를 막기 위해 정말 다양하고 친근한 예제를 많이 제공한다. 이를테면 정렬을 설명하며 배달 앱의 추천 알고리즘, 마법 포션 예제, 트럼프 카드 정렬이나 스타크래프트 등의 소재를 사용한다는 것이다.
내가 처음 알고리즘을 배울 때 C언어로 스택을 배웠는데, 하노이의 탑 알고리즘을 배웠던 것 같은데 정말 정말 정말 어려웠다. 일단 자료형의 특징을 이해해야했고, 코드가 실행되는 방식을 이해해야했고, 하노이의 탑 알고리즘을 이해해야 했다. 그런데... 하노이의 탑은 아는데, 하노이의 탑을 풀 수 있는 공식을 알고 있던게 아니어서 정말 어려웠다....
그런데 Javascript의 특징으로 알고리즘을 설명하다보니 이런 문제가 훨씬 덜했다. 일단, 복잡하게 자료형을 신경 쓸 필요가 없다. Javascript는 어떤 자료형이든 var, let, const 등의 예약어로 선언을 해서 쓰기 때문에, 어떤 자료형을 쓰든지 그냥 사용하면 된다. 그리고, 위에 설명했던 친근한 소재의 예제를 사용하여 처음 알고리즘을 접하는 사람에게도 거부감이 훨씬 덜할 것 같다.