Existe-t-il d'excellents livres de programmation ou de développement logiciel qui sont indépendants du langage? Pourquoi devrais-je le lire?
Existe-t-il d'excellents livres de programmation ou de développement logiciel qui sont indépendants du langage? Pourquoi devrais-je le lire?
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é.
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.
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;)
Code propre - Robert Martin
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.
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:
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.
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.
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