Notre étagère est un programmeur C #. Et vous?

Salut

Les futurs étudiants de la Veeam Academy nous demandent souvent des livres qui pourraient être utiles pour se préparer à entrer dans notre cours de programmation C #. Nous recommandons généralement plusieurs sources, en les accompagnant de nos commentaires sur la raison pour laquelle elles seront utiles.

Cependant, la plupart des livres de programmation ont une longueur de plus de 1K pages, et leur lecture "de couverture en couverture" prendra plus d'un mois, et peut-être même plus d'un an! Par conséquent, toutes nos recommandations pour les candidats à la Veeam Academy ne servent qu'à titre indicatif et non pas à une exigence obligatoire.

Au fil du temps, nous avons résumé nos commentaires sur chacune des publications et avons finalement obtenu une liste, il nous semble, de bons livres pour la croissance professionnelle d'un programmeur C #.
Nous présentons notre bref aperçu sous la coupe.

image

Voici un aperçu des livres suivants:

  1. J. Richter. CLR via C #
  2. Stephen S. Skien. Des algorithmes Guide de développement
  3. Joe Albahari. Enfiler en c #
  4. Itzik Ben-Gan. Microsoft SQL Server 2012. Bases de T-SQL
  5. J. Skeet. C # pour les professionnels. Les subtilités de la programmation
  6. Joe Duffy. Programmation simultanée sur Windows
  7. Eric Freeman et al. Head First. Modèles de conception
  8. Sergey Teplyakov. Modèles de conception .NET

J. Richter. CLR via C #

Richter
Lire Richter, c'est comme peindre les murs d'une pièce en blanc. Je l'ai lu une fois - peint en une seule couche. Dans ce cas, une couche ne suffit généralement pas - la peinture ne coule pas toujours en douceur et ne se révèle pas aussi brillante que nous le souhaiterions - il est donc préférable de la recouvrir et de la fixer avec une autre couche, et avec le temps, de teinter des endroits individuels. En général, plus il y a de couches, plus la pièce est blanche!

Chaque fois que vous lisez Richter, vous découvrez quelque chose de nouveau. Et le fait n'est pas que les éditions mises à jour de ce livre sortent à intervalles réguliers (ce qui, soit dit en passant, parle de sa grande popularité). Même en lisant la même version, vous trouvez des endroits intéressants en raison de la profondeur et de l'étendue avec lesquelles le matériel est présenté.

Beaucoup de gens appellent ce livre la «bible» et «l'alphabet» pour les programmeurs C #. Cependant, il convient de noter qu'il accorde peu d'attention à un langage de programmation spécifique - l'accent est mis sur la plate-forme .Net et les principes de base de son fonctionnement.

Par conséquent, il ne peut toujours pas être considéré comme un manuel C # (dans le sens généralement accepté pour les débutants), mais nous pouvons dire que c'est un livre requis pour tout développeur professionnel .Net. Cependant, même dans le cas où vous commencez juste votre cheminement de carrière, Richter vous aidera certainement à éviter beaucoup d'erreurs et vous permettra d'écrire des programmes plus efficacement, car vous comprendrez mieux la plate-forme.

Alors qu'est-ce qu'il y a dedans:

Environ 1000 pages de texte fascinant sur la structure interne de l'environnement d'exécution de langage commun (CLR) de Microsoft .NET Framework, rédigées dans un langage simple et de manière conviviale, reconnues par un expert en programmation, Jeffrey Richter.
Les chapitres sont divisés en sous-thèmes connexes, mais ils peuvent être lus (et même nécessaires) de manière non séquentielle. Chaque chapitre contient des liens vers d'autres chapitres, ce qui facilite la lecture par parties et vous permet de ne pas vous asseoir trop longtemps sur des sujets qui semblent maintenant particulièrement difficiles ou sans intérêt.

Dans les pages de ce livre, vous trouverez également des réponses à la plupart des questions qu'ils aiment poser lors des entretiens C # et .Net.

Pour les professionnels ayant une expérience en programmation pour la plate-forme .Net, ce livre n'a pas besoin de publicité. Pour les débutants, nous vous recommandons fortement de ne pas reporter sa connaissance dans une longue boîte!


Stephen S. Skien. Des algorithmes Guide de développement

Skiena
Si vous avez déjà derrière vous un cours universitaire général en algorithmes de base et que vous avez besoin de rafraîchir les points principaux en peu de temps, alors ce livre est l'un des meilleurs.

Ce n'est pas un manuel, mais plutôt un guide pour le développement efficace d'algorithmes dans la pratique. Le livre se distingue par une présentation très bonne et accessible, il regorge de liens vers la littérature moderne et des exemples utiles. Les sections des «Histoires de vie» sont particulièrement instructives, où l'auteur explique comment trouver des solutions adaptées aux tâches difficiles auxquelles il a dû faire face au cours de sa carrière.

Le livre se compose de deux parties. La première partie vous permettra de rappeler rapidement les principaux points du cours sur les algorithmes (complexité, types de structures de données, tri, travail avec les graphiques, recherche combinatoire, programmation dynamique, etc.). Ici, vous recevrez des recommandations pratiques sur le développement d'algorithmes.

La deuxième partie est un catalogue de structures et de problèmes algorithmiques qui vous aidera à trouver une solution au problème que vous avez rencontré au travail. De nombreux exemples et liens utiles sont fournis, et les implémentations logicielles existantes sont répertoriées.

image

Joe Albahari. Enfiler en c #

Le multithreading est l'un des sujets les plus difficiles auxquels un développeur moderne est confronté, quel que soit le langage de programmation choisi. Cette rubrique est particulièrement importante lors de l'écriture de systèmes distribués très chargés, donc dans
Les académies de multithreading Veeam accordent une attention particulière.

