Skip to content

Latest commit

 

History

History
97 lines (83 loc) · 15.5 KB

Books.md

File metadata and controls

97 lines (83 loc) · 15.5 KB

Books

Небольшая подборка книг, которые мы можем порекомендовать к ознакомлению.

C# Basic

  • The Object-Oriented Thought Process By Matt Weisfeld

    • Описание: Данная книга начинается с самых базовых понятий в мире ООП, формирует представление о том, что такое типы, как они работают и из чего они состоят. Также книга содержит информацию о паттернах проектирования и SOLID.
    • Для кого: От 0 до Джуна. Для тех, кто уже освоился с основами лучше взять более профильные книги.
  • "C# 12 and .NET 8", "Pro C# 10 with .NET 6", "C# 12 in a Nutshell"

    • Описание: Три книги трёх разных авторов, которые очень сильно пересекаются и выбор между ними во многом вкусовщина
    • Для кого: Для тех, кто умеет использовать базовые C# конструкции и нуждается в более глубоком понимании языка и платформы. В качестве справочников подойдёт даже опытным разработчикам.

Code design

  • Programming with Types By Vlad Riscutia
    • Описание: Книга о том, как использовать типы. Начиная от концепции типизации, продолжая Primitive Obsession, обобщёнными типами и заканчивая математическими типами.
    • Для кого: Рекомендуется прочитать всем. Часто разработчики недооценивают важность типов и эта книга позволит сдвинуться дальше в понимании. Для тех, кто уже нашёл общий язык с типами это будет отличной структуризацией, книжкой для референса и первым шагом к математическим типам и книге Бартоша Милевского.
  • Clean Code
    • Описание: Книга о том, как писать чистый код. Она содержит множество практических советов и примеров, которые оформлены в виде правил Do and Don't, так что их можно as is добавлять в code style.
    • Для кого: В первую очередь это книга для начинающих разработчиков и тех, кто хочет для себя подсветить новые возможные улучшения в своём подходе к коду. Для опытных разработчиков эта книга поможет структурировать свои внутренние "я так чувствую" и упростит превращение внутреннего чувства прекрасного в кодстайл.
  • Unit Testing Principles, Practices, and Patterns By Vladimir Khorikov
    • Описание: Несмотря на название, книга не только о юнит-тестировании. В данной книге рассказывается о решении одной из главных проблем тестирования - работа с зависимостями.
    • Для кого: Рекомендуется прочитать всем.
  • Dependency Injection Principles, Practices, and Patterns By Steven van Deursen
    • Описание: Книга развенчивает мифы о DI, идеально для тех, кто думает, что DI - это использование контейнеров. Во многом дополняет книгу Хорикова.
    • Для кого: Рекомендуется прочитать всем.
  • Паттерны проектирования на платформе .NET \nBy Sergey Teplyakov
    • Описание: Классическая книга по паттернам, охватывающая большую часть необходимых знаний по паттернам. После прочтения может выступать справочником.
    • Для кого: Рекомендуется прочитать всем.
  • Category Theory for Programmers By Bartosz Milewski
    • Описание: Это книга не про программирование. Она буквально про теорию категорий. Но это отличный пример знаний математики, которые заставят пересмотреть понимание кода, его структуры.
    • Для кого: Для тех, кто морально готов к математике и хочет улучшить качество своего кода.

Code Architecture

  • Clean Architecture By Robert C. Martin
    • Описание: Книга о том, как строить архитектуру кода, писать расширяемый код, который будет легко поддерживать и тестировать.
    • Для кого: Рекомендуется прочитать всем, кто уже дошёл до задач, когда нужно проектировать больше 5 сущностей.
  • Microsoft .NET: Architecting Applications for the Enterprise \nBy Dino Esposito
    • Описание: Книга описывает основные элементы архитектуры приложений и как их писать на платформе .NET.
    • Для кого: Рекомендуется прочитать всем, кто сталкивается с архитектурой приложений, клиент-серверными приложениями и т.п.
  • Implementing Domain-Driven Design By Vaughn Vernon
    • Описание: Книга содержит много практических примеров и рекомендаций по проектированию сложного домена.
    • Для кого: Для разработчиков, которым требуется проектировать сложные домены.

