Quel est le livre le plus influent que chaque programmeur devrait lire? [fermé]


Si vous pouviez remonter le temps et vous dire de lire un livre spécifique au début de votre carrière en tant que développeur, quel livre serait-il?

Je m'attends à ce que cette liste soit variée et couvre un large éventail de choses.

Pour rechercher: Utilisez le champ de recherche dans le coin supérieur droit. Pour rechercher les réponses à la question actuelle, utilisez inquestion:this. Par exemple:

inquestion:this "Code Complete"
Author: Robert Harvey, 2008-08-05

30 answers

  • du Code (2e édition) par Steve McConnell
  • Le programmeur pragmatique
  • Structure et interprétation des programmes informatiques
  • Le langage de programmation C par Kernighan et Ritchie
  • Introduction aux algorithmes par Cormen, Leiserson, Rivest & Stein
  • Modèles de conception par la Bande des quatre
  • Refactoring: Amélioration de la conception du Code existant
  • Le Mois de l'homme mythique
  • L'art de la programmation informatiquepar Donald Knuth
  • Compilateurs: Principes, Techniques et Outils de par Alfred V. Aho, Ravi Sethi et Jeffrey D. Ullman
  • Gödel, Escher, Bach par Douglas Hofstadter
  • Le code propre: Un manuel de l'artisanat Logiciel Agile par Robert C. Martin
  • C++efficace
  • C++plus efficace
  • CODE par Charles Petzold
  • Perles de programmation par Jon Bentley
  • Travailler efficacement avec le code hérité par Michael C. Feathers
  • Peopleware par Demarco et Lister
  • Les codeurs au travail par Peter Seibel
  • Vous Plaisantez, M. Feynman!
  • Java efficace 2e édition
  • Modèles d'Architecture Enterprise Application par Martin Fowler
  • Le Petit Intrigant
  • Le Intrigant chevronné
  • Pourquoi (Poignant) Guide de Ruby
  • Les Détenus Dirigent L'Asile: Pourquoi les Produits de Haute Technologie Nous rendent Fous et Comment Restaurer la Santé Mentale
  • L'art de la programmation Unix
  • Développement piloté par test: Par exemple par Kent Beck
  • les Pratiques d'un Développeur Agile
  • Ne Me Fais pas Penser
  • Développement logiciel Agile, Principes, Modèles et Pratiques par Robert C. Martin
  • Conception pilotée par domaine par Eric Evans
  • Le design des choses du quotidien par Donald Norman
  • Design C++ moderne par Andrei Alexandrescu
  • Meilleur logiciel d'écriture I par Joel Spolsky
  • La pratique de la programmation par Kernighan et Pike
  • Pensée pragmatique et apprentissage: Refactoriser votre Wetware par Andy Hunt
  • Estimation logicielle: Démystifier l'Art Noir par Steve McConnel
  • Le Programmeur Passionné (Mon Travail Est Allé En Inde) par Chad Fowler
  • Hackers: Héros de la révolution informatique
  • Algorithmes + Structures de données = Programmes
  • Écriture de code solide
  • JavaScript - Les bonnes pièces
  • Obtenir réel par 37 Signaux
  • Fondements de la programmation par Karl Seguin
  • infographie: Principes et Pratique de C (2e Édition)
  • Penser en Java par Bruce Eckel
  • Les Éléments des Systèmes de Calcul
  • Refactoring aux modèles par Joshua Kerievsky
  • Systèmes d'Exploitation Modernes par Andrew S. Tanenbaum
  • Le Turing annoté
  • Les Choses Qui Nous Rendent Intelligents par Donald Norman
  • La manière intemporelle de construire par Christopher Alexander
  • The Deadline: Un Roman Sur La Gestion De Projet par Tom DeMarco
  • Le langage de programmation C++ (3ème édition) par Stroustrup
  • Modèles d'architecture d'application d'entreprise
  • Systèmes informatiques-Le point de vue d'un programmeur
  • Il s'agit d'un logiciel de gestion de données et de gestion de données.]}
  • Logiciel Orienté Objet en croissance, guidé{[3] } par des tests
  • Lignes directrices de conception du cadre par Brad Abrams
  • Pensée objet par le Dr. David West
  • Programmation avancée dans l'environnement UNIX par W. Richard Stevens
  • Hackers et Peintres: Les grandes idées de l'ère informatique
  • Il s'agit d'une nouvelle machine, qui a été créée par Tracy Kidder.]}
  • CLR via C# par Jeffrey Richter
  • La manière intemporelle de construire par Christopher Alexander
  • Modèles de conception en C # par Steve Metsker
  • Alice au pays des Merveilles - , par Lewis Carol
  • Zen et l'art de l'entretien de la moto par Robert M. Pirsig
  • À propos du visage-L'essentiel de la conception d'interaction
  • Vient Ici tout le monde: Le Pouvoir de l'Organisation Sans Organismes par Clay Shirky
  • le Tao de La Programmation
  • Beauté computationnelle de la nature
  • Écriture de code solide par Steve Maguire
  • Le guide de Philip et Alex pour la publication Web
  • Analyse orientée objet et Conception avec des applications par Grady Booch
  • Java efficace par Joshua Bloch
  • Compilation par N. J. Cutland
  • Les cerveaux de la programmation
  • Le Tao Te Ching
  • Le programmeur productif
  • l'Art de La Tromperie par Kevin Mitnick
  • Le programmeur de carrière: Guerilla Tactics pour un monde Imparfait par Christopher Duncan
  • Paradigmes de l'Intelligence Artificielle Programmation: Études de cas en Common Lisp
  • Les maîtres du destin
  • Test unitaire pragmatique en C# avec NUnit par Andy Hunt et Dave Thomas avec Matt Hargett
  • Comment le Résoudre par George Polya
  • L'Alchimiste par Paulo Coelho
  • Smalltalk-80: Le langage et son implémentation
  • Écriture de code sécurisé (2e édition) par Michael Howard
  • Introduction à la programmation fonctionnelle par Philip Wadler et Richard Bird
  • Pas de bugs!{[3] } par David Thielen
  • Retravailler par Jason Freid et DHP
  • JUnit en action
 1746
