이진 탐색이나 정렬 또는 기타 어려운 알고리즘과 복잡한 데이터 구조가 아니라, 프로그래머로 하여금 문제를 정확히 분석하고 효율적으로 문제를 해결할 수 있도록 생각하는 방법을 알려준다.
총 15개의 칼럼으로 구성된 이 책은 1부에서는 문제에 대한 정확한 정의를 강조하는 것을 시작으로, 알고리즘과 데이터 구조가 프로그램에 미치는 영향력을 보여주고, 정확한 코드 작성을 위한 검증 기법을 자세히 소개한다.
2부에서는 프로그램의 퍼포먼스와 알고리즘 및 데이터 구조 간의 관계를 설명하고, 속도 향상과 메모리 절감을 위해 디자인 과정에서 적용할 수 있는 여러 기법을 알려준다. 3부에서는 1, 2부에서 배운 내용을 기반으로 실질적이고 재밌는 프로그램들을 작성하면서, 책의 주제를 공고히 한다.