.NET

  • Concurrency in C# Cookbook By Stephen Cleary
    • Описание: Основы конкурентности в .NET.
    • Для кого: Рекомендуется прочитать всем.
  • Pro .NET Memory Management By Konrad Kokosa
    • Описание: Одна из лучших (и актуальная, в отличие от Рихтера) книг о том, что происходит внутри .NET. Книга покрывает не только работу с памятью, но и GC, особенности работы .NET Runtime.
    • Для кого: Для желающих погрузиться во внутренности .NET и тех, кто хочет научиться лучше работать с памятью. Но порог вхождения довольно высокий.
  • Pro .NET Benchmarking By Andrey Akinshin
    • Описание: Главная книга из мира бенчмаркинга. В ней содержатся не только рекомендации по использованию BenchmarkDotNet (основной библиотеки для бенчмаркинга в .NET), но и большое количество теории по статистике и анализу результатов.
    • Для кого: Для тех, кто много занимается профилированием и оптимизацией кода.
  • Exploring the .NET Core 3.0 Runtime, Pro .NET Framework with the Base Class Library By Roger Villela
    • Описание: Две книги, которые описывают BCL и Runtime .NET. Эти книги
    • Для кого: Для разработчиков, которые хотят погрузится во внутренности .NET.
  • Apps and Services with .NET 8 By Mark J. Price
    • Описание: Книга даёт краткий обзор различных технологиям и библиотекам, которые используются в .NET: ASP, Blazor, gRPC, GraphQL, SignalR.
    • Для кого: Для разработчиков, которые хотят расширить свои знания о платформе, ознакомиться с новыми технологиями, которые часто используются в .NET. Это позволит понять различные концепции, которые могут быть адаптированы даже в те проекты, где не используются напрямую эти технологии.

Self development and soft skills

  • Clean Coder, Clean Craftsmanship By Robert C. Martin, The Pragmatic Programmer By Andrew Hunt
    • Описание: Эти книги содержат в себе огромное количество опыта, которое накопили авторы за время своей карьеры. Данные книги - это хороший способ не ждать, пока самому придётся столкнуться с проблемами, а заранее подготовиться к ним. В книгах освещаются вопросы коммуникации, командой работы, тестирования, планирования, оценки, подходам к работе
    • Для кого: Рекомендуется прочитать всем.

Project management

  • Creating Software with Modern Diagramming Techniques By Ashley Peacock
    • Описание: Важные части управления проектом - это управление знаниями, фиксация договорённостей, шаринг информации между участниками. И все эти пункты тесно связаны с диаграммами. Данная книга содержит минимальный набор информации о диаграммах, поможет применять их в повседневной работе для тривиальных сценариев. Является отправной точкой для более глубокого ознакомления с диаграммами.
    • Для кого: Рекомендуется прочитать всем, кто ещё не знаком с диаграммами (т.е. не читал UML Distilled).
  • UML Distilled By Martin Fowler
    • Описание: Полноценный свод знаний по UML, который описывает стандарты, типы диаграмм, их назначение и применение. Позволит расширить арсенал инструментов и подходов к диаграммам, чтобы под специфические задачи выбирать более подходящие инструменты.
    • Для кого: Рекомендуется для тех, кому приходится часто сталкиваться с диаграммами и кому нужно улучшить их качество.
  • Code Ahead By Yegor Bugayenko
    • Описание: Данная книга написана в формате рассказа, где главный герой описывает свой опыт работы в новой команде, выявления проблем в управлении проектом. Книга легко читается и является хорошим первым шагом для знакомства с принципами управления проектами.
    • Для кого: Для тех, кто хочет начать делать первые шаги в управлении проектами и процессами.
  • Clean Agile: Back to Basics By Robert C. Martin
    • Описание: Книга описывает принципы Agile, и опыт их применения в различных проектах.
    • Для кого: Для тех, кто хочет начать делать первые шаги в управлении проектами и процессами.
  • Software Engineering at Google By Titus Winters
    • Описание: Книга содержит множество глав, которые описывают различные процессы и подходы к разработке ПО в Google. Хорошо подходит для ознакомления с основными процессами в проектах, их назначение и применение.
    • Для кого: Для тех, кто хочет ознакомиться с процессами разработки ПО, узнать как это делается в крупных компаниях.
  • Continuous Delivery By Jez Humble
    • Описание: Книга про CI/CD, описывает принципы, подходы и практики, которые позволяют ускорить процесс разработки и улучшить качество кода средствами автоматизации и процессов.
    • Для кого: Для тех, кто занимается управлением процессами разработки и хочет улучшить их.
  • Righting Software By Juval Löwy
    • Описание: Первая часть книги описывает дизайн системы: как выделять компоненты, как декомпозировать большую систему на отдельные разрабатываемые модули. А вторая часть книг описывает дизайн проекта: как планировать, оценивать, выстраивать план и порядок разработки, оценивать сложность, стоимость и риски.
    • Для кого: Для разработчиков, которым приходится сталкиваться с задачами проектирования и управления проектами или большими модулями, их оценкой, декомпозицией, выстраиванием процесса разработки.
  • Software Requirements By Karl Wiegers
    • Описание: Книга описывает процесс сбора и анализа требований к ПО, их документирование и управление. Книга содержит множество практических советов и примеров, которые помогут улучшить процесс сбора и анализа требований. Данная книга не является книгой по разработке. Но она поможет разработчика улучшить понимание требований и улучшить коммуникацию с аналитиками.
    • Для кого: Разработчиков, которые занимаются работой с требованиями, коммуникацией с аналитиками, реализацией сложных требований.