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