Android-разработчик. Язык Java
Форма обучения: очная с применением дистанционных технологий
Объем программы: 520 ак. часов
Продолжительность обучения: 8 месяцев
Выдаваемый документ: Диплом о профессиональной переподготовке МФТИ
Старт обучения: сентябрь 2023
Стоимость обучения: 155 000 рублей

Краткое описание программы:
Чтобы получить Профессию Android-разработчик, подтвержденную Дипломом о профессиональной переподготовке МФТИ установленного образца, необходимо пройти обучение на двух самостоятельных курсах и двух интенсивах.
В течение обучения вы выполните несколько проектов для решения задач бизнеса, которые лягут в основу вашего портфолио. Проекты выполняются самостоятельно под руководством экспертов и преподавателей, позволяют закрепить весь спектр знаний и навыков, полученных на программе, и применить их к реальным задачам.
Успешное окончание каждого курса подтверждается Удостоверением о повышении квалификации МФТИ.

Содержание программы:
1. Интенсив: «Linux / Git для начинающих»
2 недели
Базовый WSL и VirtualBox
  • Чем отличается Windows и Linux
  • Установка WSL. Запуск
  • VirtualBox установка и использование
Основы Linux
  • Введение. Какие задачи он решает. Дистрибутив Ubuntu
  • Консоль. Основа работы с Linux. tmux
  • Скрипты. Продвинутая работа с консолью
  • Файловая система
  • Работа с сетью
  • Серверное взаимодействие. SSH
WSL подробно
  • Краткий экскурс в историю появления. WSL1 и WSL 2
  • Основные команды работы с WSL
  • Файловая система
  • Сеть WSL
  • WSL USB
  • CUDA и Windows Докер
Git
  • Введение. Цели. Разновидности систем контроля версий
  • Базовые основы GIT. Популярные сценарии работы
  • Серверные репозитории Git. Ветки. Merge request
  • Сценарии отката изменений. Stash
2. Курс: «Разработка на Java для Android»
6 месяцев
Базовый синтаксис языка Java

  • Введение
  • Типы данных
  • Условия и циклы
  • Массивы
  • Строки. МиниПроект
Объектно-ориентированное программирование
  • Объекты и классы
  • Инициализация
  • Инкапсуляция
  • Oтношения классов
  • Полиморфизм и интерфейсы
  • Пакеты
  • Класс Object
  • GC
  • Перечисления
  • Исключения
  • Генерики
  • Внутренние классы
Шаблоны ООП
  • Что такое шаблоны ООП
  • Виды шаблонов
Коллекции
  • Списки
  • Мапы
  • Прочие коллекции
Android Studio и основы Android UI
  • Android Studio, SDK, эмулятор
  • Ресурсы, View и ViewGroup
  • ConstraintLayout
  • Основные понятия Android UI и из каких компонентов состоит мобильное приложение
  • Адаптивный интерфейс
  • Использование различных методов построения экранов и навигации в приложении
  • Создание пользовательского интерфейса
  • Работа с форматом XML
Взаимодействие с сервером, работа с локальными хранилищами данных
  • SQLite, ACID, CRUD
  • ORM
  • Как подключать БД к своему мобильному приложению
  • Библиотека Room
Архитектура
  • Архитектура UI-слоя приложения
  • Архитектурные паттерны MVVM, MVI, MVP SOLID
  • Зависимости. Основные концепции DI
  • Dagger 2
  • Переиспользование кода
  • Зачем приложению нужна архитектура
  • Особенности архитектуры мобильных приложений
Сетевые операции, работа с многопоточностью и корутины
  • Интеграция с Backend: API, типичные формы интеграции
  • Сетевые запросы: Main Thread & Background
  • Многопоточность: потоки, проблемы общих данных
  • Примитивы синхронизации и специализированные структуры данных
  • Современные подходы работы с многопоточностью. Корутины
  • Многопоточность в Android
Тестирование
  • Принципы TDD (Test Driven Development)
  • Ручное тестирование мобильных приложений
  • Тестирование Android-приложений
  • Особенности функционального и нефункционального тестирования на мобильных устройствах
  • Unit-тесты
  • Инструментальные тесты
  • Интеграционные тесты и тесты UI
  • Основы автоматизации тестирования мобильных приложений
  • UIAutomator. Автоматизация тестирования Android
  • Appium. Кроссплатформенная мобильная автоматизация тестирования
  • Espresso. Автоматизация тестирования Android
3. Курс: «Введение в алгоритмы и структуры данных»
2 месяца
  • Математические основы программирования
  • Линейные контейнеры
  • Сортировки
  • Динамическое программирование
  • Хеш-таблицы
  • Деревья поиска и графы
4. Интенсив: «Docker + CI/CD для начинающих»
2 недели

Основы Docker
  • Виртуализация и контейнеризация. Docker engine
  • Docker image и Docker container
  • Файловые системы в Docker. UnionFS и OverlayFS
  • Работа с данными: добавление файлов, монтирование внешних директорий. Обмен данными с уже развернутым контейнером
  • Рекомендации по работе с Docker. Как писать DockerFile, .dockrtignore. Базовая безопасность в docker
  • Репозитории docker-контейнеров и работа с ними.
  • Docker compose
CI/CD
  • Обзор актуальных инструментов CI/CD (GitLab CI, Jenkins, TravisCI, GitHub Actions)
  • Настройка pipelines, jobs, stages. Написание конфигураций CI
  • Создания собственного runner'a. Executors: shell, docker

Целевая аудитория курса:
  • Те, кто начинает карьеру в ИТ
    Возможность изучить все необходимое для начинающего разработчика: алгоритмы, ООП, основы рабочего кода языка C++. Вы заложите крепкий фундамент для дальнейшего развития в сфере ИТ.
  • Начинающие ИТ-специалисты
    Если у вас уже есть базовые знания, наш курс поможет структурировать их и получить комплексный практический опыт на реальных примерах.
  • Практикующие ИТ-специалисты
    Тем, кто уже является действующим разработчиком, и хочет изучить новый язык программирования.
На программе вы:
  1. Освоите новую востребованную профессию
  2. Станете крепким junior-разработчиком со знанием языка программирования С++
На всех курсах вы получите:
  1. Постоянное живое общение с преподавателем МФТИ на вебинарах и в телеграмм-чате группы
  2. Ответы на все свои вопросы по ходу курса от преподавателя
  3. Обратную связь на интересные домашние задания