Boot Camp

Первый этап обучения направлен на выработку и развитие навыков написания качественного кода, а также заполнение фундаментальных пробелов в знаниях. По сути, цель — научиться программировать.

Начинается обучение с классического языка C, чтобы правильно понять основы, а не запомнить как обезьяна, что «вот это работает, а как и почему — не знаю». Затем добавляется C++ и ООП. Еще придется познакомиться на практике с более высокоуровневыми языками программирования: Java и Python обязательны для всех, а JavaScript, Objective-C, PHP и Swift — для желающих.

Программа тренинга Boot Camp

(длительность — от 4 месяцев)

Основы программирования

  1. Основы синтаксиса С-подобных языков.
  2. Работа с командной строкой. Компиляция программ.
  3. Переменные. Константы. Макросы.
  4. Ввод и вывод данных. Взаимодействие с консолью.
  5. Операторы. Разновидности операций. Приоритет операторов.
  6. Ветвления. Функции. Циклы.
  7. Массивы и строки. Кодировки текста.
  8. Cтилистика кода. Конвенции наименований.
  9. Вещественные типы данных. Точность вычислений.
  10. Арифметическое переполнение.
  11. Создание и использование библиотек.
  12. Автоматическое тестирование. Основы TDD.

Быстродействие и память

  1. Кэширование данных.
  2. Оптимизация работы циклов.
  3. Замеры производительности (бенчмаркинг).
  4. Буферизация ввода/вывода.
  5. Анализ алгоритмов. Алгоритмическая сложность.
  6. Алгоритмы обработки данных: поиск, сортировка, сдвиг, слияние.
  7. Динамическое программирование.
  8. Адресация памяти. Адресная арифметика.
  9. Безопасность: переполнение буфера.
  10. Динамическое распределение памяти. Утечки памяти.

Системы контроля версий

  1. Хорошие практики работы с ветвями в git.
  2. Совместная работа с системой контроля версий git.

ООП и структуры данных

  1. Пользовательские типы данных.
  2. Классы и объекты. Инкапсуляция.
  3. Исключения и их обработка.
  4. Статические свойства и методы.
  5. Наследование. Иерархия классов.
  6. Полиморфизм. Виртуальные методы.
  7. Абстрактные классы и методы. Интерфейсы.
  8. Финальные классы и методы.
  9. Множественное наследование. Проблема ромба.
  10. Структуры данных: стек, очередь, список, граф, множество, словарь
  11. Взаимоотношения классов.
  12. Паттерны проектирования.

Высокоуровневые языки

  1. Перегрузка операторов.
  2. Вложенные классы и функции. Замыкания.
  3. Обобщенное программирование. Параметрический полиморфизм.
  4. Анонимные классы и функции.
  5. Функции высшего порядка.
  6. Динамическая типизация: слабая, сильная.
  7. Виртуальная машина. Байт-код.
  8. Интерпретируемые языки. Сценарии.
  9. Автоматическое распределение памяти.
  10. Сравнение языков высокого уровня: удобство, документированость, производительность в типовых задачах.
  11. Интегрированные среды разработки: преимущества и особенности.

Продолжением Boot Camp является следующий этап — Junior Developer.

Начать свое обучение программированию вы можете с записи на открытое занятие.