Que contient ma bibliothèque de génie logiciel

Se tenir à jour et s'améliorer constamment fait partie du travail d'un ingénieur logiciel.

Il existe de nombreuses façons d'étudier de nouvelles choses sur Internet, comme les MOOC, les tutoriels et les articles. Cependant, parfois, un livre physique est le meilleur choix , surtout lorsqu'il s'agit d'une «référence» qui fournit des connaissances qui dureront pour les années à venir. Nous pouvons le mettre sur notre étagère et le parcourir chaque fois que nous le jugeons nécessaire.

Voici une liste d'ouvrages de référence que je garde dans ma bibliothèque de génie logiciel. J'espère que cela pourra être une source d'inspiration pour tous ceux qui recherchent quelque chose d'intéressant à lire! ?

Ce que j'ai sur ma bibliothèque

Modèles de conception: éléments d'un logiciel orienté objet réutilisable

C'est un classique.

Dans ce livre, le soi-disant "Gang of Four" présente les 23 modèles de conception qui ont conduit le monde orienté objet pendant des décennies. De nouveaux modèles ont été créés depuis lors, mais ceux du livre sont considérés comme les fondations de tous les autres modèles.

Ce n'est pas une lecture facile, mais vous devriez y jeter un coup d'œil juste pour comprendre où trouver ce dont vous avez besoin à chaque occasion. Gardez-le sur votre bureau et parcourez-le lorsque vous construisez quelque chose et que vous avez le sentiment: "Ce que je fais vous semble familier." Vous découvrirez probablement que vous essayez d'implémenter un modèle de conception déjà décrit dans ce livre.

Clean Code: un manuel de l'artisanat logiciel agile

J'ai lu ce livre il y a de nombreuses années, mais il est resté avec moi depuis lors.

C'est une excellente source de bonnes pratiques pour produire du code propre et lisible et éviter les odeurs de code. Le livre se concentre principalement sur Java / OOP, mais de nombreux conseils peuvent être appliqués à chaque langage ou paradigme de programmation.

Écrire du code maintenable et lisible n'est pas un luxe - c'est quelque chose à quoi tout bon ingénieur logiciel devrait aspirer . Ce livre vous fournira les connaissances nécessaires pour y parvenir.

Oncle Bob peut parfois être un peu extrême, et je ne suis pas d'accord avec lui sur toutes les techniques présentées. Ma suggestion: lisez-le et n'emportez avec vous que ce qui vous semble juste. En tout cas, c'est un livre qui vaut la peine d'être lu .

Apprenez-vous un Haskell pour un grand bien!: Guide du débutant

C'est un livre sur le langage de programmation Haskell, alors pourquoi l'acheter et le garder comme référence? Mes raisons sont:

  • C'est un livre très bien écrit et facile à lire sur un sujet pas si facile comme la programmation fonctionnelle
  • Il vous donne les bases de la pensée fonctionnelle, pas seulement la syntaxe Haskell
  • Haskell est une langue très élégante et je l'aime

C'est le livre qui m'a initié à la programmation fonctionnelle. En ce moment, je programme principalement en Scala, mais la transition a été beaucoup plus facile après avoir appris les bases de Haskell.

La programmation fonctionnelle n'est pas facile, mais elle vous ouvrira l'esprit. Cela peut être très théorique et le mettre en pratique en utilisant Haskell vous aidera beaucoup .

Il y a aussi de très beaux dessins dans le livre, vous n'avez donc aucune excuse pour ne pas le feuilleter. ?

Théorie des catégories pour les programmeurs

Ce livre couvre la théorie des catégories , qui est le fondement du paradigme de programmation fonctionnelle.

Le sujet est assez complexe pour les non-mathématiciens, mais l'auteur a fait de gros efforts pour le rendre compréhensible pour les développeurs. J'avoue que j'ai eu quelques difficultés à le lire, mais j'aimerais le revoir.

Ce livre n'est pas nécessaire pour devenir un grand programmeur fonctionnel. Lisez-le si vous aimez les défis et souhaitez approfondir les fondements théoriques de la programmation fonctionnelle.

Conception d'applications gourmandes en données: les grandes idées derrière des systèmes fiables, évolutifs et maintenables

