Ecrit il y a déjà une dizaine d'années, le SICP [1] reste un des livres les plus inspirés sur la programmation, enseignée au moyen de Scheme([11]), un langage fonctionnel dérivé de Lisp. La programmation fonctionnelle est très clairement exposée dans [7]. La programmation dans un langage à objets est présentée dans [12] (C++) et [3] (Java) par les auteurs de ces langages.
Pour comprendre la compilation des langages de programmation et leur environnement d'exécution, le grand classique est le << dragon >> [2].
L'architecture des machines contemporaines est expliquée avec brio par deux des concepteurs du modèle RISC, Hennessy et Patterson[9], qui enseignent à Stanford et à Berkeley.
Pour l'algorithmique, on préfèrera la côte est, avec l'excellent cours du MIT de Cormen, Leiserson et Rivest[6], ou sur les rives de la Seine, le livre de Beauquier, Berstel et Chrétienne[4]. Pour des algorithmes numériques, les Numerical Recipes [10] constitue un matériel de référence dont un ingénieur doit connaître l'existence. Pour des algorithmes plus algébriques que numériques, les deux petits volumes [5] de Berstel, Pin et Pocchiola sont une mine de problèmes intéressants.