Il y a une question qui est souvent posée : devrais-je lire des livres pour devenir un meilleur développeur? Habituellement, la question est oui, cependant lorsque vous demandez quels livres ? vous obtiendrez des réponses différentes de différentes personnes, car il y a tellement de sujets dans le domaine du génie logiciel. Au cours des années, j’ai développé une routine pour lire beaucoup de livres, donc en tenant compte de ma propre expérience, de l’expérience de nombreux pairs avec qui j’ai parlé, ainsi que d’autres sources qui ont compilé des listes similaires. [1][2][3][4][5] (certains d’entre eux utilisent des analyses pour calculer le score), j’ai compilé une liste des meilleurs livres que chaque développeur de logiciels devrait lire à un moment donné de sa carrière.
Juste pour noter que la simple lecture de ces livres ne fera pas de vous un grand développeur, pour cela vous aurez besoin d’années de développement, mais vous aurez un aperçu de certains principes directeurs que vous pourriez appliquer. De plus, en les lisant, vous éviterez de commettre certaines erreurs courantes de développement.
Cette liste n’est pas complète, car il y a toujours de nouveaux et bons livres, mais ceux-ci ont eu le plus d’impact sur la carrière de nombreux développeurs de logiciels et comme il existe pour la plupart des langages agnostiques, ils peuvent être appliqués en utilisant n’importe quel langage de programmation.
NRemarque : Lorsque vous achetez via des liens sur notre site, nous pouvons recevoir une commission d’affiliation.

L’un des plus grands livres de développement de logiciels jamais écrits par l’oncle Bob Martin en 2008. Il est écrit pour enseigner aux ingénieurs logiciels les principes de l’écriture de code de programmation propre. Il y a beaucoup d’exemples à l’intérieur, montrant comment refactoriser le code pour qu’il soit plus lisible et maintenable. De plus, il comprend des chapitres pour les erreurs courantes commises par toutes sortes de programmeurs et des chapitres pour expliquer les principes SOLID de la conception orientée objet. Même si les exemples du livre sont réalisés en Java, il est également utile pour d’autres langages de programmation orientés objet.
En plus de ce livre, il existe d’autres livres dans la série Uncle Bob, tels que Clean Coder, Clean Architecture, etc.
Lien : Amazon.com

Ce livre est rempli de conseils pratiques à la fois techniques et professionnels pour les développeurs afin de devenir de meilleurs développeurs. Il examine ce que signifie être un développeur moderne, en abordant des sujets allant de la responsabilité personnelle et du développement de carrière aux techniques architecturales. Même s’il a été écrit en 1999, il est toujours valable à bien des égards. La particularité de ce livre est qu’il vous enseigne une manière pragmatique avec une collection de conseils pour améliorer le processus de développement. Les auteurs, par exemple, conseillent aux lecteurs d’apprendre un éditeur de texte et de l’utiliser pour tout et recommandent également d’utiliser un logiciel de suivi des versions, même pour les plus petits projets.
Lien : Amazon.com

Certains considèrent ce livre comme le meilleur guide pratique de programmation, fortement recommandé aux débutants. Encore un des livres écrits il y a plus de 15 ans, toujours valable aujourd’hui. Il traite de sujets tels que la conception, le codage, le débogage et les tests. Dans plus de 900 pages, les auteurs décrivent comment écrire des programmes pour les gens d’abord, puis pour les ordinateurs ensuite, comment diviser votre code en termes de domaines et comment maîtriser les qualités humaines des meilleurs codeurs (humilité, curiosité et le plus important, gardez votre ego sous contrôle).
Lien : Amazon.com

Probablement les livres les plus célèbres et les plus anciens de cette liste (publiés en 1994.). Il décrit 23 modèles de conception de logiciels dans trois catégories différentes, pour créer des conceptions plus flexibles, élégantes et réutilisables sans avoir à redécouvrir les solutions de conception elles-mêmes. Une idée pour un modèle de conception en tant que forme réutilisable d’une solution à un modèle de conception a été prise par l’architecte Christopher Alexander. C’est une lecture incontournable pour un architecte ou un développeur d’un système complexe. Les auteurs sont souvent appelés les Gang des quatre (GoF). Le livre comprend des exemples en C++ et Smalltalk.
Lien : Amazon.com