C'est mon préféré, peut-être parce que j'aime les systèmes distribués! :-RÉ

Dans cet ouvrage, Martin Kleppmann décrit tous les différents aspects des systèmes distribués, de la sérialisation aux modèles de cohérence et au consensus, en passant par les différents moteurs de bases de données. Il explore également les nouvelles tendances concernant les applications basées sur les données.

Dans un monde d'applications basées sur des microservices cloud natifs, il est fondamental de connaître les différents aspects d'un système distribué. Les connaissances fournies par ce livre ne sont pas liées à une technologie spécifique et seront précieuses pour toute votre carrière en génie logiciel .

Libérez-le!: Concevez et déployez des logiciels prêts pour la production

Je lis celui-ci maintenant.

Sommes-nous finis une fois que notre logiciel est envoyé en production? Non, ce n'est que le début!

Ce livre met en évidence ce qui peut mal tourner une fois que le logiciel est mis en production et doit faire face à de vrais utilisateurs. Il décrit des anti-modèles qui peuvent nuire à la stabilité de notre logiciel, ainsi que des solutions à de tels problèmes.

Ce que j'aime le plus dans ce livre, c'est que chaque chapitre commence par un exemple tiré de la vie réelle. Ensuite, l'auteur analyse les problèmes qui ont causé l'échec du logiciel en production. Je pense qu'apprendre à partir d'exemples concrets est une approche très efficace.

Introduction aux algorithmes

Que puis-je dire à propos de ce livre? Achetez-le et gardez-le sur votre bureau .

Si vous êtes ingénieur logiciel, il y a de fortes chances que vous ayez à étudier les structures de données et les algorithmes. Il n'est pas toujours facile de gérer la complexité ou de choisir la bonne structure de données.

En cas de doute, ouvrez ce livre et vous trouverez ce dont vous avez besoin.

Pour la plupart des gens (y compris moi), c'est une lecture très difficile. En général, je lis simplement ce que j'ai besoin de savoir à ce moment-là et je garde le livre en vue sur mon bureau.

Hyperfocus: comment gérer votre attention dans un monde de distraction

Ce n'est pas un livre technique, mais c'est dans l'ensemble des lectures qui ont changé ma vie en mieux.

Notre travail en tant qu'ingénieurs logiciels consiste à résoudre des problèmes avec notre esprit. Pour être efficace dans cette tâche, nous devons être capables de nous concentrer complètement sur le problème que nous résolvons .

Vous trouverez ici de nombreuses suggestions et techniques pour maximiser le temps pendant lequel vous pouvez vous concentrer sur une tâche. L'auteur discute également de l'importance de laisser votre esprit vagabonder lorsque vous avez besoin d'être plus créatif.

Maîtriser comment utiliser votre attention est quelque chose qui améliorera non seulement vos performances au travail, mais également tous les autres aspects de votre vie.

Ce que je vais ajouter à ma bibliothèque

Le programmeur pragmatique

C'est l'un des livres les plus connus sur le développement de logiciels.

Les suggestions et les techniques présentées dans ce livre ont influencé la carrière de nombreux développeurs et ingénieurs pour le mieux. Le livre a été publié en 1999, mais il est maintenant disponible en tant que nouvelle édition mise à jour du 20e anniversaire.

Vous ne pouvez pas rater ça. :-)

Refactoring: amélioration de la conception du code existant

Il est difficile de toujours fournir un code de haute qualité. Les délais, l'urgence, une mauvaise journée affectent tous la qualité de votre travail.

C'est pourquoi le refactoring est si important. Si nous ne pouvons pas fournir la qualité du premier coup, nous pouvons l'améliorer plus tard pour une meilleure maintenabilité. Martin Fowler (une de mes idoles dans le monde du développement logiciel) décrit les meilleures techniques pour un refactoring efficace.

Il y aura toujours de la place sur ma bibliothèque pour les livres qui m'aident à écrire un meilleur code.

Conclusion

Voici ma liste de livres incontournables sur le génie logiciel. Ce n'est en aucun cas une liste complète de livres "importants" dans ce domaine, et je suis sûr que j'ajouterai de plus en plus de livres dans les années à venir.

J'espère que je vous ai donné quelques bons conseils sur le prochain livre que vous devriez lire. ?

À plus!?