La programmation en pratique Un livre que je recommande chaudement à tout programmeur ou apprenti programmeur : La programmation en pratique de Brian W. Kernighan[1] et Rob Pike, éditions Vuibert informatique, ISBN 2-7117-8670-6.

Ce livre aborde tous les sujets qu'un bon programmeur doit connaître :

  1. Le style : comment écrire du code clair et bien commenté ;
  2. Les algorithmes et structure de données : l'importance de choisir un bon algorithme, évaluer sa complexité et les différents types de structures de données (listes, arbres, tables de hachage) ;
  3. La conception et l'implémentation : comment concevoir un programme, choisir un algorithme et bien réutiliser les bibliothèques existantes ;
  4. Les interfaces : comment faire un code réutilisable par d'autres ;
  5. Le débogage : quelles méthodes et outils utiliser pour trouver les erreurs de ce !!#@!?!! de programme ;
  6. Les tests : comment tester son programme, de manière systématique et reproductible ;
  7. Les performances : comment évaluer les goulots d'étranglement dans un programme et comment y remédier ;
  8. La portabilité : comment écrire un programme exécutable sur différentes plate-formes, et ce même en langage C ! ;-)
  9. La notation : quelques exemples qui montrent qu'un programme utilisant une notation adaptée facilite la vie de son utilisateur.

Ce livre est abondamment illustré d'exemples en C, C++, Java, Perl ou Awk. Les exemples sont clairs et l'approche est pragmatique, mais avec le soupçon de théorie quand c'est nécessaire. Chaque chapitre se termine par des exemples et des lectures complémentaires, permettant d'approfondir un sujet si nécessaire. Les auteurs ont de l'expérience et savent transmettre leur savoir.

J'ai particulièrement aimé ce livre car il concentre dans un ouvrage relativement concis (300 pages) tous les conseils que j'ai pu lire ou découvrir à droite et à gauche dans ma vie de programmeur. Et même si vous programmez en PHP, Python ou OCaml, les points abordés sont universels et valides pour tous les langages. Ce livre est une perle, lisez-le... et appliquez ses règles ! ;-)

Notes

[1] Oui, LE Kernighan du langage C et de Awk.