프로그래밍 언어를 익히기 전에 프로그래밍을 배우다.
프로그래밍을 배우려는 대다수 사람들은 유행하는 언어 혹은 비전 있어 보이는 언어의 문법을 익힌 다음 프로그램을 작성하는 방법으로 공부를 시작한다. 하지만, 이렇게 언어의 문법만 익히는 식으로는 제대로 프로그래밍하기가 힘들다. 많은 학습자들이, 문법은 알겠는데 이 문법들을 어떻게 구성하여 프로그래밍해야 하는지 갈피를 잡지 못하는 경험을 하며, 혼자서는 넘기 힘든 벽에 부딪힌다.
『프로그램 디자인, 어떻게 할 것인가』는 컴퓨터 프로그래밍을 처음 접하는 사람들에게 프로그램을 ‘디자인’하는 방법을 가르치는 책이다. 여기서 말하는 ‘디자인’이라는 용어는 단순히 프로그램을 설계한다는 의미를 넘어, 이론적으로나 구조적인 내용을 파악하여 예술적인 경지에 이르도록 주의 깊게 프로그램을 ‘만든다’는 것을 뜻한다.
이 책에서는 구조체, 트리, 그래프와 같은 기본적인 프로그래밍에 필요한 자료 구조 및 알고리즘에 대해서도 설명하고 있다. 이러한 개념들은 예를 통해 제시되며, 반복적으로 살펴봄으로써 프로그래밍의 수준을 점점 높여 나가는 방식을 취하고 있다.
또한 구조적으로 프로그래밍할 수 있도록 자주 쓰이는 디자인 방법들을 모아 ‘디자인 레시피’라는 이름으로 제시한다. 프로그래밍을 할 때, 이 디자인 레시피 가운데 필요한 것을 선택하여 템플릿을 만들고, 이 템플릿에 내용을 채워 넣기만 하면 된다.
프로그래밍은 이론만 알고 있다고 해서 완성되지 않는다. 직접 구현하면서 이론만으로는 해결할 수 없는 어려운 부분도 만나게 되고, 특정한 문제를 해결하기 위해 기발한 아이디어를 이용해야 할 수도 있다. 이 책에서는 다양한 연습문제를 통해 이러한 연습을 직접 해 볼 수 있도록 도와준다. 이 연습문제들을 살펴보는 것만으로도 이 책의 진가를 확인할 수 있을 것이다.