이 책은 단순히 데이터를 조직하는 방법이 아니라 데이터 조직이 코드의 실행 속도에 미치는 영향이 크다는 것을 가르치고자 한다. 데이터를 어떻게 조직하는가에 따라 프로그램은 수십 수백 배 더 빠르게 혹은 더 느리게 실행될 수 있다. 대량의 데이터를 처리해야 하는 프로그램이나 수천 명이 동시에 사용하는 웹 앱을 개발한다고 가정하자. 선택한 자료 구조가 소프트웨어가 잘 실행될지 혹은 처리량을 감당할 수 없어 멈춰버릴지를 결정할지도 모른다.
소프트웨어를 문제없이, 빠르게 실행할 수 있는 명쾌한 코드를 작성하는 능력을 갖추고 소프트웨어 공학자가 가져야 하는 전문성을 키우려면 다양한 자료 구조를 알고, 각각의 자료 구조가 개발 중인 프로그램의 성능에 어떤 영향을 미칠지 확실히 이해하고 있어야 한다.
1장은 배열과 집합이라는 두 가지 자료 구조를 분석한다. 언뜻 보면 거의 동일해 보이지만, 앞으로 소개할 도구를 통해 성능에 미치는 영향이 어떻게 다른지 분석해 보이겠다.