July 16, 2022

Код профессии – мои комментарии к статье

Не так давно я разместил ссылку на статью Иванны Ткачук "Как стать .NET-разработчиком. План действий для начинающих«. Как я уже писал, для подготовки этого материала я и еще несколько человек ответили на ряд вопросов Иванны. По понятным причинам, в статью не вошел полный текст моих ответов, поэтому привожу их здесь.

Считаете ли вы платформу .NET и язык C# тем, что сейчас стоит учить начинающему в IT? Если да, то почему? Если нет, то какой, по вашему мнению, необходим опыт для того, чтобы приступать к изучению?

C# — идеальный язык для обучения программированию. Это язык со статической типизацией, который позволяет обучающемуся сосредоточиться на изучении концепций объектно-ориентированного программирования, абстракций, алгоритмов, без немедленного погружения в низкоуровневые детали реализации. При этом, если в будущем возникнет необходимость уйти на более низкий уровень (работа с памятью, многопоточность, и т. д. — возможности у язык и платформа предоставят удобные возможности для этого).

Еще одним преимуществам платформы .NET можно назвать тот факт, что помимо языка C#, он включает в себя и другие языки. Так в одном проекте одновременно использовать не только C#, но и F# — функциональный язык программирования. Таким образом, студент может изучать как объектно-ориентированный подход, так и функциональный. При этом каждый из языков дает в полной мере изучить и понять преимущества каждого из подходов.

Также C# хорош для тех, кто хочет перейти с другого языка программирования.

Какие технологии нужно изучить в рамках изучения .NET? От чего зависит выбор технологий? Расскажите вкратце о каждой из них.

.NET позволяет разрабатывать самые различные проекты. Поэтому в зависимости от направления зависит и выбор конкретных технологий.

Конечно же для всех технологий .NET базовым является знание языка C#. Но сегодня мы пишем не на языке программирования, сегодня мы пишем на фреймворках. Синтаксис любого современного языка выучить не сложно и сделать это можно довольно быстро. Гораздо важнее хорошо понимать экосистему технологии, с которой работа.

  • Если речь идет про хайлоад, то помимо, собственно, C# и .NET нужно будет изучить технологии кэширования, работу с очередями, принципы работы систем массового обслуживания, и т. д.
  • Если речь про разработку веб-приложений, и работу фулстек-разработчиком, то нужно изучить то, как работает ASP.NET Core, шаблоны Razor, Blazor, а также понимать особенности работы HTTP-протокола, принципы работы сессий, что такое CORS и вооружиться знаниями со стороны фронтенда: HTML, CSS, JS.
  • Для разработки десктопных приложения стоит ознакомиться с WPF, MAUI, знать, что такое XML, понимать, как работают потоки.
  • Для мобильной разработки также стоит ознакомиться с MAUI и Xamarin, а также плотно познакомиться с документацией и гайдлайнами iOS и Android.
  • Если в планах заняться devops практиками, то стоит взглянуть на Pulumi, а также ознакомиться с возможностями основных облачных платформ и средствами работы с ними: Azure, AWS, GCP.
  • Тем, кто хочется заниматься машинным обучением не обойтись без знакомства с фреймворком ML.NET и безусловно изучать теоретическую базу: что такое Регрессия, Классификация, Детекция аномалий, Кластеризация.
  • Желающим разрабатывать для интернета вещей стоит приготовиться к тому, чтобы реализовывать проекты в рамках ограниченных аппаратных ресурсов, а соответственно уметь оценивать сложность алгоритмов, затраты памяти, скорость считывания информации.

Какие лучшие книги, ресурсы для изучения .NET, по вашему мнению? Где и как можно попрактиковаться? Коротко расскажите о каждом из ресурсов.

Компания Microsoft запустила специальный портал Learn, который содержит огромное количество бесплатных и качественных материалов для обучения. Очень рекомендую ознакомиться с этим ресурсом.

Обязательно рекомендую посетить проект Ukrainian .NET Developer Community, который объединяет украинские .NET сообщества, в которых вы сможете найти единомышленников и всегда спросить совета.

Ну и конечно же подпишитесь на канал devdigest // dot net, на котором регулярно публикуются новости про платформу .NET, полезные материалы и информация для .NET разработчиков.

Что обязательно следует написать в резюме при поиске работы, где и как искать работу или стажировку? (возможно, у вас есть пример хорошего резюме .NET-разработчика)

Если у вас есть свои проекты с открытым исходным кодом (пусть даже код там не идеален — идеального кода не бывает) — укажите ссылки на них.

Укажите технологии, с которыми работали. Только не перечисляйте все подряд, а укажите именно то, с чем действительно работали.

Как я уже писал выше — станьте членом сообществ разработчиков, там иногда можно увидеть, как кто-то ищет людей себе в команду. Преимуществом будет тот факт, что вы сможете напрямую пообщаться с тем человеком, с которым возможно будете в будущем работать. Возможно даже вы с ним уже успеете пообщаться и он, зная вас уже сам будет рекомендовать компании взять вас к себе.

Если определенный коммерчески опыт уже есть — обязательно опишите какова была ваша роль на проекте, какой конкретно вклад вы внесли.