resources - Quel est le livre le plus influent que chaque programmeur devrait lire?

Translate

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

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

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

inquestion:this "Code Complete"
This question and all comments follow the "Attribution Required."

Toutes les réponses

Translate
  • Code terminé(2e édition) par Steve McConnell
  • Le programmeur pragmatique
  • Structure et interprétation des programmes informatiques
  • Le langage de programmation Cpar Kernighan et Ritchie
  • Introduction aux algorithmespar Cormen, Leiserson, Rivest & Stein
  • Modèles de conceptionpar le gang 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 outilspar Alfred V. Aho, Ravi Sethi et Jeffrey D. Ullman
  • Gödel, Escher, Bachpar Douglas Hofstadter
  • Clean Code: un manuel de l'artisanat logiciel agilepar Robert C. Martin
  • C ++ efficace
  • C ++ plus efficace
  • CODEpar Charles Petzold
  • Programmation de perlespar Jon Bentley
  • Travailler efficacement avec le code héritépar Michael C. Feathers
  • Peoplewarepar Demarco et Lister
  • Codeurs au travailpar Peter Seibel
  • Vous plaisantez sûrement, M. Feynman!
  • Java efficace2e édition
  • Modèles d'architecture d'application d'entreprisepar Martin Fowler
  • Le petit intrigant
  • L'intrigant chevronné
  • Pourquoi le guide (poignant) de Ruby
  • Les détenus dirigent l'asile: pourquoi les produits de haute technologie nous rendent fous et comment restaurer la raison
  • L'art de la programmation Unix
  • Développement piloté par les tests: par exemplepar Kent Beck
  • Pratiques d'un développeur agile
  • Ne me fais pas réfléchir
  • Développement logiciel agile, principes, modèles et pratiquespar Robert C. Martin
  • Conceptions pilotées par domainepar Eric Evans
  • La conception des choses de tous les jourspar Donald Norman
  • Conception C ++ modernepar Andrei Alexandrescu
  • Meilleur logiciel d'écriture Ipar Joel Spolsky
  • La pratique de la programmationpar Kernighan et Pike
  • Pensée et apprentissage pragmatiques: Refactorisez votre Wetwarepar Andy Hunt
  • Estimation logicielle: démystifier l'art noirpar Steve McConnel
  • Le programmeur passionné (mon travail est allé en Inde)par Chad Fowler
  • Hackers: les héros de la révolution informatique
  • Algorithmes + Structures de données = Programmes
  • Écrire du code solide
  • JavaScript - Les bonnes parties
  • Devenir réelpar 37 signaux
  • Fondements de la programmationpar Karl Seguin
  • Infographie: principes et pratique en C(2e édition)
  • Penser en Javapar Bruce Eckel
  • Les éléments des systèmes informatiques
  • Refactoring aux modèlespar Joshua Kerievsky
  • Systèmes d'exploitation modernespar Andrew S. Tanenbaum
  • Le Turing annoté
  • Les choses qui nous rendent intelligentspar Donald Norman
  • La manière intemporelle de construirepar Christopher Alexander
  • La date limite: un roman sur la gestion de projetpar Tom DeMarco
  • Le langage de programmation C ++ (3e édition)par Stroustrup
  • Modèles d'architecture d'application d'entreprise
  • Systèmes informatiques - Point de vue d'un programmeur
  • Principes, modèles et pratiques Agile en C #par Robert C. Martin
  • Logiciel orienté objet en croissance, guidépar des tests
  • Directives de conception du cadrepar Brad Abrams
  • Pensée d'objetpar le Dr David West
  • Programmation avancée dans l'environnement UNIXpar W. Richard Stevens
  • Hackers et peintres: grandes idées de l'ère informatique
  • L'âme d'une nouvelle machinepar Tracy Kidder
  • CLR via C #par Jeffrey Richter
  • La manière intemporelle de construirepar Christopher Alexander
  • Modèles de conception en C #par Steve Metsker
  • Alice au pays des merveillespar Lewis Carol
  • Zen et l'art de l'entretien de la motopar Robert M. Pirsig
  • À propos de Face - Les bases de la conception d'interaction
  • Ici vient tout le monde: le pouvoir de s'organiser sans organisationspar Clay Shirky
  • Le Tao de la programmation
  • Beauté informatique de la nature
  • Écrire du code solidepar Steve Maguire
  • Guide de Philip et Alex sur la publication Web
  • Analyse et conception orientées objet avec des applicationspar Grady Booch
  • Java efficacepar Joshua Bloch
  • Calculabilitépar NJ Cutland
  • Les cerveaux de la programmation
  • Le Tao Te Ching
  • Le programmeur productif
  • L'art de la tromperiepar Kevin Mitnick
  • Le programmeur de carrière: tactiques de guérilla pour un monde imparfaitpar Christopher Duncan
  • Paradigmes de la programmation en intelligence artificielle: études de cas en Common Lisp
  • Maîtres du destin
  • Tests unitaires pragmatiques en C # avec NUnitde Andy Hunt et Dave Thomas avec Matt Hargett
  • Comment le résoudrepar George Polya
  • L'alchimistepar Paulo Coelho
  • Smalltalk-80: Le langage et sa mise en œuvre
  • Rédaction de code sécurisé(2e édition) par Michael Howard
  • Introduction à la programmation fonctionnellepar Philip Wadler et Richard Bird
  • Pas de bugs!par David Thielen
  • Retravaillerpar Jason Freid et DHH
  • JUnit en action