Author: random, 2012-02-21 21:02:44

K&R

@Juan: Je connais Juan, je sais - mais il y a des choses qui ne peuvent être apprises qu'en s'attelant à la tâche à accomplir. Parler dans des idéaux abstraits toute la journée fait simplement de vous un universitaire. C'est dans l'application de l'abstrait que l'on cherche vraiment la raison de leur existence. : P

@Keith: Grande mention de" The Inmates are Running the Asylum " par Alan Cooper-une révélation pour certains, tout développeur qui a travaillé avec moi depuis que j'ai lu cela le livre m'a entendu parler des idées qu'il épouse. +1

 9
Author: Jason Bunting, 2008-08-21 20:06:37

Mathématiques Discrètes Pour Les Informaticiens http://ecx.images-amazon.com/images/I/51HCJ5R42KL._SL500_BO2,204,203,200_AA219_PIsitb-sticker-dp-arrow,TopRight,-24,-23_SH20_OU02_.jpg

Mathématiques Discrètes Pour l'Informatique scientifique par J. K. Grappe.

Bien que cela ne vous enseigne pas la programmation, cela vous enseigne les mathématiques fondamentales que chaque programmeur devrait connaître. Vous vous souvenez peut-être de ce genre de choses à l'université, mais vraiment, faire de la logique des prédicats s'améliorera vous avez des compétences en programmation, vous devez apprendre la théorie des ensembles si vous voulez programmer en utilisant des collections.

Il y a vraiment beaucoup d'informations intéressantes ici qui peuvent vous faire penser aux problèmes de différentes manières. C'est pratique d'avoir, juste pour ramasser de temps en temps pour apprendre quelque chose de nouveau.

 9
Author: Tarski, 2008-10-14 12:04:58

Systemantics: Comment les Systèmes fonctionnent et Surtout Comment Ils Échouent. L'habituer à bas prix. Mais vous pourriez ne pas obtenir l'humour tant que vous n'avez pas travaillé sur quelques projets ratés.

La beauté du livre est l'année du droit d'auteur.

Probablement la "loi" à emporter la plus profonde présentée dans le livre:

Le Théorème fondamental du mode de défaillance (F. F. T.): Les systèmes complexes fonctionnent généralement en mode de défaillance.

