Il ne faut pas confondre l'apprentissage de la programmation et l'apprentissage d'un langage de programmation. Ce dernier est relativement simple: il suffit d'en maîtriser les règles syntaxiques et sémantiques. En revanche, l'apprentissage de la programmation est beaucoup plus complexe ; il constitue le principal objet de ce livre. Un ``bon programme'' n'est pas uniquement une combinaison d'instructions répondant aux spécifications initiales d'un client, et ceci pour plusieurs raisons:
L'art de la programmation consiste donc à utiliser des techniques et des méthodes permettant de produire des programmes fiables, facilement modifiables, utilisant peu de ressources, avec peu de ressources humaines. L'objectif de ce livre est de communiquer un certain nombre de ces techniques et méthodes.
La programmation doit être illustrée par des exemples, ce qui nécessite un langage. De plus, un grand nombre de méthodes et techniques sont spécifiques à un langage particulier ou bien à une famille de langages. Finalement, la communauté des programmeurs d'un langage possède une culture partagée. Cette culture se manifeste par la façon dont le langage est utilisé. Ainsi, certaines constructions sont idiomatiques et d'autres ne le sont pas. Il est impératif pour un programmeur de maîtriser cette culture partagée, et on pourrait argumenter que la difficulté principale d'apprentissage d'un langage de programmation est l'apprentissage de ces idiomes. Ceci peut prendre plusieurs années et nécessite la lecture de programmes écrits par des experts.
Le langage choisi dans ce livre est Common Lisp. Dans la section 1.3, nous commentons ce choix ainsi que celui que doit faire un chef de projet professionnel de programmation.