Top.Mail.Ru
8 812 320 13 03
  • Новости
  • Расписание
  • Курсы
  • Организациям
  • Контакты
  • Перезвоните мне

    Курс C# Junior Developer

    Курс .NET- разработчик (джун -> мидл)

    Курс .NET- разработчик (джун -> мидл)
    Начало курса
    16.12.2024
    Продолжительность
    3 месяца (80 ак. часов)
    Расписание
    Вт 19:00 - 21:30
    Пт 19:00 - 21:30

    Онлайн
    (10 мест)
    Единовременно 78990 записаться
    В рассрочку / 10 мес7899 записаться
    Также доступна рассрочка на 4, 6 и 10 месяцев.

    Описание курса

    Курс ".NET- разработчик (джун -> мидл)" предназначен для разработчиков, имеющих опыт разработки на любом современном языке программирования и желающих познакомиться с платформой .NET и языком C#. 

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

    Упор в курсе сделан на разработку backend-сервисов в современной парадигме "чистой" архитектуры и CQRS. Отдельно в рамках курса будут рассмотрены вопросы взаимодействия сервисов с хранилищами данных (БД, кеш), провайдерами аутентификации и очередями сообщений.

    Практика: 

    • домашние задания по каждой теме, включая самостоятельное изучение отдельных тем, рефакторинг, решение типовых задач
    • сквозная практическая работа по проекту - инкрементальное развитие сложной системы по предоставленной спецификации
    • упор на работу с кодом в среде разработки - в виде презентаций подаётся самый минимум информации

    Основные темы курса:

    • базовый синтаксис языка C# (структура программы, языковые конструкции и операторы)
    • система типов
    • коллекции и структуры данных
    • реализация ООП в C#
    • Base Class Library (BCL)
    • Language-integrated Queries (LINQ)
    • делегаты и события
    • основы платформы .NET (компиляция, сборка мусора, CLR, кросс-платформенные возможности)
    • асинхронное и многопоточное программирование
    • работа с хранилищами данных (БД, кеш)
    • устройство и основные возможности ASP.NET Core
    • реализация "чистой" архитектуры и CQRS
    • межсервисная интеграция
    • сервисные логи и метрики
    • юнит- и интеграционное тестирование в .NET

    Требования к участникам курса:

    • понимание основных концепций любого языка программирования - переменные, операторы, циклы, коллекции и структуры данных
    • знание основ ООП (полиморфизм, наследование, инкапсуляция, паттерны)
    • знание основных подходов к работе с кодом (SOLID, DRY, KISS, рефакторинг)
    • понимание основ юнит- и интеграционного тестирования
    • базовые навыки работы с терминалом (запуск приложений с параметрами, навигация по файловой системе)
    • умение работать с современными IDE (Visual Studio, VS Code, JetBrains IntellijIdea/Rider)
    • умение работать с системой контроля версий (git) и оболочками поверх неё (GitHub, Gitlab, Bitbucket)
    • навыки базовой работы с Docker (образы, контейнеры, docker-compose)
    • знание основ SQL и теории БД (реляционные, NoSQL, CAP-теорема)
    • настроенная и готовая к работе среда Visual Studio Community Edition 2022 (или Professional)
    • настроенный и готовый к работе локальный инстанс Docker с запущенным актуальным (latest) образом PostgreSQL

    Программа

    развернуть

    Знакомство с языком C# и платформой .NET

    • создание простого консольного приложения
    • структура решения (solution)
    • метод Main
    • работа с консольным выводом
    • объявление и инициализация переменных
    • примитивные типы
    • простые арифметические операции
    • параметры метода Main, передача параметров при запуске консольного приложения
    • top level statements
    • добавление проекта в решение. Сборка. Зависимости
    развернуть

    Управление потоком выполнения. Операторы

    • условные операторы
    • оператор switch
    • арифметические операторы
    • логические операторы
    • операторы управления потоком выполнения
    • циклы
    • рекурсия
          развернуть

          Работа с массивами

          • объявление и инициализация массива
          • обход массива
          • N-мерные массивы
          • jagged-массивы
          • обращение по индексу
          • поиск элемента в массиве
          • вставка и удаление элемента массива
          • конкатенация массивов
          • алгоритмическая сложность операций с массивами
          развернуть

          Система типов

          • тип object
          • ссылочные типы. Куча
          • значимые типы. Стек
          • упаковка и распаковка объектов значимых типов
          • явное приведение типов
          • неявное приведение типов
          • проверка на тип. Операторы is/as
          • пределы допустимых значений для арифметических типов
          развернуть

          Классы

          • объявление класса. Сигнатура класса
          • области видимости типов
          • поля
          • методы. Сигнатура метода. Параметры метода. Области видимости методов
          • ковариантность и контравариантность методов
          • свойства
          • ключевые слова readonly и const
          • семантика передачи по ссылке
          • ключевые слова in, ref и out
          • нейминг классов и его членов
          • статические классы и члены класса
          • extension-методы
          развернуть

          Наследование

          • понятие и назначение наследования в C#
          • базовый класс. Объявление наследников
          • наследование членов базового класса
          • переопределение членов базового класса. Ключевое слово virtual/override
          • ограничение наследования класса и членов класса. Ключевое слово sealed
          • сокрытие членов базового класса. Ключевое слово new
          • таблица виртуальных методов
          • абстрактные классы
          • проблема множественного наследования
          развернуть

          Интерфейсы

          • понятие интерфейса
          • объявление интерфейса
          • дефолтная реализация методов в интерфейсах
          • приведение к типу интерфейса
          • решение проблемы множественного наследования с помощью интерфейсов
          • явная реализация метода интерфейса
          • выбор между абстрактным классом и интерфейсом
          развернуть

          Записи

          • понятие и назначение записи
          • объявление записи
          • неизменяемость записей
          • эквивалентность записей
          • primary constructor
          • создание копии записи с помощью конструкции with
          развернуть

          Значимые типы данных

          • понятие и назначение структур
          • наследование в структурах
          • семантика передачи по значению
          • понятие и назначение перечислений. Битовые флаги
          • readonly struct
          • record struct
          развернуть

          Работа со строками

          • неизменяемость строк
          • конкатенация и интерполяция
          • специальные символы
          • интернирование строк
          • класс StringBuilder
          • оптимизация работы со строками. Класс Span
          развернуть

          Коллекции и структуры данных

          • внутреннее устройство коллекций. Интерфейс IEnumerable
          • generic-типы
          • набор значений (HashSet)
          • список (List)
          • словарь (Dictionary<K,V>)
          • связный список
          • очередь (Queue)
          • стек (Stack)
          • ковариантность и контравариантность коллекций
          развернуть

          LINQ

          • назначение LINQ
          • лямбда-выражения
          • выборка
          • фильтрация
          • сортировка
          • группировка
          • отложенное выполнение вычислений. Замыкания
          развернуть

          Делегаты и события

          • понятие делегата
          • определение делегата
          • классы Func и Action
          • цепочка делегатов
          • method group
          • понятие события
          • определение события
          • подписка на событие
          • паттерн Observer
          развернуть

          Кортежи и анонимные типы данных

          • понятие и назначение анонимного типа
          • объявление и использование анонимного типа
          • понятие и назначение кортежа
          • объявление и использование кортежа
          развернуть

          Обработка исключений

          • виды исключений
          • устройство механизма обработки исключений в .NET
          • конструкция try/catch
          • блок finally
          • работа с экземпляром исключения в блоке catch
          развернуть

          Code First vs Database First

          • Code First. Миграции
          • Практикуемся с миграциями
          • Database First. Scaffolding
          • Практикуемся с созданием классов из существующей БД
          развернуть

          Конкурентное программирование. Асинхронные операции

          • понятие конкуретного программирования
          • отличие асинхронного программирования от многопоточного
          • понятие процесса и потока
          • запуск процессов и потоков из кода
          • управление потоками напрямую
          • пул потоков
          • класс Task. Создание задачи и управление её жизненным циклом
          • класс TaskFactory
          • async/await. Конечный автомат. Оповещение о завершении асинхронной операции
          • объединение и отмена выполнения задач
          • обработка исключений в Task
          развернуть

          Многопоточное программирование

          • Task Parallel Library. Класс Parallel
          • PLINQ
          • виды синхронизации конкурентного доступа
          • основные примитивы синхронизации уровня приложения
          • основные примитивы синхронизации уровня операционной системы
          • гибридные примитивы синхронизации
          • потокобезопасные коллекции
          развернуть

          Возможности платформы .NET

          • устройство платформы .NET. Среда выполнения (CLR)
          • основные возможности платформы
          • жизненный цикл кода. Roslyn, IL, JIT
          • сборка мусора. Garbage collector
          • понятие неуправляемого ресурса
          • детерминированная и недетерминированная финализация
          • паттерн Disposable
          • оператор using
          развернуть

          Работа с хранилищами данных - интеграция с БД

          • возможности интеграции кода с БД
          • устройство и возможности EntityFramework
          • подключение провайдера данных в коде приложения
          • Code First vs DB First
          • Code First. Подготовка контекста и моделей
          • Code First. Миграции
          • выполнение запроса на выборку
          • выполнение вставки/обновления данных в БД
          • отслеживание изменений
          • интерфейс IQueryable
          • анализ текста запроса, сгенерированного провайдером
          • navigation properties. Отношения "one-to-one", "one-to-many", "many-to-many"
          • производительность запросов
          развернуть

          Кеширование

          • понятие и назначение кеширования
          • способы реализации кеширования в приложениях .NET
          • in-memory кеш
          • интеграция с внешним распределенным кешем
          развернуть

          Фреймворк ASP.NET Core

          • устройство и назначение ASP.NET Core
          • виды приложений, разрабатываемых на базе ASP.NET Core
          • структура пайплайна выполнения запроса
          • контейнер управления зависимостями. Middleware
          • ASP.NET Core Minimal API. Роутинг
          • реализация HTTP-эндпоинтов в контроллерах
          • подключение провайдера аутентификации
          • настройка правил авторизации
          развернуть

          Основы проектирования архитектуры сервиса ASP.NET Core

          • развитие архитектурных подходов к проектированию сервисов
          • понятие "чистой" архитектуры
          • доменный слой
          • слой инфраструктуры
          • сервисный слой
          • слой представления
          • интерпретации "чистой" архитектуры
          • проектирование слоёв в сервисе согласно "чистой" архитектуре
          • основы CQRS. Команды, запросы, обработчики
          • дедупликация логики в CQRS-подходе
          развернуть

          Основы межсервисной интеграции

          • способы интеграции сервисов
          • интеграция посредством HTTP
          • интеграция посредством брокера сообщений
          • плюсы и минусы синхронного и асинхронного взаимодействия сервисов
          • проблемы межсервисной интеграции. Надёжность, гарантии доставки
          • архитектурные паттерны межсервисной интеграции
          развернуть

          Логирование и сбор метрик сервисов

          • назначение логов и метрик
          • настройка провайдера логирования в коде сервиса
          • настройка публикации метрик в коде сервиса
          • анализ логов и метрик сторонними инструментами
          развернуть

          Тестирование .NET-приложений

          • виды тестирования приложений
          • юнит-тестирование
          • проектирование юнит-тестов
          • использование моков для внешних зависимостей
          • проектирование интеграционных тестов
          • организация сквозного процесса тестирования приложений
          развернуть

          Презентация проектов. Подведение итогов курса

          • демонстрация проекта готового решения
          • обсуждение результатов
          • обсуждение планов по возможному дальнейшему развитию проекта
          • подведение итогов курса
          Документы после обучения
          По окончании обучения вы получите сертификат. Нас знают и ценят работодатели, поэтому сертификат станет вашим дополнительным преимуществом при трудоустройстве в IT-компанию. 


          Сертификат о прохождении курса мы отправим вам на почту. Вы легко сможете добавить ссылку на сертификат в резюме и подтвердить свой уровень подготовки.

          Преподаватели

          Алексей

          .NET Team Lead в Тинькофф

          Закончил Самарский Государственный технический университет по специальности "Профессиональное обучение - Информатика, вычислительная техника, компьютерные технологии". 

          С самых ранних лет карьеры чётко определил для себя, что тривиальная работа с 9 до 18 – это скучно. Это привело Алексея к участию в многочисленных конференциях DotNext (в том числе, в качестве спикера и организатора на стенде DotNetRu), созданию Самарского коммьюнити .NET-разработчиков и обучению начинающих разработчиков в EPAM Lab. 

          Работал в группе компаний “Деловые Линии”, Яндекс.Деньги, EPAM. В данное время трудится в должности .NET Team Lead во благо ведущей дистрибьюторской компании России – OCS Distribution.

          Фото с очных занятий в СПб

          Отзывы

          Всего отзывов: 7
          Курс .NET- разработчик (джун -> мидл)
          Денис Егоров
          Санкт-Петербург

          Ожидания оправдались полностью.

          Курс .NET- разработчик (джун -> мидл)
          Алексей Гагарин
          Санкт-Петербург

          Все понравилось, организаторам обучения и в особенности преподавателю огромное спасибо!

          Курс .NET- разработчик (джун -> мидл)
          Рустам Назаров
          Санкт-Петербург

          Почти с нуля получил основное представление о С#. Учитель хорошо объясняет, но, возможно, быстро.

          Курс .NET- разработчик (джун -> мидл)
          Вера Тюменцева
          Санкт-Петербург

          Курс понравился. Информативен, отзывчивый преподаватель, хорошо объясняет.

          Курс .NET- разработчик (джун -> мидл)
          Денис Кожевников
          Санкт-Петербург

          И прежде были знания по языку и программированию, но курс заполнил пробелы и структурировал имеющиеся знания. Очень понравился преподаватель, его подход и отзывчивость.

          Курс .NET- разработчик (джун -> мидл)
          Наталия Епифанова
          Санкт-Петербург

          Слишком мало часов для такого большого объема информации. Все остальное вызвало только положительные эмоции.

          Курс .NET- разработчик (джун -> мидл)
          Евгений Мамонов
          Санкт-Петербург

          Хорошо проработанный и интересный материал. Много времени уделяется практическим навыкам. Много ссылок на литературу.

          Показать больше
          Курсы программирования, тестирования, мобильных и веб-технологий от Level UP!
          Учитесь с профессионалами в сфере IT-образования!