Dans ce livre, Martin Fowler écrit sur l’amélioration de la conception d’un code existant. Il représente le refactoring comme un processus de modification d’un système logiciel de manière à ne pas modifier le comportement externe du code, mais à améliorer sa structure interne. En utilisant le refactoring comme technique, il est possible de prendre une mauvaise conception et de la retravailler en une bonne. Dans le livre, on peut trouver un catalogue de plus de 40 refactorisations éprouvées avec des détails sur quand et pourquoi les utiliser. Dans la première édition, il utilise Java comme langage principal, mais ces principes s’appliquent à tout langage orienté objet. Dans la deuxième édition, le principal langage de programmation utilisé dans le livre est JavaScript.
Lien : Amazon.com
L’un des livres les plus célèbres sur toutes sortes d’algorithmes en profondeur (également connu sous le nom de CLRS). Il représente un guide complet pour toutes sortes de lecteurs, des débutants aux professionnels. Chaque chapitre est relativement autonome et peut être utilisé comme unité d’étude. Les algorithmes sont décrits en anglais et en pseudocode, donc on peut être familier même avec quelqu’un qui n’a pas fait beaucoup de codage. On pourrait dire que c’est plus un livre théorique que pratique. Le livre couvre des sujets tels que les structures de données, les algorithmes rapides, la théorie des graphes, la géométrie computationnelle et bien plus encore.
Lien : Amazon.com
Ce livre est l’un des meilleurs livres pour apprendre les bases de la programmation (également connu sous le nom de SICP). Il représente un cours fondamental de la programmation technique au MIT et utilise un schéma pour montrer différents concepts de programmation. Le livre explique les quatre paradigmes les plus connus des langages de programmation : programmation impérative, logique, orientée objet et applicative.
Lien : Amazon.com
Dans ce livre, Michael Feathers propose différentes stratégies pour gérer les bases de code héritées volumineuses et non testées. Le livre est important, car presque tous les développeurs à un moment donné de leur carrière doivent travailler avec un système hérité et cela représente toujours les problèmes les plus difficiles pour de nombreuses entreprises. Le livre approfondit la compréhension du processus général d’un changement logiciel, comme l’ajout de fonctionnalités, la correction de bogues, l’optimisation des performances, etc. De plus, il vous apprendra comment préparer le code hérité pour le test et identifier où le code doit être modifié. Les exemples du livre sont écrits en C, C++, C# et Java.
Lien : Amazon.com
Le livre représente l’un des livres les plus influents qui aident une personne à penser comme un programmeur. Chaque concept du livre est couvert de problèmes pratiques et de diverses solutions. Le livre met le lecteur au défi de comprendre les concepts de base de la mémoire, du processeur et des algorithmes et d’augmenter progressivement les difficultés plutôt que de donner la réponse tout de suite. « Programming Pearls » est un livre un peu différent des autres de cette liste et il représente un moyen solide d’enseigner les problèmes de structures de données et d’algorithmes, en particulier la recherche, le tri, etc.
Lien : Amazon.com
Un autre livre dans cette liste d’un auteur productif Martin Fowler qui traite de la pratique du développement d’applications d’entreprise. Le livre vous enseigne différents concepts, tels que : superposez-vous correctement votre application, connaissez-vous les différentes conceptions de présentation parmi lesquelles choisir (MVC, MVVM, modèles), comment accédez-vous à vos données, etc. Martin en donne plus de 40 ? des modèles comme solutions à des problèmes courants lors de la conception d’applications d’entreprise. Il est livré avec de nombreux diagrammes UML et exemples de code en Java et C#. Tenez compte du fait que le livre date de 2002, il manque donc certains des concepts modernes, tels que REST, JSON ou cloud.
Lien : Amazon.com
Honorable Mentions
En plus des 10 meilleurs livres de développement de logiciels, il existe de nombreux autres bons livres qu’il n’est pas facile d’exclure de cette liste. En voici quelques-uns que je recommande fortement de lire :
- L’art de la programmation informatique, écrit par un célèbre informaticien de l’Université de Stanford, le professeur Donald Knuth. Ce livre est très populaire et très apprécié par bon nombre des meilleurs programmeurs au monde pour son exactitude mathématique combinée à un humour exceptionnel tout au long des chapitres.
- Head First Design Patterns, est un livre qui décrit les modèles de conception et les meilleures pratiques utilisées par d’autres développeurs pour créer des logiciels fonctionnels, réutilisables, élégants et flexibles. Il est également rempli de superbes visualisations qui vous aideront à apprendre plus facilement de nouveaux concepts.
- Cracking the Coding Interview est fortement recommandé à tous ceux qui souhaitent ou ont besoin de passer des entretiens de codage. L’auteur explique comment rechercher des détails cachés dans les questions, diviser les problèmes en petits morceaux et s’améliorer dans l’apprentissage des concepts. De plus, il fournit 189 questions et solutions d’entretien réelles.
- Enterprise Integration Patterns est un livre qui décrit comment les applications échangent des données et communiquent. Il englobe les modèles de messagerie, les composants de messagerie et quelques exemples concrets de la façon dont un système bancaire serait conçu.
- L’analyse et la conception orientées objet est un guide sur la façon dont nous concevons un logiciel et il fournit de nombreuses informations théoriques sur les raisons pour lesquelles vous feriez de la programmation orientée objet en utilisant UML. Il est écrit par Grady Booch, IBM Fellow et auteur du langage UML.
- L’art des tests unitaires. Ce livre se concentre sur les tests unitaires en tant que chose cruciale que tout développeur doit faire pour fournir un bon logiciel. Le livre explique les compétences de base sur la façon de tester unitairement, comment l’étendre et ce qu’il faut tester unitairement.
- Peopleware : Productive Projects and Teams est l’un des classiques de la gestion de logiciels. Cela explique pourquoi les managers laissent autant de latitude à leurs équipes pour faire avancer les choses et pourquoi il y a tant d’équipes SWAT en gelée chez Microsoft qui sont remarquablement productives. Le livre aborde des problèmes sociologiques ou politiques, tels que la chimie de groupe, le « temps d’écoulement » et le calme dans l’environnement de travail.
- Le Mythical Man-Month traite de la productivité, s’attaquant à l’un des mythes selon lesquels le temps pris par un ingénieur peut être divisé également si vous embauchez plus d’ingénieurs pour faire le travail. Il explique comment gérer les retards dans la livraison du projet, communiquer efficacement en tant que chef de projet et comment gérer l’itération du projet.
- Domain-Driven Design : Tackling Complexity in the Heart of Software explique comment traduire le processus dans le logiciel. Il décrivait à quoi ressemble un processus pour quelqu’un qui n’écrit pas de logiciel et comment communique-t-on à propos d’un processus afin qu’il puisse être traduit en un système logiciel.
- The Phoenix Project : A Novel about IT, DevOps, and Helping Your Business Win est un récit sur une entreprise fictive qui passe au modèle DevOps à partir d’un modèle de travail plus ancien et moins intégré. Il parle des défis dans la coordination entre les opérations et le développement et comment faire ce pont.
- Soft Skills: Le manuel de vie du développeur de logiciels. Chaque programmeur a besoin de compétences non techniques dans sa vie professionnelle, d’autant plus que les responsabilités augmentent avec le temps, donc ce livre est parfaitement à sa place. L’interaction avec les collèges, les clients, la façon de parler avec confiance ou la capacité de négocier est quelque chose que vous trouverez dans ce livre. En outre, il comprend certains des conseils de productivité sur la façon de développer les bonnes habitudes pour améliorer la productivité.
Les références
[1] 20 livres les plus recommandés pour les développeurs de logiciels
[2] 10 meilleurs livres de programmation que vous devriez connaître
[3] Top 10 des livres que chaque programmeur doit lire une fois
[4] Les 10 meilleurs livres de génie logiciel en 2019
[5] Amazon.com – Livres sur l’informatique et la technologie
Dans les prochains articles de blog, j’écrirai plus sur de grands livres spécifiques à la technologie, alors restez à l’écoute. Merci d’avoir lu. Si tu as quelque…