L'idée étant qu'il y a des parties défaillantes dans n'importe quelle donnée morceau de logiciel qui sont masqués par des échecs dans d'autres parties ou par des validations dans d'autres régions. Voir un exemple réel à la Therac-25 radiation machine , dont les défauts logiciels ont été masqués par des failles matérielles. Lorsque les failles matérielles ont été supprimées, la condition de concurrence du logiciel qui était passée inaperçue toutes ces années a entraîné la mort de la machine 3 personnes.

 9
Author: Nicholas Piasecki, 2008-11-19 06:04:22

Un de mes favoris personnels est Hacker ' s Delight, parce que c'était aussi amusant à lire qu'éducatif.

J'espère que la deuxième édition sortira bientôt!

 9
Author: tr9sh, 2009-06-07 17:38:52

Extreme Programming explained: Embrasser le Changement par Kent Beck. Bien que je ne préconise pas une prise de XP-ou-the-highway hardcore sur le développement de logiciels, j'aurais aimé avoir été initié aux principes de ce livre beaucoup plus tôt dans ma carrière. Tests unitaires, refactoring, simplicité, intégration continue, coût/temps/qualité/portée - cela a changé ma façon de voir le développement. Avant Agile, il s'agissait du débogueur et de la peur des demandes de changement. Après Agile, ces démons ne se profilaient pas comme grand.

 9
Author: TrueWill, 2009-09-18 03:34:36

Types et langages de programmation par Benjamin C Pierce pour une compréhension approfondie des fondements des langages de programmation.

 9
Author: Dave Clarke, 2010-05-26 12:01:43

Concepts de système de base de données est l'un des meilleurs livres que vous pouvez lire sur la compréhension de bons principes de conception de base de données.

le texte d'alt

 9
Author: Ryan Berger, 2010-11-18 19:27:10

La pratique de la programmation. Par Brian W. Kernighan, Rob Pike.

Le style montré ici est excellent - le code parle juste de lui-même, et tout le livre suit le principe du BAISER. Personnellement pas mes langues de choix, mais toujours influent pour moi.

 9
Author: RD1, 2011-01-22 19:52:05

Programmation à partir de zéro. C'est gratuit sur internet. Ce livre m'a appris AT & T asm. Il est très facile à lire.

le texte d'alt

 9
Author: ladookie, 2011-05-17 04:19:52

Paradigmes de la programmation de l'Intelligence Artificielle : Études de cas en Common Lisp par Peter Norvig

entrez la description de l'image ici

J'ai commencé à le lire parce que je voulais apprendre Common Lisp. Quand j'étais à mi-chemin, j'ai réalisé que c'était le plus grand livre sur la programmation, j'avais lu jusqu'à présent.

 9
Author: Michiel Borkent, 2011-12-07 09:09:43

Définitivement Logiciel De L'Artisanat

Texte alternatif http://ecx.images-amazon.com/images/I/5186JKTDVWL._SL500_AA240_.jpg

Ce livre explique beaucoup de choses sur le génie logiciel, le développement de systèmes. Il est également extrêmement utile de comprendre la différence entre différents types de développement de produits: web VS shrinkwrap VS IBM framework. Ce que les gens avaient en tête quand ils ont conçu modèle en cascade? Lisez ceci et tout ce que nous allons devenir clair (espérons-le)

 9
Author: dario minonne, 2012-01-30 17:56:07

@Peter Coulton you vous ne lisez pas Knuth, vous l'étudiez.

Pour moi, et mon travail... Structures de données purement fonctionnelles est idéal pour penser et développer avec des langages fonctionnels à l'esprit.

 8
Author: nlucaroni, 2008-08-05 01:25:46

"Le monde est plat" par Thomas Friedman.

L'excellence de la programmation exige un investissement d'énergie mentale et un dévouement à l'apprentissage continu comparable aux professions de la médecine ou du droit. Il paie une fraction de ce que ces professions paient, encore moins les salaires versés aux mathématiquement avertis qui se dirigent vers le secteur financier. Et les salaires pour construire du code s'érodent parce que c'est une profession qui est relativement facile pour les intelligents et auto-discipliné dans la plupart des économies pour entrer.