Le site de Joe Albahari est un bon endroit pour vous familiariser avec ce sujet. Il contient des éléments structurés des chapitres pertinents sur le multithreading dans l'environnement CLR de son livre.
C # en bref .

Vous trouverez ici des exemples de travail avec les flux: début, fin, interruption, verrous, synchronisation, contextes de synchronisation, etc.

Si vous voulez creuser un peu plus, nous vous recommandons le livre de Joe Duffy, dont un aperçu est présenté ci-dessous.

Itzik Ben-Gan. Microsoft SQL Server 2012. Bases de T-SQL

Ben-gan
Ce livre sur les bases de T-SQL sera utile à la fois aux débutants et aux développeurs expérimentés qui connaissent depuis longtemps ce langage. Le livre se distingue par la simplicité de sa présentation. Outre les requêtes SQL de base, les expressions de table, les fonctions de fenêtre et d'autres rubriques sont également couvertes. Chaque chapitre est accompagné d'un grand nombre d'exemples et d'exercices pour consolider le matériel.

L'auteur ne contourne pas la théorie, mais ne surcharge pas la présentation de théorèmes et de preuves.

Même après de nombreuses années de travail avec SQL, vous découvrirez certainement quelque chose de nouveau pour vous-même, et pourrez actualiser et organiser vos connaissances.

J. Skeet. C # pour les professionnels. Les subtilités de la programmation.

Skit

Ce livre a de nombreuses excellentes critiques, et ce n'est pas un hasard. L'auteur a choisi un style similaire à celui utilisé par le fondateur du langage C ++ Bjorn Straustrup dans son ouvrage «Design and Evolution of the C ++ Language». Ce livre explique les principes de base de la création et du développement du langage C #, montre son évolution d'une version à l'autre, explique pourquoi le langage a reçu telle ou telle opportunité. Tout cela forme finalement une image intégrale de la perception du langage C #. Le livre contient également des conseils et une expérience pratique de l'auteur.Les subtilités de la langue sont révélées grâce à de nombreux exemples. Une grande attention est accordée au sujet LINQ.

Le travail de J. Skeet n'est pas du tout comme le livre de Richter, bien qu'il soit également écrit en détail sur les caractéristiques de l'implémentation interne de C #. Nous voyons que jumelé à Richter, ce livre sera un excellent outil pour une étude approfondie de C # et du .NET Framework.

Un des commentaires peut être lu

ici .

Joe Duffy. Programmation simultanée sur Windows

Duffy

En lisant le travail de Joe Duffy, vous pouvez «bouillir», mais l'effort en vaut la peine. C'est l'un des livres multithreads les plus fondamentaux sur Windows. Un sujet sérieux, un volume décent (plus de 1000 pages) et une immersion profonde dans les détails de bas niveau du multithreading peuvent ne pas être la lecture la plus facile. Cependant, tout développeur qui souhaite écrire du code efficace, tolérant aux pannes et évolutif (à la fois géré - géré et non géré - natif) pour Windows ne doit pas passer.

Bien que le livre ait été publié il y a dix ans, il couvre presque tous les sujets liés au multithreading: algorithmes de base et primitives de synchronisation, modèles de programmation asynchrones en .NET, modèles de mémoire, sans verrouillage, et bien plus encore.

Le livre combine la théorie et les meilleures pratiques avec de nombreux exemples d'utilisation de Win32 et de l'API .Net, et contient également des exemples d'algorithmes et de structures de données que vous pouvez utiliser dans votre code.

En plus du multithreading, le livre de J. Duffy aidera à mieux comprendre comment Windows, CLR et le .NET Framework fonctionnent, et répondra à la question «pourquoi».

Remarque: la bibliothèque parallèle de tâches (TPL) n'est pas traitée ici, car la TPL n'était pas encore publiée à ce moment-là. Pour une introduction à TPL, vous pouvez recommander Stephen Cleary.

Eric Freeman et al. Head First. Modèles de conception

Frimen

Si vous n'avez pas encore beaucoup d'expérience avec les modèles de conception, mais que vous souhaitez y remédier, tout en consolidant vos connaissances en POO, ce livre peut être très utile. Il est décoré dans un style plutôt inhabituel (bien que traditionnel pour la série de livres Head First) - il contient un grand nombre d'images, de quêtes et de descriptions informelles, regorge d'un grand nombre d'exemples, alors qu'il est écrit sans eau et est très facile à lire.
Simultanément à l'analyse des modèles les plus populaires et des diagrammes UML correspondants, ici, avec la narration, les principes de base de la POO sont expliqués.

Ne soyez pas confus que les exemples de code sont en Java. Tous sont assez simples, et même un développeur débutant peut facilement les comprendre. C'est juste le cas lorsque les développeurs C # trouvent utile de jeter un œil au livre Java.

Sergey Teplyakov. Modèles de conception .NET

Teplyakov

Contrairement au reste de la littérature incluse dans notre revue, ce livre a été à l'origine écrit en russe et donc dépourvu des inconvénients inhérents à la plupart des traductions modernes de l'anglais. Cependant, ses avantages ne s'arrêtent pas là.

Le livre est écrit par un développeur C # pour les développeurs C #, ce qui implique que vous avez des connaissances de base en POO. L'auteur partage son expérience, considérant à la fois les méthodes classiques et plus adaptées à la plate-forme .NET pour implémenter chaque modèle. Dans ce cas, les avantages et les inconvénients de chaque méthode sont analysés.

Tout au long du livre, la possibilité d'utiliser les modèles considérés est démontrée par un seul exemple, qui vous permet de créer une image holistique du monde des modèles.
Vous pouvez en savoir plus sur le livre ici.

Et comment compléteriez-vous cette liste?

Source: https://habr.com/ru/post/fr417691/


All Articles