Основной блок — 3 месяца
Введение в программирование
Познакомитесь с языками программирования, поймёте разницу между языком и программированием, научитесь строить блок-схемы и познакомитесь со структурами данных.
Математика и информатика
Повторите школьный курс информатики, логики и математики.
Введение в контроль версий
Познакомитесь с контролем версий и принципами работы в git и github, изучите синтаксис языка Markdown.
Знакомство с языком программирование C#
Знакомство с языком программирования C#: функциями и массивами, рекурсиями и двумерными массивами. Узнаем, как не нужно писать код.
Введение в базы данных
Познакомитесь с понятием «базы данных», разберетесь с их видами и основными подходами к работе с данными. Узнаете методы проектирования баз данных, а также способы модификации их структуры.
Профориентация
Изучим колесо компетенций и матрицу Декарта. Познакомимся со специализациями и выберем дальнейшее направление развития.
Специализация — 9 месяцев
Знакомство с треком обучения и направлениями: интро
Познакомитесь с форматом и треком обучения, поймете назначение каждого курса.
Основы Питон
Познакомитесь с языком Python, изучите данные, функции и модули, попробуете поработать с кодом.
Знакомство с Веб-технологиями
Разберём основные понятия в веб-разработке. Познакомимся с языком разметки документов HTML, основами языка оформления стилей документа CSS, основами JavaScript, бэкенда PHP и MySQL, а также форматами передачи данных JSON и XML.
Операционные системы (Linux)
Будем разбираться с серверной системой на базе Linux, рассмотрим один из самых популярных дистрибутивов Ubuntu (построен на базе Debian).
Серверные системы Linux используют текстовый интерфейс, поэтому графические оболочки не будут использоваться как основа, хотя графический интерфейс может помочь в начале знакомства с Linux (для это существует Desktop-версия ОС Ubuntu).
Мы научимся понимать файловую структуру Linux, работать в консоли, применять основные команды, работать с удаленной системой по SSH.
Отдельно будет рассмотрена работа Linux как платформы для веб-приложений, мы настроим и запустим полноценный стек сервисов для работы веб-сайта на базе Nginx и PHP.
Важным аспектом системного администрирования является установка программ (пакетов) из репозиториев и автоматизация действий (скрипты bash) – все эти темы мы рассмотрим на отдельных занятиях.
Кроме того, будут рассмотрены вопросы безопасности и сетевой подсистемы ОС Linux.
Объектно-ориентированное программирование
Один из основных подходов к программированию, где на первом месте стоят объекты. Используется для упрощения сложного кода. Чтобы это сделать, программу делят на уникальные блоки, которые называются объектами, данные внутри него называются свойствами, а функции — методами.
Алгоритмы и структуры данных
Курс нацелен на получение знаний о структурах данных и алгоритмов, которые необходимы начинающему программисту для старта карьеры. Сложность алгоритмов, О-нотация.
Исключения в программировании и их обработка
Во время работы программы иногда возникают критические ошибки, которые приводят к аварийному завершению программы. Большинство подобных ошибок можно избежать, если научить программу правильно их обрабатывать. Чтобы программа знала, что делать, если возникла какая-то ошибка, используют обработчики исключений.
Unit-тесты
Кроме проверки пользовательского интерфейса и описанных пользовательских сценариев, очень важно проверять и код на предмет его корректной работы в разных ситуациях. Для решения такой задачи используют юнит-тесты - это программа, которая проверяет правильность работы небольшой части кода. Наличие таких тестов позволяет разработчикам сразу после внесенных изменений проверить, что код после этого работает верно, что позволяет найти критичные ошибки в коде до непосредственного тестирования, и уже после этого отдать задачу тестировщику
Базы Данных и SQL
Познакомитесь с языком запросов SQL. Научитесь писать запросы, делать расчёты и работать с таблицами. Узнаете основные ограничения SQL. Поработаете с MySQL и познакомитесь с альтернативными базами данных.
Контейнеризация
На курсе изучите различия между микросервисной и традиционной архитектурой, научится работать с Docker и Docker Compose, а так же создавать собственные Dockerfile. Большая часть курса посвящена Kubernetes - самому популярному оркестратору контейнеров. После окончания курса студент сможет разворачивать приложения в Kubernetes, в том числе с помощью GitLab CI/CD.
Архитектура ПО: принцип SOLID, проектирование ООП, чистая архитектура
После успешного прохождения данного курса вы разберетесь в универсальных принципах классического объектно-ориентированного проектирования, усвоите подход SOLID, ознакомитесь с наиболее часто применяемыми паттернами разработки ПО, освоите навыки проектирования программных компонентов. Узнаете основные принципы проектирования “чистых” архитектур.
Контроль Версий Углубленно (Git)
В данном курсе мы изучим специальные команды Git, узнаем, как с ними работать на практике, научимся использованию системы контроля версий Git и работе с репозиторием на продвинутом уровне.
Организация CI/CD
Во время курса мы познакомимся с основными понятиями и средствами CI/CD и инструментами, рассмотрим интеграцию и взаимодействие средств CI/CD и Docker’a, Углубимся в CI.
Парадигмы программирования и языки парадигм
После успешного прохождения данного курса вы начнете разбираться в современных парадигмах программирования, будете понимать как они взаимосвязаны, сможете уверенно рассуждать об их достоинствах и недостатках, обретете системное понимание эволюционного развития подходов к разработке ПО. Благодаря всему этому сможете принимать оптимальные решения при выборе парадигмы в зависимости от задачи.
Профориентация по направлению и языкам
Рассмотрим основные направления – фронтенд, бэкенд и мобильную разработку. Пройдемся по основным языкам, которые используются в направлениях. Сориентируемся в выборе дальнейшего трека обучения.
Технологическая специализация — 3 месяцев
Бэкенд-разработка
Рассмотрим подробнее бэкенд-направление, а также языки Python, Го, С#, С++
Продвинутый C#
Подробнее рассмотрим алгоритмы и структуры данных, а также ООП для С#. Продвинемся дальше в изучении языка.
ASP.NET Core Web API микросервисы
Это именно тот блок, который дает отличный старт для решений уровня Предприятия.
Первые сервисы, изучение основых HTTP, контроллеры и, то как работать с базами данных из C#
ASP.NET Core Веб Приложение
Используете полученные знания и создадите оконный файловый менеджер, а также простейший менеджер баз данных.
Проект