🏃 8 шагов от новичка до профессионала: дорожная карта разработчика на C#

Рассмотрим 8 основных шагов, которые нужно сделать новичку, чтобы стать профессиональным разработчиком на С#.

1. Выберите способ обучения

В начале обучения у новичка всегда появляется вопрос: «С чего начинать освоение языка и как это делать?»

Ответ на него для каждого индивидуален. Вы можете выбрать ролики на Youtube, книги или курсы, но можно и совмещать.

Есть несколько вариантов:

  • Найти наставника (идеально).
  • Самостоятельно (видео и книги).
  • Платные курсы с наставником.
Больше полезной информации вы найдете на нашем телеграм-канале «Библиотека шарписта»

2. Установите среду разработки

Для любого обучения нужна особенная среда. Если для художника это краски и холст, то для разработчика – компьютер. С# уже давно работает на разных операционных системах: после появления .NET Core (уже .NET 5) он позволяет создавать кроссплатформенные приложения для Windows, Linux и MacOS.

Выбор платформы индивидуален, а лучших редакторов кода не так много:

Если ваш компьютер слабоват, рекомендую Visual Studio Code. На нем легко начать учиться. Можете присмотреться к Rider или Visual Studio – это отличные инструменты для разработки.

Для обучения также придется установить .NET Core SDK.

  • Ссылка для быстрого скачивания версии для Windows.
  • Ссылка на скачивание версии для Ubuntu (выбор других дистрибутивов Linux):
wget <https://packages.microsoft.com/config/ubuntu/21.04/packages-microsoft-prod.deb> -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

sudo apt-get update; \\
  sudo apt-get install -y apt-transport-https && \\
  sudo apt-get update && \\
  sudo apt-get install -y dotnet-sdk-5.0

sudo apt-get update; \\
  sudo apt-get install -y apt-transport-https && \\
  sudo apt-get update && \\
  sudo apt-get install -y aspnetcore-runtime-5.0
  • Ссылка на скачивание версии для MacOs.

Порядок изучения:

  • Установить .NET Core SDK.
  • Изучить работу с командной строкой в вашей ОС.
  • Изучить базовые команды dotnet cli.

3. Изучите основы синтаксиса

Каждый проект начинается по шаблону. В .NET можно создать console app, web api, web mvc и т.д. Вначале стоит работать по шаблону console app (консольное приложение), чтобы изучить основы синтаксиса языка. Каждый проект создается в отдельном solution (решении).

Что включают в себя основы C#? В принципе также как и другие языки программирования:

  • Переменные и константы.
  • Типы данных.
  • Логические операторы.
  • Условные выражения и конструкции.
  • Циклы.
  • Массивы.
  • Методы.
  • Использование библиотек.

Стоит также изучить следующие темы:

  • Основы объектно ориентированного программирования и его применение в C# (классы, модификаторы доступа, делегаты, интерфейсы, и т.п.).
  • LINQ-запросы.

4. Освойте Git, Github и Gitlab

Что такое Git?
Git – это технология, которая позволяет синхронизировать кодовую базу с удаленным репозиторием. Иными словами, Git помогает вам сохранять изменения кода и делиться ими с другими программистами.

Эти изменения находятся в специальных хранилищах, которые могут размещаться на вашем компьютере (локальные репозитории) или на удаленных серверах (удаленные репозитории). Чтобы обеспечить возможность делиться кодом и работать над ним коллективно, существуют такие платформы как GitHub и GitLab.

Порядок изучения:

  • Установка и настройка Git.
  • Репозитории и управление файлами.
  • История изменений и ветки репозиторий.
  • Публикация репозитория и слияние веток.
  • Создание pull request.

Материалы:

Поздравляю! На этом этапе у вас уже есть база для серьезного освоения профессии программиста на C#. Дело за малым – выбрать сферу применения своих талантов. Это может быть веб-разработка, геймдев, разработка настольных приложений и даже машинное обучение.

5. Изучите веб-разработку с помощью ASP.NET

Это часть технологии .NET, используемая для создания клиент-серверных интернет-приложений. Если вас заинтересует направление веб-разработки, дальше стоит детально изучать именно его, но основы фреймворка ASP.NET пригодятся любому шарписту.

