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 pense que cette liste doit être variée et couvrir un large éventail de sujets.
Pour effectuer une recherche: utilisez la zone de recherche dans le coin supérieur droit. Pour rechercher les réponses à la question en cours, utilisez la inquestion:this
Par exemple:
inquestion:this "Code Complete"
K & R
@Juan: Je sais que Juan, je sais – mais certaines choses ne peuvent être apsockets qu’en se concentrant sur la tâche à accomplir. Parler d’idéaux abstraits toute la journée fait de vous un universitaire. C’est dans l’application de l’abstrait que nous prenons vraiment la raison de leur existence. : P
@Keith: Grande mention de “The Inmates are The Asylum” par Alan Cooper – un révélateur pour certain, 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
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 enseigne pas la programmation, cela vous apprend les mathématiques fondamentales que tout programmeur doit connaître. Vous vous en souvenez peut-être de l’université, mais en réalité, la logique des prédicats vous permettra d’améliorer vos compétences en programmation, vous devez apprendre la théorie des ensembles si vous souhaitez programmer en utilisant des collections.
Il y a vraiment beaucoup d’informations intéressantes ici qui peuvent vous faire réfléchir aux problèmes de différentes manières. Il est utile d’avoir, juste pour reprendre de temps en temps pour apprendre quelque chose de nouveau.
Systématique: comment les systèmes fonctionnent et surtout comment ils échouent . Utilisez-le pas cher. Mais vous pourriez ne pas avoir l’humour jusqu’à ce que vous ayez 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éfectueuses 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 concret à la machine à rayonnement Therac-25 , dont les failles logicielles ont été masquées par des défaillances matérielles. Lorsque les pannes 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 entraîné la mort de 3 personnes.
Un de mes favoris personnels est Hacker’s Delight , car c’était aussi amusant à lire qu’éducatif.
J’espère que la deuxième édition sera bientôt disponible!
Concepts, techniques et modèles de programmation informatique.
alt text http://ecx.images-amazon.com/images/I/51YZ50ZR13L._SL500_AA240_.jpg
Extreme Programming Explained: Embrace Change par Kent Beck. Bien que je ne préconise pas une prise en charge du développement logiciel par XP ou par autoroute, j’aurais aimé que les principes de ce livre me soient présentés beaucoup plus tôt dans ma carrière. Tests unitaires, refactorisation, simplicité, continuous integration, coût / temps / qualité / scope – 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 modification. Après Agile, ces démons n’étaient pas aussi grands.
Types et langages de programmation par Benjamin C Pierce pour une compréhension approfondie des fondements des langages de programmation.
Database System Concepts est l’un des meilleurs livres que vous puissiez lire sur la compréhension des principes de conception de bases de données.
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 pas mes langues de choix, mais toujours influentes pour moi.
Programmation depuis le début C’est gratuit sur internet. Ce livre m’a appris AT & T asm. C’est trés facile à lire.
Les 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. Lorsque j’étais à mi-chemin, j’ai réalisé que c’était le meilleur livre sur la programmation que j’avais lu jusqu’à présent.
Définitivement le savoir-faire logiciel
alt text 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: le framework Web VS VS rétractable VS IBM. Que pensaient les gens quand ils ont conçu un modèle en cascade? Lisez ceci et tout ce que nous deviendrons clairs (heureusement)
@ Peter Coulton – vous ne lisez pas Knuth, vous l’étudiez.
Pour moi et pour mon travail, les structures de données purement fonctionnelles sont idéales pour penser et se développer en ayant à l’esprit les langages fonctionnels.
“Le monde est plat” de Thomas Friedman.
L’excellence en 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, et encore moins les salaires versés aux mathématiciens qui se dirigent vers le secteur financier. Et les salaires pour la construction du code s’érodent parce que c’est un métier relativement facile à intégrer pour les intelligents et les auto-disciplinés.
La programmation a déjà diminué au sharepoint 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 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, êtes jeune et intelligent, la programmation n’est pas un choix de carrière rationnel. Les entresockets qui impliquent la programmation, absolument. Etudiez les affaires, connaissez assez la programmation pour affiner votre détecteur BS: génial. Mais consacrer la majeure partie de votre énergie mentale à la maîsortingse 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 souhaitez en faire votre carrière, il vous incombe de développer une compréhension des forces qui, et continueront, à faire en sorte que ce métier devienne de plus en plus difficile. . “The World is Flat” ne vous apprendra pas comment nommer vos variables, mais 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, sortez et achetez “Code Complete”.
Cette dernière année, j’ai pris un certain nombre de cours. J’ai lu
Le dilemme de l’innovateur (technologie perturbasortingce)
Le mois de l’homme mythique (gestion des logiciels)
Traverser le gouffre (démarrage)
Systèmes de gestion de firebase database, le livre COW
Programmation C #, Le livre OSTRICH
IPhone Developmen, le livre GRAPEFRUIT
Chaque livre était génial, mais le dilemme de l’innovateur de Clayton Christensen (1997 !!!) est vraiment un livre fantastique, et cela m’a vraiment fait réfléchir sur le monde du logiciel moderne. Le défi à relever est la technologie de rupture, et la manière dont les sociétés de disques durs et les sociétés non techniques sont toujours perturbées par les nouvelles technologies qui changent les jeux. Cela donne une nouvelle perspective à Google, probablement la plus grande entreprise Web. Pourquoi ont-ils leurs mains dans 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 avoir l’idée. Lis le!
les pirates, par Steven Levy.
La personnalité et le mode de vie doivent être prioritaires. Tout le rest peut être appris.
La pratique de la programmation
et
Comment le résoudre par ordinateur
alt text http://img.infibeam.com/img/7101e0ee/496b1/05/629/PMB-9788131705629.jpg?hei=200&wid=160&op_sharpen=1
Le langage Python m’a beaucoup influencé, j’aurais aimé le lire il y a des années. La beauté et la simplicité du langage Python ont vraiment affecté la manière dont j’ai écrit du code dans d’autres langues.
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. Possède un goût de haut niveau dans les domaines les plus importants de l’informatique. Oui, CS! = Programmation, mais cela rest utile pour tous les programmeurs.
Analyse orientée object et conception avec applications par Brady Booch
L’homme mythique-mois de Fred Brooks http://en.wikipedia.org/wiki/The_Mythical_Man-Month
Je pense que “L’art de la programmation Unix” est un excellent livre, par un excellent esprit hacker / shiny comme Eric S. Raymond, qui essaie de nous faire comprendre quelques principes de conception de logiciels (simplicité principalement). Ce livre est indispensable pour toute programmation sur le sharepoint lancer un projet sous la plate-forme Unix.
Bien que je reconnaisse que plusieurs des ouvrages ci-dessus sont incontournables (Pragmatic Programmer, Mythical Man-Month, Art of Computer Programmation et SICP me viennent immédiatement à l’esprit), je voudrais aller dans une direction légèrement différente et recommander A Discipline de programmation par Edsger Dijkstra. Même si elle a 32 ans, l’accent mis sur la «conception pour la vérifiabilité» est très pertinent (même si la «vérifiabilité» signifie plutôt la «preuve» que les «tests unitaires»).
Code Craft de Pete Goodliffe est une bonne lecture!
Artisanat du code http://ecx.images-amazon.com/images/I/51WZ9AEC3GL._SL500_BO2,204,203,200_PIsitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_.jpg
Le refactoring de Martin Fowler : Améliorer la conception du code existant a déjà été répertorié. Mais je détaillerai pourquoi cela a eu un impact sur moi.
L’essence de l’ouvrage est de structurer le code de manière à ce 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 à mes successeurs à consumr et éventuellement à apprendre quelque chose de bien . Cela m’inspire de programmer consciemment de manière à laisser les gens faire l’éloge de mon nom et ne pas me maudire pour la damnation pour toute l’éternité .
alt text 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.
Voici un excellent livre qui n’est pas aussi largement applaudi, mais qui déborde de perspicacité: Développement de logiciels agiles: The Cooperative Game , par Alistair Cockburn.
Qu’est-ce qu’il y a de si spécial? Eh bien, clairement, tout le monde a entendu le terme “Agile”, et il semble que la plupart sont des croyants de nos jours. Que vous croyiez ou non, il existe des principes fondamentaux qui expliquent pourquoi le mouvement Agile existe. Ce livre découvre et articule ces principes d’une manière précise et scientifique. Certains des principes sont (bien sûr, ce sont mes mots, pas Alistair):
Il y a tellement plus là aussi. Je vais me taire maintenant, mais je recommande vivement ce livre!
Maîtres de malheur Pour ce qui est de la motivation et de l’amour de votre profession: cela ne sera pas meilleur que ce qui a été décrit dans ce livre, une histoire inspirante!