Ответ
Для профессионального роста я сочетаю несколько форматов:
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'ами, не создавая новых строк
}
Такой подход помогает постоянно обновлять знания и применять современные практики в работе.