La programmation s'est déjà érodée au point de payer moins cher que, disons, la plomberie. La plomberie ne peut pas être " délocalisée."Vous n'avez pas besoin de payer 2395 $pour assister à la Conférence du plombier professionnel tous les deux ans pour avoir le privilège de recevoir un ensemble entièrement nouveau de technologies de plomberie qui vous prendra un an pour apprendre.

Si vous vivez en Amérique du Nord ou en Europe, que vous êtes jeune et intelligent, la programmation n'est pas un choix de carrière rationnel. Les entreprises qui impliquent la programmation, absolument. Étudier les affaires, en savoir assez sur la programmation pour affiner votre détecteur BS: brillant. Mais consacrer la part du lion de votre énergie mentale à la maîtrise des bibliothèques, des structures de données et des algorithmes? Cela n'a de sens que si la programmation est quelque chose de plus pour vous qu'un choix économique.

Si vous aimez la programmation et pour cette raison avez l'intention d'en faire votre carrière, alors il vous appartient de développer un regard froid compréhension des forces qui sont et continueront d'en faire une profession de plus en plus difficile dans laquelle gagner sa vie. "Le Monde est plat" ne vous apprendra pas comment nommer vos variables, mais il vous plongera pendant 6 ou 8 heures dans des réalités économiques qui sont déjà arrivées. Si vous pouvez le lire et ne pas avoir peur, alors sortez et achetez "Code complet."

 8
Author: Larry OBrien, 2008-09-16 03:25:30

le texte d'alt

Cette dernière année, j'ai pris un certain nombre de cours. J'ai lu

Le dilemme de l'innovateur (technologie disruptive)
Le Mois de l'Homme Mythique (logiciel de gestion)
Traverser le gouffre (démarrage)
Systèmes de Gestion de Base de Données, Le Livre de La VACHE
Programmation C#, Le Livre de L'AUTRUCHE
Début iPhone Developmen, Le Livre de PAMPLEMOUSSE

Chaque livre était incroyable mais le dilemme de l'innovateur par Clayton Christensen (1997!!!) est vraiment un livre fantastique, et il m'a fait vraiment penser au monde du logiciel moderne. Le défi abordé est la technologie de rupture, et comment les entreprises de lecteurs de disques et les entreprises non techniques sont toujours perturbées par de nouvelles technologies qui changent la donne. Cela donne une nouvelle perspective lorsque l'on pense à Google, probablement la plus grande entreprise "Web". Pourquoi ont-ils les mains dans TOUT? C'est parce qu'ils ne veulent pas voir leur position perturbée par quelque chose de nouveau. L'aperçu sur Google est suffisant pour avoir l'idée. Le lire!

 8
Author: TahoeWolverine, 2017-02-08 14:13:47

Hackers, par Steven Levy.

La personnalité et le mode de vie doivent venir en premier. Tout le reste peut être appris.

 8
Author: tsilb, 2009-11-26 20:04:24
 8
Author: agupta666, 2017-02-08 14:29:15

Le langage Python a été très influent pour moi, j'aurais aimé lire ces livres il y a des années. La beauté et la simplicité du langage Python ont vraiment affecté la façon dont j'ai écrit du code dans d'autres langues.

le texte d'altle texte d'alt

 8
Author: Matthew J Morrison, 2010-10-24 15:01:53

Le Nouvel Omnibus Turing http://ecx.images-amazon.com/images/I/51HlYd-%2BRwL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg

Très bon livre. A un goût de haut niveau des domaines les plus importants de l'informatique. Oui, CS != programmation, mais cela est toujours utile à chaque programmeur.

 8
Author: Derrick, 2011-06-20 21:23:13

Le Mois mythique de l'Homme par Fred Brooks http://en.wikipedia.org/wiki/The_Mythical_Man-Month

 7
Author: Loren Charnley, 2008-08-21 20:02:07

Je pense que "The Art of Unix Programming" est un excellent livre, par un excellent hacker/esprit brillant comme Eric S. Raymond, qui tente de nous faire comprendre quelques principes de conception logicielle (simplicité principalement). Ce livre est un must pour toute programmation qui est sur le point de démarrer un projet sous la plate-forme Unix.

 7
Author: lurks, 2008-08-27 01:42:43