La source
Translate

K&R

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

@Keith: Une excellente mention de "Les détenus dirigent l'asile" par Alan Cooper - une révélation pour certains, tout développeur qui a travaillé avec moi depuis que j'ai lu ce livre m'a entendu mentionner les idées qu'il épouse. +1

La source
Pandora Lee
Translate

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 les informaticienspar JK Truss.

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

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

La source
Translate

Systématique: comment fonctionnent les systèmes et surtout comment ils échouent. Faites-le bon marché. Mais vous n'aurez peut-être pas l'humour tant que vous n'aurez 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 (FFT): Les systèmes complexes fonctionnent généralement en mode de défaillance.

L'idée étant qu'il y a des pièces défaillantes dans un logiciel donné qui sont masquées par des défaillances dans d'autres parties ou par des validations dans d'autres parties. Voir un exemple du monde réel auMachine à rayonnement Therac-25, dont les failles logicielles étaient masquées par des sécurités matérielles. Lorsque les sécurités matérielles ont été supprimées, la condition de concurrence logicielle qui n'avait pas été détectée pendant toutes ces années a fait que la machine a tué 3 personnes.

La source
Joanne Lee
Translate

L'un de mes favoris personnels estDélice du hacker, parce que c'était aussi amusant à lire qu'éducatif.

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

La source
Marina Lee
Translate

Explication de la programmation extrême: accepter le changementpar Kent Beck. Bien que je ne préconise pas une approche hardcore XP ou autoroute du développement logiciel, j'aurais aimé avoir été initié aux principes de ce livre bien plus tôt dans ma carrière. Tests unitaires, refactorisation, simplicité, intégration continue, coût / temps / qualité / portée - tout cela a changé ma façon de voir le développement. Avant Agile, tout était question de débogueur et de peur des demandes de changement. Après Agile, ces démons n'étaient pas aussi grands.

La source
Theobald Lee
Translate

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

La source
Bartholomew Lee
Translate

Concepts du système de base de donnéesest l'un des meilleurs livres que vous puissiez lire pour comprendre les bons principes de conception de bases de données.

alt text

La source
RD1
Translate

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

Le style présenté ici est excellent - le code parle de lui-même et tout le livre suit le principe KISS. Personnellement pas mes langues de choix, mais toujours influentes pour moi.

La source
Translate

Programmation de A à Z.C'est gratuit sur Internet. Ce livre m'a appris AT&T asm. C'est trés facile à lire.

alt text

La source
Translate

Paradigmes de la programmation par intelligence artificielle: Études de cas en Common Lisp par Peter Norvig

enter image description here

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

La source
Translate

Artisanat définitivement logiciel

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

Ce livre explique beaucoup de choses sur l'ingénierie logicielle, le développement de systèmes. Il est également extrêmement utile de comprendre la différence entre les différents types de développement de produits: Web VS shrinkwrap VS framework IBM. Qu'est-ce que les gens avaient à l'esprit lorsqu'ils ont conçu un modèle de cascade? Lisez ceci et nous deviendrons clairs (espérons-le)

La source
Upton Lee
Translate

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

Pour moi et mon travail ...Structures de données purement fonctionnellesest idéal pour réfléchir et se développer en pensant aux langages fonctionnels.

La source
Greg Lee
Translate

"Le monde est plat" de Thomas Friedman.

L'excellence en programmation exige un investissement d'énergie mentale et un dévouement à un apprentissage continu comparable aux professions de la médecine ou du droit. Il paie une fraction de ce que paient ces professions, et encore moins les salaires versés aux mathématiciens qui se dirigent vers le secteur financier. Et les salaires pourconstruction de codes'érodent parce que c'est une profession quirelativementfacile pour les personnes intelligentes et disciplinées dans la plupart des économies d'entrer.

La programmation s'est déjà érodée au point de payer moins 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 des plombiers professionnels tous les deux ans pour avoir le privilège de recevoir un tout nouvel ensemble de technologies de plomberie qui vous prendra un an à apprendre.

Si vous vivez en Amérique du Nord ou en Europe, êtes jeune et intelligent, la programmation n'est pas un choix de carrière rationnel. Entreprises quiimpliquerprogrammation, absolument. Etudier les affaires, en savoir assez sur la programmation pour affiner votre détecteur BS: génial. 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 vousl'amourla programmation et pour cette raison avoir l'intention d'en faire votre carrière, alors il vous incombe de développer une compréhension froide des forces qui sont, et continueront, pour en faire une profession de plus en plus difficile pour 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 ontdéjàarrivée. Si vous pouvez le lire et ne pas avoir peur,puissortez et achetez "Code Complete".