Помимо фреймворков, нужны и другие знания: HTML, CSS, JavaScript. Базовые знания обязательно вам потребуются, поскольку нужно понимать связку между фронтом и бэком. Также понадобятся знания SQL для работы с базой данных, Nginx для настройки сервера и, конечно, контейнеризации Docker.

Порядок изучения:

  • HTML и CSS.
  • Базовый JavaScript.
  • ASP.NET, MVC, Web API.
  • SQL, Entity Framework**,** ORM.
  • Nginx.
  • Docker.
Entity Framework – ORM-фреймворк для приложений .NET, поддерживаемый корпорацией Microsoft. Он позволяет работать с данными, используя объекты определенных классов и не фокусируясь на таблицах и столбцах базы данных. Благодаря этому фреймворку вы можете взаимодействовать с базой данных прямо из кода проекта, используя классы и их свойства. Конечно, можно применить технологию ADO.NET или другие ORM-фреймворки, но EF является самым популярным решением и обычно работодатели требуют знать именно его.

Материалы:

6. Изучите GameDev

Рынок видеоигр имеет большие перспективы. Например, в 2020 году общий оборот работающих на нем компаний составил почти $200 млрд, и этот показатель только растет. Если вы интересуетесь геймдевом, самое время освоить необходимые создателю игр технологии.

С чего начать?

  • Редактор Unity 3D:
  1. базовые манипуляции со сценой, объектами, assets и prefabs;
  2. векторы, проекции и математика для 3D графики;
  3. создание пользовательского интерфейса в игре;
  4. работа с материалами;
  5. модули физики для 2D и 3D;
  6. система анимации Mecanim;
  7. системы частиц;
  8. работа с аудио;
  9. свет и постобработка;
  10. работа с разными графическими пайплайнами;
  11. работа с искусственным интеллектом.

Материалы:

Зарплатные вилки: в мире без учета налогов минимальная зарплата – $6 750/мес., средняя – $11 000/мес., максимальная – как повезет. В России, конечно, гораздо меньше. Можете создать свою компанию по разработке игр, устроиться в существующую или зарабатывать как фрилансер. Предела для фантазий нет, все зависит от вас.

7. Освойте ML.NET

В сфере Machine Learning и Data science активно применяется Python, но команда Microsoft сделала так, что теперь можно и на C# писать и интегрировать технологии ML в различные сервисы.

Для этого вам потребуется:

  • Освоить основы линейной алгебры, матанализа и теории вероятностей.
  • Изучить основы статистики.
  • Изучить базовые алгоритмы машинного обучения:
  1. Контролируемое обучение. Обучение алгоритмов контролируется разработчиком. Для этого он маркирует данные и устанавливает правила, которым должен следовать алгоритм.
  2. Обучение без учителя. Обучение алгоритмов не предполагает участия разработчика. В этом случае желаемые результаты неизвестны и определяются самим алгоритмом.
  3. Полу-контролируемое обучение. Обучение алгоритма сочетает принципы как контролируемого, так и обучения без учителя. Например, при подготовке алгоритма маркируется только часть тренировочных данных и предоставляются лишь некоторые правила.
  4. Обучение с подкреплением. В этом типе алгоритмов применяется техника исследование/освоение. Ее суть проста: машина совершает действие, анализирует результаты, а затем опирается на них при выполнении следующего действия.

8. Перейдите к продвинутому обучению

Шаги, о которых шла речь в статье – лишь верхушка айсберга. Дальше вам нужно будет детально разобраться с объектно-ориентированным программированием на C#, SOLID и паттернами проектирования, а еще изучить асинхронное программирование и многопоточное программирование. Освойте system design (или архитектуру систем) и, конечно же, алгоритмы и структуры данных. Готовьтесь к собеседованиям в большие компании или же стройте свою. Удачи!

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

matyushkin
18 марта 2020

ТОП-10 книг по C#: от новичка до профессионала

Отобрали актуальные книги по C#, .NET, Unity c лучшими оценками. Расположил...
Библиотека программиста
25 августа 2019

Почему C# программисты скоро будут нарасхват

C# программисты становятся более востребованными благодаря развивающейся эк...
Библиотека программиста
23 июня 2017

Разработка игр – это просто: 12 этапов изучения геймдева

Разработка игр на плаву, она перспективна и набирает популярность. Мы подго...