Bien que je convienne que beaucoup des livres ci-dessus sont des lectures incontournables (Programmeur pragmatique, Mois-Homme Mythique, Art de la Programmation informatique et SICP me viennent immédiatement à l'esprit), j'aimerais aller dans une direction légèrement différente et recommander Une Discipline de Programmation par Edsger Dijkstra. Même s'il a 32 ans, l'accent mis sur la "conception pour la vérifiabilité" est très pertinent (même si "vérifiabilité" signifie "preuve" au lieu de "tests unitaires").

 7
Author: joel.neely, 2008-08-28 23:47:12

Martin Fowler's Refactoring: Amélioration de la conception du Code existant a déjà été répertorié. Mais je vais détailler pourquoi cela m'a affecté.

L'essence de tout le livre est de structurer le code afin qu'il soit plus simple à lire et à comprendre par les humains. Cela m'enseigne fortement que le code que j'écris est destiné à mes collègues et successeurs pour consommer et éventuellement apprendre quelque chose de bon. Cela m'inspire à programmer consciemment dans une manière qui laisse les gens louer mon nom, et ne pas me maudire à la damnation pour l'éternité.

 7
Author: icelava, 2008-09-17 07:55:51

Texte alternatif http://ecx.images-amazon.com/images/I/61dECNkdnTL._SL500_AA240_.jpg

C++ Comment programmer, Il est bon pour les débutants.C'est un excellent livre complet avec 1500 pages.

 7
Author: Krirk, 2008-09-23 05:48:04

Voici un excellent livre qui n'est pas aussi largement applaudi, mais il est plein de perspicacité: Développement Agile de Logiciels: Le Jeu Coopératif, par Alistair Cockburn.

Qu'y a-t-il de si spécial à ce sujet? Eh bien, il est clair que tout le monde a entendu le terme "Agile", et il semble que la plupart soient croyants de nos jours. Que vous croyiez ou non, cependant, il y a des principes profonds derrière la raison pour laquelle le mouvement Agile existe. Ce livre dévoile et articule ces principes de manière précise et scientifique. Certains des principes sont (btw, ce sont mes mots, pas ceux d'Alistair):

  1. La chose la plus difficile à propos du développement de logiciels en équipe est d'amener le cerveau de tout le monde à avoir la même compréhension. Nous construisons des systèmes énormes, élaborés et complexes qui sont invisibles dans le monde tangible. Plus vous êtes en mesure d'amener plus de cerveaux à partager une compréhension plus profonde, plus votre équipe sera efficace dans le développement de logiciels. C'est la raison sous-jacente de la programmation par paire sens. La plupart des gens le rejettent (et je l'ai fait aussi au départ), mais avec ce principe à l'esprit, je vous recommande fortement de lui donner une autre chance. Vous vous retrouvez avec DEUX personnes qui comprennent profondément le sous-système que vous venez de construire ... il n'y a pas beaucoup d'autres façons d'obtenir un transfert d'informations aussi profond si rapidement. C'est comme un Vulcain esprit fondre.
  2. Vous n'avez pas toujours besoin de mots pour communiquer rapidement une compréhension profonde. Et un corollaire: trop de mots, et vous dépassez celui de l'auditeur / lecteur capacité, ce qui signifie que le transfert de compréhension que vous tentez ne se produit pas. Considérez que les enfants apprennent à parler la langue en étant "immergés"et " absorbants". Pas seulement la langue non plus ... il donne l'exemple de certains enfants jouant avec des trains sur le sol. Vient un autre enfant qui n'a jamais vu de train auparavant... mais en regardant les autres enfants, il prend l'essentiel du jeu et joue juste le long. Cela arrive tout le temps entre les humains. Ceci avec l' corollaire sur trop de mots vous aide à voir à quel point il était malavisé dans les vieux jours "cascade" pour essayer d'écrire 700 page spécifications détaillées des exigences.

Il y a tellement plus là-dedans aussi. Je vais me taire maintenant, mais je recommande FORTEMENT ce livre!

 7
Author: Charlie Flowers, 2009-03-20 02:45:42

Maîtres du malheur. En ce qui concerne la motivation et l'amour pour votre profession: cela n'ira pas mieux que ce qui a été décrit dans ce livre, histoire véritablement inspirante!

 7
Author: Jasper Bekkers, 2009-07-04 09:10:59