Quel est le livre le plus influent que chaque programmeur devrait lire? [fermé]
1439
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 serait-il?
Je m'attends à ce que cette liste soit variée et couvre un large éventail de choses.
Pour effectuer une recherche: utilisez le champ de recherche dans le coin supérieur droit. Pour rechercher les réponses à la question actuelle, utilisez inquestion:this. Par exemple:
Parcourir ce fil me fait réaliser à quel point la plupart des livres liés à la programmation sont laids. Très bon fil cependant!
Carl Bergquist
23
Il est intéressant de noter que, alors que le titre se lit "Quel est le livre le plus influent que chaque programmeur devrait lire?", Il y a quelques livres suggérés qui traitent de sujets spécifiques à la langue. Par définition, et par question telle qu'elle a été posée, les livres suggérés ici devraient traiter de sujets indépendants du langage, ce qui prouve que la plupart des programmeurs n'ont pas encore appris à lire.
Rook
19
Si je pouvais remonter le temps et me dire de lire quelque chose, il vaut mieux que ce soit un journal ou un livre de sport que j'emporte avec moi. Tout le reste est une perte de bon voyage dans le temps. :-)
jmucchiello
32
Vous savez, si je n'étais pas inquiet de ne pas voter beaucoup, j'irais trollement et suggérerais Twilight. "C'est AUSSI des gens qui sont pâles et évitent le soleil!"
Jacob Bellamy
3
Quelqu'un peut-il nettoyer les réponses en supprimant les entrées répétées des livres? La plupart d'entre eux ont déjà voté.
rao
Réponses:
1746
Code Complete (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
Motifs de conception par le Gang of Four
Refactoring: améliorer la conception du code existant
Le mois de l'homme mythique
L'art de la programmation informatique par Donald Knuth
Compilateurs: principes, techniques et outils par Alfred V. Aho, Ravi Sethi et Jeffrey D. Ullman
Gödel, Escher, Bach de Douglas Hofstadter
Code propre: un manuel de l'artisanat logiciel Agile par Robert C. Martin
C ++ efficace
C ++ plus efficace
CODE par Charles Petzold
Programmation des perles par Jon Bentley
Travailler efficacement avec Legacy Code par Michael C. Feathers
Peopleware par Demarco et Lister
Coders at Work par Peter Seibel
Vous plaisantez sûrement, M. Feynman!
Java efficace 2e édition
Modèles d'architecture d'application d'entreprise par Martin Fowler
Le petit Schemer
Le Schemer 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 les tests: par l'exemple de Kent Beck
Pratiques d'un développeur agile
Ne me faites pas penser
Développement de logiciels agiles, principes, modèles et pratiques par Robert C. Martin
Conceptions pilotées par domaine par Eric Evans
La conception des choses de tous les jours 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
Réflexion et apprentissage pragmatiques: refactorisez 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: Heroes of the Computer Revolution
Algorithmes + structures de données = programmes
Écrire du code solide
JavaScript - Les bonnes parties
Devenir réel avec 37 signaux
Fondements de la programmation par Karl Seguin
Infographie: principes et pratique en C (2e édition)
Penser à Java par Bruce Eckel
Les éléments des systèmes informatiques
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 construction intemporelle de Christopher Alexander
The Deadline: un roman sur la gestion de projet par Tom DeMarco
Le langage de programmation C ++ (3e édition) par Stroustrup
Modèles d'architecture d'application d'entreprise
Systèmes informatiques - le point de vue d'un programmeur
Principes, modèles et pratiques agiles en C # par Robert C. Martin
Développement d'un logiciel orienté objet, guidé par des tests
Directives de conception de cadre par Brad Abrams
Réflexion sur les objets par le Dr David West
Programmation avancée dans l'environnement UNIX par W. Richard Stevens
Pirates informatiques et peintres: grandes idées de l'ère informatique
L'âme d'une nouvelle machine par Tracy Kidder
CLR via C # par Jeffrey Richter
La construction intemporelle de Christopher Alexander
Design Patterns in C # par Steve Metsker
Alice au pays des merveilles par Lewis Carol
Le zen et l'art de l'entretien des motos par Robert M. Pirsig
À propos de Face - Les bases de la conception d'interaction
Here Comes Everybody: The Power of Organizing Without Organizations by Clay Shirky
Le Tao de la programmation
Beauté computationnelle de la nature
Écrire du code solide par Steve Maguire
Guide de publication Web de Philip et Alex
Analyse et conception orientées objet avec applications par Grady Booch
Java efficace par Joshua Bloch
Calculabilité par NJ 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: tactiques de guérilla pour un monde imparfait par Christopher Duncan
Paradigmes de la programmation de l'intelligence artificielle: études de cas en Common Lisp
Masters of Doom
Tests unitaires pragmatiques en C # avec NUnit par Andy Hunt et Dave Thomas avec Matt Hargett
Comment le résoudre par George Polya
L'Alchimiste de Paulo Coelho
Smalltalk-80: le langage et sa mise en œuvre
Écriture de code sécurisé (2e édition) par Michael Howard
Introduction à la programmation fonctionnelle par Philip Wadler et Richard Bird
Code Complete est un bon livre si vous êtes peut-être au collège. Si vous avez au moins 1 an d'expérience en programmation, c'est un ennui total.
Bogdan Gavril MSFT
19
Code Complete contient beaucoup d'informations utiles, mais il est enfoui dans l'hyperbole, la gaufre et la répétition, ce qui en fait une lecture difficile.
Jeff Yates
76
J'ai lu Code Complete 3 ans dans ma carrière. Je n'avais pas suivi de cours d'ingénierie logicielle ni de cours de construction de langages de programmation mais j'avais suivi quelques cours d'introduction CS. C'est de loin le meilleur livre unique que j'ai jamais lu pour devenir un meilleur programmeur. Cela ne fera pas de vous un spécialiste mais cela vous fera bien plus qu'un bricoleur.
Shea
119
Le problème avec ce livre est que pour un débutant, cela n'a pas vraiment de sens car les concepts sont un peu avancés. Au moment où vous êtes prêt à pouvoir le lire, vous devriez déjà connaître et pratiquer 99% des concepts du livre.
esac
57
C'est l'affaire des suggestions de bon sens, comme celles que l'on trouve dans ce livre. De temps en temps, vous devez leur rappeler de se replier.
@Juan: Je connais Juan, je sais - mais il y a des choses qui ne peuvent être apprises qu'en se mettant au travail. 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 nous cherchons vraiment la raison de leur existence. : P
@Keith: Grande 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 embrasse. +1
Bien que cela ne vous apprenne pas la programmation, cela vous enseigne les mathématiques fondamentales que chaque programmeur devrait connaître. Vous vous souvenez peut-être de ce truc de l'université, mais vraiment, la logique des prédicats vous améliorera les 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.
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 parties 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. Découvrez un exemple concret sur la machine à rayonnement Therac-25 , dont les défauts logiciels ont été masqués par des pannes matérielles. Lorsque les pannes matérielles ont été supprimées, la condition de concurrence logicielle qui n'était pas détectée pendant toutes ces années a entraîné la mort de 3 personnes.
Consultez également The Systems Bible du même auteur (John Gall). C'est la troisième édition de Systemantics, il vient de changer de titre. Voici le livre que tu voles à l'école. C'est le livre que les adultes ont lu sous une couverture avec une lampe de poche.
Chris Wenham
9
Hacker's Delight est l'un de mes favoris personnels , car c'était aussi amusant à lire qu'éducatif.
+1 pour "Hacker's Delight" de Henry S. Warren Jr - il ne s'agit pas de pirater dans le sens populaire mais de pirater comme dans le twiddling de bits de bas niveau et d'autres "hacks" dans le sens vrai et original du mot. Pas pour tout le monde, mais si vous êtes impliqué dans l'optimisation de code, les compilateurs, etc., ou si vous êtes juste un nerd général qui s'intéresse aux trucs de bas niveau, alors c'est un excellent livre.
Brillant, la couverture du livre montre "La Sagrada Família", une grande basilique catholique romaine en construction à Barcelone, Catalogne, Espagne. À terminer en 2026 (il ne reste que 17 ans). Comme la plupart des programmes, même avec les meilleurs livres, ils n'ont jamais fini ...
PeterMmm
9
Programmation extrême expliquée: Embrace Change par Kent Beck. Bien que je ne préconise pas une approche inconditionnelle de XP ou de la route sur le développement de logiciels, j'aurais aimé avoir été présenté 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 - tout cela a changé ma façon d'envisager 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 n'apparaissaient pas aussi gros.
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 le livre entier suit le principe KISS. Personnellement, ce n'est pas ma langue de prédilection, mais toujours influente pour moi.
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.
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 produit: web VS shrinkwrap VS framework IBM. À quoi pensaient les gens lorsqu'ils ont conçu un modèle de cascade? Lisez ceci et tout ce que nous deviendrons clair (j'espère)
Ce livre doit être réécrit à partir de zéro. Le sujet est très intéressant mais le livre est assez fou.
Chris Mountford
Chris, j'ai du mal à comprendre ton commentaire ... Peux-tu expliquer plus? Pourquoi «fou»?
dario minonne
Tout d'abord, il est plein d'erreurs typographiques. La main éditoriale habituellement de premier ordre d'Addison Wesley est étrangement absente dans ce volume.
Chris Mountford
... continue, et pas assez d'espace ici, mais: 2. il n'est jamais clair dans le texte où l'auteur bascule entre le fait et l'opinion, l'anecdote et le principe fondamental, etc. 3. le savoir-faire logiciel est une métaphore et une stratégie pour traiter plusieurs aspects difficiles du développement logiciel. Il présente des avantages spécifiques par rapport aux alternatives et vraisemblablement des inconvénients. Je pense que c'est la bonne approche. Cela n'a aucun sens de dire que le logiciel est intrinsèquement un métier. Très ennuyeux à lire, mais pour être honnête, c'était il y a un certain temps et j'ai oublié beaucoup de détails. Mon dégoût demeure cependant.
Chris Mountford
8
@Peter Coulton - vous ne lisez pas Knuth, vous l'étudiez.
Pour moi et mon travail ... Les structures de données purement fonctionnelles sont idéales pour penser et développer en ayant à l'esprit les langages fonctionnels.
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 ces professions paient, encore moins les salaires versés aux mathématiciens avertis qui se dirigent vers le secteur financier. Et les salaires pour construire le code s'érodent parce que c'est une profession qui est relativement facile pour les intelligents et les auto-disciplinés dans la plupart des économies à 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 pour 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. Les entreprises qui impliquent de la programmation, absolument. Étudiez les affaires, en savoir suffisamment 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 vous aimez la programmation et que pour cette raison vous avez l' intention d'en faire votre carrière, alors il vous appartient de développer une compréhension froide des forces qui sont, et continueront, d'en faire une profession de plus en plus difficile à vivre. . "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 déjà arrivées. Si vous pouvez le lire et ne pas avoir peur, alors sortez et achetez "Code complet".
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 penser au monde du logiciel moderne. Le défi relevé est la technologie perturbatrice et la façon dont les entreprises de disques durs et les entreprises non techniques sont toujours perturbées par de nouvelles technologies révolutionnaires. Cela donne une nouvelle perspective lorsque l'on pense à Google, probablement la plus grande entreprise «Web». Pourquoi ont-ils leurs mains en TOUT? C'est parce qu'ils ne veulent pas que leur position soit perturbée par quelque chose de nouveau. L'aperçu sur Google est suffisant pour se faire une idée. Lis le!
Le langage Python a été très influent pour moi, j'aurais aimé avoir lu ce livre il y a des années. La beauté et la simplicité du langage Python ont vraiment affecté la façon dont j'écrivais du code dans d'autres langages.
Je pense que démarrer de nouveaux programmeurs avec Python réduirait la quantité de code laid dans le monde. Je travaille avec quelqu'un qui indente des lignes au hasard - cette personne ne le ferait pas si elle avait travaillé avec Python pendant quelques mois.
xnine
6
Je pense que démarrer de nouveaux programmeurs avec Python réduirait la quantité d'autres langages.
Très bon livre. A un goût élevé des domaines les plus importants de l'informatique. Oui, CS! = Programmation, mais cela est toujours utile à tous les programmeurs.
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 must pour toute programmation qui s'apprête à démarrer un projet sous la plate-forme Unix.
Bien que je convienne que bon nombre des livres ci-dessus sont des lectures incontournables (programmeur pragmatique, mois-homme mythique, art de la programmation informatique et SICP viennent immédiatement à l'esprit), je voudrais 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»).
J'avais de grands espoirs pour ce livre, mais il ne le fait pas pour moi. Je pense que cela indique l'évidence. C'est probablement bon pour ceux qui découvrent la programmation.
Je suis entièrement d'accord. L'approche de Deitel dans l'apprentissage d'un langage de programmation est incroyable. Je considère Java How to Program comme ma bible de programmation!
Qu'est-ce qui est si spécial? Eh bien, il est clair que tout le monde a entendu le terme "Agile", et il semble que la plupart sont des croyants de nos jours. Que vous le croyiez ou non, cependant, il existe des principes profonds derrière la raison pour laquelle le mouvement Agile existe. Ce livre découvre et articule ces principes d'une manière précise et scientifique. Certains des principes sont (au fait, ce sont mes mots, pas ceux d'Alistair):
La chose la plus difficile à propos du développement de logiciels d'équipe est de faire en sorte que tous les cerveaux aient la même compréhension. Nous construisons des systèmes énormes, élaborés et complexes qui sont invisibles dans le monde tangible. Mieux vous réussirez à faire en sorte que plus de cerveaux de personnes partagent une meilleure compréhension, plus votre équipe sera efficace dans le développement de logiciels. C'est la raison sous-jacente que 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 un autre coup. 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 façons d'obtenir un transfert d'informations aussi approfondi aussi rapidement. C'est comme une fusion d'esprit vulcain.
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 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 qui jouent avec des trains au sol. Arrive un autre enfant qui n'a jamais SEEN un train avant ... mais en regardant les autres enfants, il reprend l'essentiel du jeu et joue à droite le long. Cela arrive tout le temps entre les humains. Ceci, ainsi que le corollaire de trop de mots, vous aide à voir à quel point il était erroné à l'époque des "cascades" 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 fortement ce livre!
Une contribution unique, et vous avez pris le temps d'expliquer clairement pourquoi cela valait la peine d'être lu. +1 pour l'originalité et l'effort! J'ai hâte de lire ceci bientôt ...
Avery Payne
Bien. Je ne pense pas que vous serez déçu.
Charlie Flowers
7
Maîtres du destin. En ce qui concerne la motivation et l'amour pour votre profession: cela ne sera pas meilleur que ce qui est décrit dans ce livre, une histoire véritablement inspirante!
Réponses:
la source
K&R
@Juan: Je connais Juan, je sais - mais il y a des choses qui ne peuvent être apprises qu'en se mettant au travail. 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 nous cherchons vraiment la raison de leur existence. : P
@Keith: Grande 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 embrasse. +1
la source
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 informaticiens par JK Truss.
Bien que cela ne vous apprenne pas la programmation, cela vous enseigne les mathématiques fondamentales que chaque programmeur devrait connaître. Vous vous souvenez peut-être de ce truc de l'université, mais vraiment, la logique des prédicats vous améliorera les 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.
la source
Systemantics: comment les systèmes fonctionnent et surtout comment ils échouent . Faites-en bon usage. Mais vous pourriez ne pas avoir l'humour avant d'avoir travaillé sur quelques projets qui ont échoué.
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 parties 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. Découvrez un exemple concret sur la machine à rayonnement Therac-25 , dont les défauts logiciels ont été masqués par des pannes matérielles. Lorsque les pannes matérielles ont été supprimées, la condition de concurrence logicielle qui n'était pas détectée pendant toutes ces années a entraîné la mort de 3 personnes.
la source
Hacker's Delight est l'un de mes favoris personnels , car c'était aussi amusant à lire qu'éducatif.
J'espère que la deuxième édition sortira bientôt!
la source
Concepts, techniques et modèles de programmation informatique.
texte de remplacement http://ecx.images-amazon.com/images/I/51YZ50ZR13L._SL500_AA240_.jpg
la source
Programmation extrême expliquée: Embrace Change par Kent Beck. Bien que je ne préconise pas une approche inconditionnelle de XP ou de la route sur le développement de logiciels, j'aurais aimé avoir été présenté 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 - tout cela a changé ma façon d'envisager 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 n'apparaissaient pas aussi gros.
la source
Types et langages de programmation par Benjamin C Pierce pour une compréhension approfondie des fondements des langages de programmation.
la source
texte alternatif http://ecx.images-amazon.com/images/I/51E0Ojkz8iL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg
la source
Database System Concepts est l'un des meilleurs livres que vous pouvez lire sur la compréhension des bons principes de conception de bases de données.
la source
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 le livre entier suit le principe KISS. Personnellement, ce n'est pas ma langue de prédilection, mais toujours influente pour moi.
la source
Programmation à partir de zéro. C'est gratuit sur internet. Ce livre m'a appris l'AS & T asm. C'est trés facile à lire.
la source
Paradigmes de la programmation de l'intelligence artificielle : études de cas en Common Lisp par Peter Norvig
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
Un savoir-faire logiciel définitivement
texte de remplacement 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 produit: web VS shrinkwrap VS framework IBM. À quoi pensaient les gens lorsqu'ils ont conçu un modèle de cascade? Lisez ceci et tout ce que nous deviendrons clair (j'espère)
la source
@Peter Coulton - vous ne lisez pas Knuth, vous l'étudiez.
Pour moi et mon travail ... Les structures de données purement fonctionnelles sont idéales pour penser et développer en ayant à l'esprit les langages fonctionnels.
la source
"Le monde est plat" par 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 ces professions paient, encore moins les salaires versés aux mathématiciens avertis qui se dirigent vers le secteur financier. Et les salaires pour construire le code s'érodent parce que c'est une profession qui est relativement facile pour les intelligents et les auto-disciplinés dans la plupart des économies à 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 pour 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. Les entreprises qui impliquent de la programmation, absolument. Étudiez les affaires, en savoir suffisamment 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 vous aimez la programmation et que pour cette raison vous avez l' intention d'en faire votre carrière, alors il vous appartient de développer une compréhension froide des forces qui sont, et continueront, d'en faire une profession de plus en plus difficile à vivre. . "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 déjà arrivées. Si vous pouvez le lire et ne pas avoir peur, alors sortez et achetez "Code complet".
la source
L'année dernière, j'ai pris un certain nombre de cours. je lis
Le dilemme de l'innovateur (technologie perturbatrice)
Le mois de l'homme mythique (logiciel de gestion)
Crossing the Chasm (démarrage)
Systèmes de gestion de base de données, COW Book
Programming C #, The OSTRICH Book
Beginning iPhone Developmen, The GRAPEFRUIT Book
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 penser au monde du logiciel moderne. Le défi relevé est la technologie perturbatrice et la façon dont les entreprises de disques durs et les entreprises non techniques sont toujours perturbées par de nouvelles technologies révolutionnaires. Cela donne une nouvelle perspective lorsque l'on pense à Google, probablement la plus grande entreprise «Web». Pourquoi ont-ils leurs mains en TOUT? C'est parce qu'ils ne veulent pas que leur position soit perturbée par quelque chose de nouveau. L'aperçu sur Google est suffisant pour se faire une idée. Lis le!
la source
hackers, par Steven Levy.
La personnalité et le mode de vie doivent venir en premier. Tout le reste peut être appris.
la source
La pratique de la programmation
et
Comment le résoudre par ordinateur
texte de remplacement http://img.infibeam.com/img/7101e0ee/496b1/05/629/PMB-9788131705629.jpg?hei=200&wid=160&op_sharpen=1
la source
Le langage Python a été très influent pour moi, j'aurais aimé avoir lu ce livre il y a des années. La beauté et la simplicité du langage Python ont vraiment affecté la façon dont j'écrivais du code dans d'autres langages.
la source
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
Très bon livre. A un goût élevé des domaines les plus importants de l'informatique. Oui, CS! = Programmation, mais cela est toujours utile à tous les programmeurs.
la source
Analyse et conception orientées objet avec applications par Brady Booch
la source
Le mois mythique de l'homme par Fred Brooks http://en.wikipedia.org/wiki/The_Mythical_Man-Month
la source
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 must pour toute programmation qui s'apprête à démarrer un projet sous la plate-forme Unix.
la source
Bien que je convienne que bon nombre des livres ci-dessus sont des lectures incontournables (programmeur pragmatique, mois-homme mythique, art de la programmation informatique et SICP viennent immédiatement à l'esprit), je voudrais 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»).
la source
Code Craft de Pete Goodliffe est une bonne lecture!
Code Craft http://ecx.images-amazon.com/images/I/51WZ9AEC3GL._SL500_BO2,204,203,200_PIsitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_.jpg
la source
Le refactoring de Martin Fowler : améliorer la conception du code existant a déjà été répertorié. Mais je vais expliquer en détail pourquoi cela m'a impacté.
L'essence de tout le livre concerne la structuration du code afin qu'il soit plus simple à lire et à comprendre par les humains . Cela m'apprend fortement que le code que j'écris est destiné à mes collègues et successeurs à consommer et éventuellement à apprendre quelque chose de bon . Cela m'inspire à programmer consciemment d'une manière qui laisse les gens louer mon nom et ne pas me maudire à la damnation pour l'éternité .
la source
texte de remplacement http://ecx.images-amazon.com/images/I/61dECNkdnTL._SL500_AA240_.jpg
C ++ How to Program Il est bon pour les débutants.C'est un excellent livre complet avec 1500 pages.
la source
Voici un excellent livre qui n'est pas aussi largement applaudi, mais qui regorge de connaissances approfondies: Agile Software Development: The Cooperative Game , par Alistair Cockburn.
Qu'est-ce qui est si spécial? Eh bien, il est clair que tout le monde a entendu le terme "Agile", et il semble que la plupart sont des croyants de nos jours. Que vous le croyiez ou non, cependant, il existe des principes profonds derrière la raison pour laquelle le mouvement Agile existe. Ce livre découvre et articule ces principes d'une manière précise et scientifique. Certains des principes sont (au fait, ce sont mes mots, pas ceux d'Alistair):
Il y a tellement plus là-dedans aussi. Je vais me taire maintenant, mais je recommande fortement ce livre!
la source
Maîtres du destin. En ce qui concerne la motivation et l'amour pour votre profession: cela ne sera pas meilleur que ce qui est décrit dans ce livre, une histoire véritablement inspirante!
la source