La source
Translate

alt text

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

Le dilemme de l'innovateur (technologie disruptive)
The Mythical Man Month (logiciel de gestion)
Traverser le gouffre (démarrage)
Systèmes de gestion de base de données, The COW Book
Programmation C #, The OSTRICH Book
Début des développeurs iPhone, le livre PAMPLEMOUSSE

Chaque livre était incroyable mais le dilemme de l'innovateur de Clayton Christensen (1997 !!!) est vraiment un livre fantastique, et il m'a vraiment fait réfléchir au monde du logiciel moderne. Le défi à relever est la technologie disruptive, et la façon dont les entreprises de disques durs et les entreprises non techniques sont toujours perturbées par les 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 leurs mains dans TOUT? C'est parce qu'ils ne veulent pas avoir leur positionperturbépar quelque chose de nouveau. L'aperçu sur google est suffisant pour se faire une idée. Lis le!

La source
Sally Lee
Translate

hackers, par Steven Levy.

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

La source
Beck Lee
Translate

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 langages.

alt text alt text

La source
Translate

Le nouvel omnibus de 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

Vraiment bon livre. A un goût de haut niveau des domaines les plus importants de l'informatique. Oui, CS! = Programmation, mais cela reste utile à tous les programmeurs.

La source
Frank Lee
Translate

Le mois de l'homme mythique par Fred Brookshttp://en.wikipedia.org/wiki/The_Mythical_Man-Month

La source
Modesty Lee
Translate

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

La source
Dempsey Lee
Translate

Bien que je convienne que de nombreux livres ci-dessus sont des lectures incontournables (Pragmatic Programmer, Mythical Man-Month, Art of Computer Programming et SICP viennent à l'esprit immédiatement), j'aimerais aller dans une direction légèrement différente et recommanderUne discipline de programmationpar 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» plutôt que «tests unitaires»).

La source
Elma Lee
Translate

Martin FowlerRefactoring: amélioration de la conception du code existanta 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 parhumains. Cela m'apprend fortement que le code que j'écris est destiné à mes collègues et successeurs pour qu'ils consomment et éventuellement apprennent quelque chosebienen dehors de ça. Cela m'inspire consciemmentprogramme d'une manière qui laisse les gens louer mon nom et ne pas me maudire à la damnation pour toute l'éternité.

La source
Georgia Lee
Translate

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

Programmation en C ++C'est bon pour les débutants. C'est un excellent livre complet avec 1500 pages.

La source
Selena Lee
Translate

Voici un excellent livre qui n'est pas aussi largement applaudi, mais qui est plein de perspicacité profonde:Développement logiciel agile: le jeu coopératif, par Alistair Cockburn.

Qu'y a-t-il de si spécial? Eh bien, tout le monde a clairement entendu le terme «Agile», et il semble que la plupart soient des croyants de nos jours. Que vous le croyiez ou non, cependant, il y a des principes profonds derrière l'existence du mouvement Agile. Ce livre découvre et articule ces principes d'une manière précise et scientifique. Certains des principes sont (d'ailleurs, ce sont mes mots, pas ceux d'Alistair):

  1. La chose la plus difficile dans le développement de logiciels d'équipe est de faire en sorte que le cerveau de chacun ait la même compréhension. Nous construisons des systèmes énormes, élaborés et complexes qui sont invisibles dans le monde tangible. Plus vous réussirez à amener le cerveau d'un plus grand nombre de personnes à partager une compréhension plus profonde, plus votre équipe sera efficace dans le développement de logiciels.C'est la raison sous-jacente pour laquelle la programmation par paires a du sens. La plupart des gens le rejettent (et je l'ai fait trop au début), 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 créer ... il n'y a pas beaucoup d'autres moyens d'obtenir un transfert d'informations aussi profond si rapidement. C'est comme un esprit vulcain.
  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 la capacité de l'auditeur / lecteur, ce qui signifie que le transfert de compréhension que vous essayez ne se produit pas. Considérez que les enfants apprennent à parler une 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 avec un autre enfant qui n'a même jamaisVUun train avant ... mais en regardant les autres enfants, il saisit l'essentiel du jeu et joue tout de suite. Cela arrive tout le temps entre les humains. Ceci, avec le corollaire sur trop de mots, vous aide à voir à quel point il était malavisé dans les vieux jours de «cascade» d'essayer d'écrire des spécifications détaillées de 700 pages.

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

La source
Translate

Maîtres de malheur.En ce qui concerne la motivation et l'amour pour votre profession: cela ne sera pas meilleur que ce qui a été décrit dans ce livre, une histoire vraiment inspirante!

La source