Nuestra estantería es un programador de C #. Que hay de ti

Hola

Los futuros estudiantes de Veeam Academy a menudo nos preguntan sobre libros que serían útiles para prepararse para ingresar a nuestro curso de programación C #. Por lo general, recomendamos varias fuentes, acompañándolas con nuestros comentarios sobre por qué serán útiles.

Sin embargo, la mayoría de los libros de programación tienen más de 1K páginas, y leerlos "de principio a fin" llevará más de un mes, ¡y posiblemente incluso más de un año! Por lo tanto, todas nuestras recomendaciones para los solicitantes de Veeam Academy sirven solo como una guía y no como un requisito obligatorio.

Con el tiempo, resumimos nuestros comentarios sobre cada una de las publicaciones y finalmente obtuvimos una lista de, nos parece, buenos libros para el crecimiento profesional de un programador de C #.
Presentamos nuestra breve descripción debajo del corte.

imagen

A continuación se muestra una descripción general de los siguientes libros:

  1. J. Richter. CLR a través de C #
  2. Stephen S. Skien. Algoritmos Guía de desarrollo
  3. Joe Albahari. Enhebrado en c #
  4. Itzik Ben-Gan. Microsoft SQL Server 2012. Conceptos básicos de T-SQL
  5. J. Skeet. C # para profesionales. Las sutilezas de la programación.
  6. Joe Duffy Programación concurrente en windows
  7. Eric Freeman y otros, Head First. Patrones de diseño
  8. Sergey Teplyakov. Patrones de diseño .NET

J. Richter. CLR a través de C #

Richter
Leer a Richter es como pintar las paredes de una habitación en blanco. Lo leí una vez, pintado en una capa. En este caso, una capa generalmente no es suficiente: la pintura no siempre se asienta suavemente y no se ve tan brillante como nos gustaría, por lo que es mejor ir y arreglarla con otra capa, y con el tiempo teñir lugares individuales. En general, cuantas más capas, más blanca es la habitación.

Cada vez que lees a Richter, descubres algo nuevo. Y el punto no es que las ediciones actualizadas de este libro salgan con intervalos regulares (que, por cierto, habla de su gran popularidad). Incluso leyendo la misma versión, encontrará lugares interesantes debido a la profundidad y amplitud con la que se presenta el material.

Muchas personas llaman a este libro la "biblia" y el "alfabeto" para los programadores de C #. Sin embargo, vale la pena señalar que presta poca atención a un lenguaje de programación específico: el énfasis está en la plataforma .Net y los principios básicos de su funcionamiento.

Por lo tanto, todavía no puede considerarse un libro de texto de C # (en el sentido generalmente aceptado para principiantes), pero podemos decir que este es un libro obligatorio para cualquier desarrollador .Net profesional. Sin embargo, incluso en el caso de que recién esté comenzando su carrera profesional, Richter definitivamente lo ayudará a evitar muchos errores y le permitirá escribir programas de manera más eficiente, ya que comprenderá mejor la plataforma.

Entonces, ¿qué hay dentro?

Alrededor de 1,000 páginas de texto fascinante sobre la estructura interna del entorno Common Language Runtime Environment (CLR) de Microsoft .NET Framework, escrito en un lenguaje simple y amigable, reconocido por un experto en programación, Jeffrey Richter.
Los capítulos se dividen en subtemas relacionados, pero se pueden leer (e incluso se necesitan) no secuencialmente. Cada capítulo tiene enlaces a otros capítulos, lo que hace que sea conveniente leer en partes y le permite no sentarse demasiado tiempo en temas que ahora parecen particularmente difíciles o poco interesantes.

También en las páginas de este libro encontrará respuestas a la mayoría de las preguntas que les gusta hacer en las entrevistas de C # y .Net.

Para los profesionales con experiencia en programación para la plataforma .Net, este libro no necesita publicidad. Para los principiantes, recomendamos encarecidamente no posponer el conocimiento de ella en una caja larga.


Stephen S. Skien. Algoritmos Guía de desarrollo

Skiena
Si ya tienes un curso universitario general en algoritmos básicos y necesitas repasar los puntos principales en poco tiempo, entonces este libro es uno de los mejores.

Este no es un libro de texto, sino una guía para el desarrollo efectivo de algoritmos en la práctica. El libro se distingue por una presentación muy buena y accesible, está repleto de enlaces a literatura moderna y ejemplos útiles. Particularmente instructivas son las secciones en "Historias de vida", donde el autor explica cómo encontrar soluciones adecuadas para las tareas difíciles que enfrentó en su carrera.

El libro consta de dos partes. La primera parte le permitirá recuperar rápidamente los puntos principales del curso sobre algoritmos (complejidad, tipos de estructuras de datos, clasificación, trabajo con gráficos, búsqueda combinatoria, programación dinámica, etc.). Aquí recibirá recomendaciones prácticas sobre el desarrollo de algoritmos.

La segunda parte es un catálogo de estructuras y problemas algorítmicos que lo ayudarán a encontrar una solución al problema que encontró en el trabajo. Se proporcionan muchos ejemplos y enlaces útiles, y se enumeran las implementaciones de software existentes.

imagen

Joe Albahari. Enhebrado en c #

El subprocesamiento múltiple es uno de los temas más difíciles que enfrenta un desarrollador moderno, independientemente del lenguaje de programación elegido. Este tema es especialmente importante al escribir sistemas distribuidos altamente cargados, por lo que en
Las academias multiproceso Veeam prestan especial atención.

El sitio de Joe Albahari es un buen lugar para familiarizarse con este tema. Contiene material estructurado de los capítulos relevantes sobre multihilo en el entorno CLR de su libro.
C # en una cáscara de nuez .

