Что читаешь для саморазвития?

«Что читаешь для саморазвития?» — вопрос из категории Софт-скиллы, который задают на 25% собеседований C# Разработчик. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

Для профессионального роста я сочетаю несколько форматов:

1. Книги по фундаментальным знаниям:

  • "CLR via C#" (Джеффри Рихтер) — для глубокого понимания работы .NET runtime, управления памятью, многопоточности.
  • "Чистая архитектура" и "Чистый код" (Роберт Мартин) — для формирования мышления в терминах архитектурных принципов и написания поддерживаемого кода.
  • "Паттерны проектирования" ("Банда четырёх") — как справочник по классическим решениям.

2. Технические блоги и рассылки:

  • Официальный .NET Blog и Microsoft DevBlogs — для отслеживания нововведений.
  • Рассылки вроде C# Weekly и DotNetCurry — чтобы быть в курсе лучших практик и интересных библиотек.

3. Анализ реального кода:

  • Изучаю open-source проекты на GitHub (например, dotnet/runtime, aspnetcore), чтобы понимать, как решаются сложные задачи на практике.
  • Смотрю записи докладов с конференций (DotNext, DevWeek, NDC).

Пример из недавнего изучения: Читал про оптимизацию работы с памятью в .NET с использованием Span<T> и Memory<T>, что позволяет избегать лишних аллокаций.

// Пример: эффективный парсинг строки без создания подстрок
ReadOnlySpan<char> input = "key=value".AsSpan();
int separatorIndex = input.IndexOf('=');
if (separatorIndex != -1)
{
    var keySpan = input.Slice(0, separatorIndex);
    var valueSpan = input.Slice(separatorIndex + 1);
    // Работаем со Span'ами, не создавая новых строк
}

Такой подход помогает постоянно обновлять знания и применять современные практики в работе.