🏃 8 шагов от новичка до профессионала: дорожная карта разработчика на C#
Рассмотрим 8 основных шагов, которые нужно сделать новичку, чтобы стать профессиональным разработчиком на С#.
1. Выберите способ обучения
В начале обучения у новичка всегда появляется вопрос: «С чего начинать освоение языка и как это делать?»
Есть несколько вариантов:
- Найти наставника (идеально).
- Самостоятельно (видео и книги).
- Платные курсы с наставником.
2. Установите среду разработки
Выбор платформы индивидуален, а лучших редакторов кода не так много:
- Visual Studio 2019 (скоро будет VS 2022) – бесплатно.
- Rider от JetBrains – платный, но очень удобный.
- Visual Studio Code – бесплатно.
Если ваш компьютер слабоват, рекомендую Visual Studio Code. На нем легко начать учиться. Можете присмотреться к Rider или Visual Studio – это отличные инструменты для разработки.
Для обучения также придется установить .NET Core SDK.
- Ссылка для быстрого скачивания версии для Windows.
- Ссылка на скачивание версии для Ubuntu (выбор других дистрибутивов Linux):
- Ссылка на скачивание версии для MacOs.
Порядок изучения:
- Установить .NET Core SDK.
- Изучить работу с командной строкой в вашей ОС.
- Изучить базовые команды dotnet cli.
3. Изучите основы синтаксиса
Каждый проект начинается по шаблону. В .NET можно создать console app, web api, web mvc и т.д. Вначале стоит работать по шаблону console app (консольное приложение), чтобы изучить основы синтаксиса языка. Каждый проект создается в отдельном solution (решении).
Что включают в себя основы C#? В принципе также как и другие языки программирования:
- Переменные и константы.
- Типы данных.
- Логические операторы.
- Условные выражения и конструкции.
- Циклы.
- Массивы.
- Методы.
- Использование библиотек.
Стоит также изучить следующие темы:
- Основы объектно ориентированного программирования и его применение в C# (классы, модификаторы доступа, делегаты, интерфейсы, и т.п.).
- LINQ-запросы.
4. Освойте Git, Github и Gitlab
Эти изменения находятся в специальных хранилищах, которые могут размещаться на вашем компьютере (локальные репозитории) или на удаленных серверах (удаленные репозитории). Чтобы обеспечить возможность делиться кодом и работать над ним коллективно, существуют такие платформы как GitHub и GitLab.
Порядок изучения:
- Установка и настройка Git.
- Репозитории и управление файлами.
- История изменений и ветки репозиторий.
- Публикация репозитория и слияние веток.
- Создание pull request.
Материалы:
5. Изучите веб-разработку с помощью ASP.NET
Помимо фреймворков, нужны и другие знания: HTML, CSS, JavaScript. Базовые знания обязательно вам потребуются, поскольку нужно понимать связку между фронтом и бэком. Также понадобятся знания SQL для работы с базой данных, Nginx для настройки сервера и, конечно, контейнеризации Docker.
Порядок изучения:
- HTML и CSS.
- Базовый JavaScript.
- ASP.NET, MVC, Web API.
- SQL, Entity Framework**,** ORM.
- Nginx.
- Docker.
Материалы:
- HTML и CSS с нуля для начинающих | 🔥 Быстрый Старт!
- Javascript с нуля – твой быстрый старт! Уроки по javascript для начинающих
- Изучение ASP.NET Core MVC / #1 – Создание сайта на C#. Введение и установка ASP .NET
- Основы Docker. Большой практический выпуск
- Основы Nginx
6. Изучите GameDev
С чего начать?
- Редактор Unity 3D:
- базовые манипуляции со сценой, объектами, assets и prefabs;
- векторы, проекции и математика для 3D графики;
- создание пользовательского интерфейса в игре;
- работа с материалами;
- модули физики для 2D и 3D;
- система анимации Mecanim;
- системы частиц;
- работа с аудио;
- свет и постобработка;
- работа с разными графическими пайплайнами;
- работа с искусственным интеллектом.
- Документация (англ.), портал для обучения (англ).
- Базовые знания по 3D-моделированию.
Материалы:
- Разработка игры на Unity / Урок #1 – Введение в Unity GameDev
- Разработка игр на Unity: с нуля до профессионала
- Разработка игр на Unity: 10 важных советов для начинающих
- Основы разработки игр на Unity
- Топ-10 книг по геймдеву и о геймдеве на русском языке
7. Освойте ML.NET
Для этого вам потребуется:
- Освоить основы линейной алгебры, матанализа и теории вероятностей.
- Изучить основы статистики.
- Изучить базовые алгоритмы машинного обучения:
- Контролируемое обучение. Обучение алгоритмов контролируется разработчиком. Для этого он маркирует данные и устанавливает правила, которым должен следовать алгоритм.
- Обучение без учителя. Обучение алгоритмов не предполагает участия разработчика. В этом случае желаемые результаты неизвестны и определяются самим алгоритмом.
- Полу-контролируемое обучение. Обучение алгоритма сочетает принципы как контролируемого, так и обучения без учителя. Например, при подготовке алгоритма маркируется только часть тренировочных данных и предоставляются лишь некоторые правила.
- Обучение с подкреплением. В этом типе алгоритмов применяется техника исследование/освоение. Ее суть проста: машина совершает действие, анализирует результаты, а затем опирается на них при выполнении следующего действия.
8. Перейдите к продвинутому обучению
Шаги, о которых шла речь в статье – лишь верхушка айсберга. Дальше вам нужно будет детально разобраться с объектно-ориентированным программированием на C#, SOLID и паттернами проектирования, а еще изучить асинхронное программирование и многопоточное программирование. Освойте system design (или архитектуру систем) и, конечно же, алгоритмы и структуры данных. Готовьтесь к собеседованиям в большие компании или же стройте свою. Удачи!