Aquí encontrará ejemplos de trabajo con transmisiones: inicio, finalización, interrupción, bloqueos, sincronización, contextos de sincronización, etc. Además, se analizan las capacidades de transmisión .NET (agrupaciones de hilos, métodos asincrónicos), estructuras paralelas LINQ, SpinLock / SpinWait y mucho más.

Si desea profundizar un poco más, le recomendamos el libro de Joe Duffy, que se presenta a continuación.

Itzik Ben-Gan. Microsoft SQL Server 2012. Conceptos básicos de T-SQL

Ben-gan
Este libro sobre los conceptos básicos de T-SQL será útil tanto para principiantes como para desarrolladores experimentados que han estado familiarizados con este lenguaje. El libro se distingue por la simplicidad de presentación. Además de las consultas básicas de SQL, también se cubren las expresiones de tabla, las funciones de ventana y otros temas. Cada capítulo va acompañado de una gran cantidad de ejemplos y ejercicios para consolidar el material.

El autor no omite la teoría, pero no sobrecarga la presentación con teoremas y pruebas.

Incluso después de muchos años de trabajar con SQL, seguramente descubrirá algo nuevo para usted y podrá actualizar y organizar sus conocimientos.

J. Skeet. C # para profesionales. Las sutilezas de la programación.

Skit

Este libro tiene muchas críticas excelentes, y no es casualidad. El autor eligió un estilo similar al utilizado por el fundador del lenguaje C ++ Bjorn Straustrup en su trabajo "Diseño y evolución del lenguaje C ++". Este libro habla sobre los principios básicos de crear y desarrollar el lenguaje C #, muestra su evolución de una versión a otra, proporciona una explicación de por qué se le dio al lenguaje esta o aquella oportunidad. Todo esto finalmente forma una imagen integral de la percepción del lenguaje C #. El libro también contiene consejos y experiencia práctica del autor. Las sutilezas del lenguaje se revelan gracias a numerosos ejemplos. Se presta gran atención al tema LINQ.

El trabajo de J. Skeet no se parece en nada al libro de Richter, aunque también está escrito en detalle sobre las características de la implementación interna de C #. Vemos que, junto con Richter, este libro será una herramienta excelente para el estudio en profundidad de C # y .NET Framework.

Uno de los comentarios se puede leer

aqui

Joe Duffy Programación concurrente en windows

Duffy

Al leer el trabajo de Joe Duffy, puedes "hervir", pero el esfuerzo vale la pena. Este es uno de los libros de subprocesos múltiples más fundamentales en Windows. Un tema serio, un volumen decente (más de 1000 páginas) y una inmersión profunda en los detalles de bajo nivel de subprocesamiento múltiple pueden no ser la lectura más fácil. Sin embargo, cualquier desarrollador que quiera escribir código eficiente, tolerante a fallas y escalable (tanto administrado - administrado como no administrado - nativo) para Windows no debe pasar por alto.

A pesar de que el libro se publicó hace diez años, cubre casi todos los temas relacionados con el subprocesamiento múltiple: algoritmos básicos y primitivas de sincronización, modelos de programación asincrónica en .NET, modelos de memoria, sin bloqueo y mucho más.

El libro combina la teoría y las mejores prácticas con muchos ejemplos de uso de Win32 y .Net API, y también contiene ejemplos de algoritmos y estructuras de datos que puede usar en su código.

Además del subprocesamiento múltiple, el libro de J. Duffy ayudará a comprender mejor cómo funcionan Windows, CLR y .NET Framework, y responderá a la pregunta "por qué".

Nota: La Biblioteca de tareas paralelas (TPL) no está cubierta aquí, ya que TPL aún no se lanzó en ese momento. Para una introducción a TPL, puede recomendar Stephen Cleary.

Eric Freeman y otros, Head First. Patrones de diseño

Frimen

Si aún no tiene mucha experiencia trabajando con patrones de diseño, pero le gustaría arreglarlo y al mismo tiempo consolidar su conocimiento en OOP, entonces este libro puede ser muy útil. Está decorado en un estilo bastante inusual (aunque tradicional para la serie Head First de libros): contiene una gran cantidad de imágenes, misiones y descripciones informales, está repleto de una gran cantidad de ejemplos, mientras está escrito sin agua y es muy fácil de leer.
Simultáneamente con el análisis de los patrones más populares y los diagramas UML correspondientes, aquí, junto con la narración, se explican los principios básicos de OOP.

No se confunda que los ejemplos de código están en Java. Todos ellos son bastante simples, e incluso un desarrollador novato puede resolverlos fácilmente. Este es solo el caso cuando los desarrolladores de C # encuentran útil echar un vistazo al libro de Java.

Sergey Teplyakov. Patrones de diseño .NET

Teplyakov

A diferencia del resto de la literatura incluida en nuestra revisión, este libro fue escrito originalmente en ruso y, por lo tanto, carece de los inconvenientes inherentes a la mayoría de las traducciones modernas del inglés. Sin embargo, sus ventajas no terminan ahí.

El libro está escrito por un desarrollador de C # para desarrolladores de C #, lo que implica que tienes conocimientos básicos de OOP. El autor comparte su experiencia, considerando las formas clásicas y más adecuadas para la plataforma .NET de implementar cada patrón. En este caso, se analizan los pros y los contras de cada método.

A lo largo del libro, la posibilidad de usar los patrones considerados se demuestra con un solo ejemplo, que le permite crear una imagen holística del mundo de los patrones.
Puedes leer más sobre el libro aquí.

¿Y cómo complementarías esta lista?

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


All Articles