경험 많은 교육자이자 소프트웨어 엔지니어로, 미국에서 상을 받은 코딩 부트캠프인 액추얼라이즈(Actualize)의 설립자이다. 그는 복잡한 것을 쉽게 풀어내는 데 열정적이며, 복잡한 개념을 단순하고 쉬운 요소로 나누어 더 많은 사람들이 소프트웨어 개발에 관심을 가지게 하는데 힘을 쏟고 있다.
자료 구조와 알고리즘은 단순히 추상적인 개념이 아니다. 자료 구조와 알고리즘에 숙달하면 더 빠르게 실행되면서 메모리도 적게 소비하는 보다 효율적인 코드를 작성할 수 있다. 이는 모바일 플랫폼으로 넘어가며 갈수록 증가하는 데이터 크기를 감당해야 하는 오늘날의 소프트웨어 애플리케이션에서 특히 중요하다.
문제는 이러한 주제를 다루는 자료가 대부분 이해하기 어렵게 쓰였다는 점이다. 글은 수학 용어로 가득 차 있고 수학자가 아닌 이상 도무지 무슨 말인지 알기 어렵다. 심지어 “쉬운” 알고리즘을 표방하는 책마저 독자가 수학 석박사 학위를 취득했다고 가정한다. 결국, 무수한 독자들이 자신은 이러한 개념을 이해할 만큼 충분히 “똑똑하지” 않다고 생각하며 회피한다.
하지만 자료 구조와 알고리즘은 전부 본질적으로 상식선에서 이해할 수 있다. 수학 표기는 그저 특수한 언어이며, 어떤 수학이든 상식적인 용어로 설명할 수 있다. 이 책은 이러한 상식적인 언어로(더불어 많은 그림으로!) 개념을 단순하고 또 단언하건대 재미있게 설명한다.
자료 구조와 알고리즘을 이해했다면 효율적이고 빠르고 간결한 코드를 작성할 준비가 된 것이다. 여러 코드 대안의 장단점을 비교할 수 있으며, 지식을 바탕으로 주어진 상황에 어떤 코드가 가장 알맞은지 결정할 수 있다.
이 책에서는 오늘 바로 활용할 수 있는 아이디어를 엄선해서 개념을 실제적이고 실용적으로 만들고자 각별히 노력했다. 물론 그 과정에서 아주 근사한 컴퓨터 과학도 배운다. 하지만 이 책은 겉보기에는 추상적인 내용을 바로 실행할 수 있게 만드는 책이다. 끝까지 읽으면 더 뛰어난 코드, 더 빠른 소프트웨어를 작성하게 될 것이다.