Je pense que vous devriez restreindre votre question à des livres de programmation spécifiques. Si vous incluez le développement de logiciels, vous ouvrez les livres de la porte, y compris le guide de survie du projet logiciel, une discipline pour l'ingénierie logicielle, la valse avec les ours, la cathédrale et le bazar, les architectures logicielles en pratique, les concepts et la conception des systèmes distribués, les exigences logicielles, le développement rapide. ..ce sont de grands livres bien cités qui ont tout à voir avec le développement / l'ingénierie de logiciels, mais peu à voir avec la programmation réelle des logiciels.
Ce livre explique comment écrire du code qui fonctionne et qui est maintenable. Un concept clé est d'être pratique. Tout dans le livre se résume à 70 conseils faciles à retenir qui vous aident à fournir un logiciel de meilleure qualité et de meilleure qualité.
Ce livre est probablement le livre définitif sur la construction de logiciels. Il aborde des sujets tels que les fondements de la construction (exigences, architecture et conception), le choix d'un langage de programmation, le choix d'une méthodologie de développement, la conception de classes et d'objets, l'écriture de fonctions et de méthodes de haute qualité, la programmation défensive, l'utilisation et la dénomination de variables , types de données, organisation et mise en forme des déclarations, programmation collaborative, tests, débogage, refactorisation et outils de développement.
C'est un must sur l'étagère de chaque ingénieur logiciel, même si vous n'écrivez pas explicitement du code.
Il est intéressant de noter que l' immuabilité n'est mentionnée nulle part dans le livre.
Jonas
1
Sensationnel. Je viens de parcourir l'index - il n'y a aucune mention d'immuabilité.
Thomas Owens
Je pense que c'est un excellent livre et qu'il vaut toujours la peine d'être lu, mais certains morceaux (et commissions) commencent à dater un peu le livre
Il s'agissait de mon premier manuel académique il y a 10 ans, et il me fait toujours remarquer à quel point il est pertinent pour prédire les tendances en matière de "génie logiciel" de pointe et de programmation en général.
Il utilise LISP pour ses exemples, mais je ne considère LISP aucun type de langage, donc il est totalement agnostique;)
SICP, est juste un merveilleux livre. Un de ces jours, je dois m'asseoir et aller jeter le tout à nouveau, comme je ne l'ai pas fait depuis près de 20 ans.
Pourriez-vous expliquer cela plus en détail - comment et pourquoi répond-il à la question posée? Les "réponses en lien uniquement" ne sont pas tout à fait les bienvenues à Stack Exchange
C'est un livre indispensable pour les développeurs de logiciels. La plupart des tomes de développement de logiciels parlent de logiciels de codage, de langages de programmation et des dernières technologies et techniques pour écrire des logiciels.
Dans "The Mythical Man Month" - M. Brooks aborde un aspect plus fondamental (OMI) du développement logiciel - l'aspect social. Il aborde les problèmes rencontrés dans un projet logiciel majeur, du problème de l'ajout de personnes, du deuxième effet système et de la nécessité d'un processus approprié.
Ce livre s'intéresse à la programmation dans la perspective d'en faire une discipline d'ingénierie, quelque chose qui peut être utilisé pour concevoir un gros logiciel complexe.
Modèles de conception . Les modèles sont largement pliés en OOP, mais dans OOP, ils sont assez applicables à n'importe quelle langue.
Vous devriez le lire car cela fera de vous un meilleur designer. Il vous apprend de bonnes façons de résoudre des problèmes de conception de sous-système que vous n'auriez peut-être pas compris avant de concevoir des systèmes depuis 40 ans. Ce sont des solutions réutilisables à des problèmes semi-courants. Cela dit, il y a un modèle que les étudiants en deuxième année suivent lorsqu'ils apprennent les modèles de conception à l'école:
Les modèles de conception sont un peu soignés. Je me demande comment je peux les utiliser dans ce projet sur lequel je travaille?
Les modèles de conception sont 10 fois meilleurs que le pain tranché! Je vais les utiliser partout!
Ok, il y a un temps et un lieu pour utiliser des modèles spécifiques. La modération est bonne.
Nous devons résoudre ce problème avec la solution X. Ah oui, cela se trouve être le motif Y. Comment ça?
Beaucoup de concepts de haut niveau, c'est un livre assez avancé que je ne recommanderais pas aux développeurs novices. Si vous travaillez sur un projet logiciel à grande échelle avec beaucoup d'interdépendances, c'est une excellente référence.
Une super introduction au TDD. J'ai commencé sur le chemin TDD. Les exemples de code sont Java, mais le matériel est par ailleurs très indépendant du langage.
Refactoring - Martin Fowler (Il en a quelques-uns qui valent vraiment la peine)
Code propre
97 choses que les programmeurs devraient savoir.
Ce sont tous des livres que j'ai lus complètement ou relus des parties importantes de quelques fois et sont bien assemblés. Je suis un nouveau venu dans la programmation dans son ensemble, donc je les ai utilisés pour obtenir une compréhension contextuelle de ce que je devrais apprendre à faire.
Oh pour les trucs de base de données
L'art du SQL
Simplement SQL
SQL pour Smarties - Joe Celko
Tout cela me vient à l'esprit du haut de la tête, alors pardonnez-moi de ne pas avoir rappelé tous les auteurs - j'étais en route vers un autre article sur la mémorisation de la syntaxe :).
Réponses:
Le programmeur pragmatique: du compagnon au maître - Andrew Hunt et David Thomas
Ce livre explique comment écrire du code qui fonctionne et qui est maintenable. Un concept clé est d'être pratique. Tout dans le livre se résume à 70 conseils faciles à retenir qui vous aident à fournir un logiciel de meilleure qualité et de meilleure qualité.
la source
Code Complete: A Practical Handbook of Software Construction par Steve McConnell
Ce livre est probablement le livre définitif sur la construction de logiciels. Il aborde des sujets tels que les fondements de la construction (exigences, architecture et conception), le choix d'un langage de programmation, le choix d'une méthodologie de développement, la conception de classes et d'objets, l'écriture de fonctions et de méthodes de haute qualité, la programmation défensive, l'utilisation et la dénomination de variables , types de données, organisation et mise en forme des déclarations, programmation collaborative, tests, débogage, refactorisation et outils de développement.
C'est un must sur l'étagère de chaque ingénieur logiciel, même si vous n'écrivez pas explicitement du code.
la source
Mon préféré est: Structure et interprétation des programmes informatiques
Il s'agissait de mon premier manuel académique il y a 10 ans, et il me fait toujours remarquer à quel point il est pertinent pour prédire les tendances en matière de "génie logiciel" de pointe et de programmation en général.
Il utilise LISP pour ses exemples, mais je ne considère LISP aucun type de langage, donc il est totalement agnostique;)
la source
Code propre - Robert Martin
la source
Le mois de l'homme mythique - Frederick P Brooks
C'est un livre indispensable pour les développeurs de logiciels. La plupart des tomes de développement de logiciels parlent de logiciels de codage, de langages de programmation et des dernières technologies et techniques pour écrire des logiciels.
Dans "The Mythical Man Month" - M. Brooks aborde un aspect plus fondamental (OMI) du développement logiciel - l'aspect social. Il aborde les problèmes rencontrés dans un projet logiciel majeur, du problème de l'ajout de personnes, du deuxième effet système et de la nécessité d'un processus approprié.
Ce livre s'intéresse à la programmation dans la perspective d'en faire une discipline d'ingénierie, quelque chose qui peut être utilisé pour concevoir un gros logiciel complexe.
la source
Modèles de conception . Les modèles sont largement pliés en OOP, mais dans OOP, ils sont assez applicables à n'importe quelle langue.
Vous devriez le lire car cela fera de vous un meilleur designer. Il vous apprend de bonnes façons de résoudre des problèmes de conception de sous-système que vous n'auriez peut-être pas compris avant de concevoir des systèmes depuis 40 ans. Ce sont des solutions réutilisables à des problèmes semi-courants. Cela dit, il y a un modèle que les étudiants en deuxième année suivent lorsqu'ils apprennent les modèles de conception à l'école:
la source
Conception orientée domaine: s'attaquer à la complexité au cœur du logiciel
Eric Evans
Beaucoup de concepts de haut niveau, c'est un livre assez avancé que je ne recommanderais pas aux développeurs novices. Si vous travaillez sur un projet logiciel à grande échelle avec beaucoup d'interdépendances, c'est une excellente référence.
la source
Code - Microsoft Press.
C'est un excellent livre informatique causal qui vous emmène du code Morse au binaire et vice-versa.
la source
Développement piloté par les tests: par exemple par Kent Beck.
Une super introduction au TDD. J'ai commencé sur le chemin TDD. Les exemples de code sont Java, mais le matériel est par ailleurs très indépendant du langage.
la source
Ce sont tous des livres que j'ai lus complètement ou relus des parties importantes de quelques fois et sont bien assemblés. Je suis un nouveau venu dans la programmation dans son ensemble, donc je les ai utilisés pour obtenir une compréhension contextuelle de ce que je devrais apprendre à faire.
Oh pour les trucs de base de données
la source