1 курс, 1 семестр
Язык: русский

Описание

В данном курсе обучающиеся познакомятся с:

  • командной строкой
  • системами контроля версий (на примере Git)
  • регулярными выражениями
  • и прочими инструментами, необходимыми программисту в повседневной работе.

Этот же набор навыков будет необходим для прохождения остальных курсов на нашем направлении и сдачи задач по ним.

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

  • Трепаков Иван Сергеевич

Организация курса

Данный курс проводится в виде двухмесячного интенсива (8 недель, 2 академических часа в неделю). В каждом из семи разделов курса обучающимся предстоит выполнить самостоятельное задание.

Подготовка

Все задания будут выполняться в системе GitHub Classroom, в связи с чем, необходимо пройти tutorial Знакомство c GitHub Classroom (source).

На протяжении всего курса мы будем работать с командной оболочкой Unix. Поэтому для прохождения курса обучающимся необходимо иметь доступ к соответствующему Unix-подобному окружению. Во всех заданиях и сопровождающих материалах будут приведены примеры для Ubuntu. Однако, любого другого дистрибутива Linux или Mac тоже должно быть достаточно.

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

Инструкции по виртуализации

Docker

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

Плюсы Минусы
  • Полная изоляция контейнера от хост-системы
  • Легковесные контейнеры
  • Воспроизводимость окружения для сборки и запуска приложений
  • Возможность настройки взаимодействия между контейнерами
  • Широко используется в индустрии
  • Открытый исходный код
  • Сложная настройка запуска графических приложений
  • Сложное взаимодействие с хост-системой

Инструкции

  • Установить Docker Desktop следуя туториалу
  • Запустить в терминале контейнер, подготовленный для нашего курса:
    $ docker run --rm -it --network host liontiger23/mpt
    

    Можно добавить поддержку истории команд, указав дополнительно опцию

    -v <path-to-bash-history-file>:/home/mpt/.bash_history
    

    где <path-to-bash-history-file> — абсолютный путь к файлу, в котором будет храниться история на хост-системе. Например:

    $ docker run -v ~/.mpt_bash_history:/home/mpt/.bash_history --rm -it --network host liontiger23/mpt
    

WSL 2 (Windows only)

Начиная с Windows 10 можно воспользоваться встроенным в Windows средством виртуализации Windows Subsystem for Linux (WSL).

Плюсы Минусы
  • Бесшовное взаимодействие с программами и файловой системой Windows-хоста
  • Практически не требует дополнительного ПО
  • Менее безопасно, чем другие варианты, из-за прямого доступа к хост-системе
  • Проприетарная технология, заточенная на Windows
  • Могут возникнуть сложности при более детальной настройке системы внутри WSL

Инструкции

Подробные инструкции по установке Ubuntu через WSL 2 описаны на официальном сайте.

VirtualBox

VirtualBox предоставляет универсальное средство виртуализации аппаратного обеспечения, позволяющее создать виртуальную машину практически любой конфигурации и установить туда произвольную ОС.

Плюсы Минусы
  • Полная изоляция виртуальной машины от хост-системы
  • Возможность поставить произвольную ОС
  • Полноценный Desktop-experience
  • Открытый исходный код
  • Требуется больше ресурсов, чем в других вариантах
  • За исключением готовых образов, требуется самостоятельная установка и настройка ОС с нуля
  • Сложное взаимодействие с хост-системой
  • Нет поддержки Arm64 (частичная поддержка современных Mac’ов с Apple Silicon)

Инструкции

Получить виртуальную машину Ubuntu в VirtualBox можно двумя способами:

Зачет

Для получения зачета по курсу в каждом разделе необходимо набрать по 8 и более баллов за задания (из 10 возможных).

Темы

Тема Задание GitHub Classroom Дедлайн
Введение      
Основы работы с Unix Знакомство с командной строкой Решать 10.09.2025
Основы работы с текстом Знакомство с регулярными выражениями Решать 17.09.2025
Локализация и интернационализация программного обеспечения Знакомство с кодировками и локалями Решать 24.09.2025
Создание скриптов Знакомство с Bash Решать 01.10.2025
Системы контроля версий Знакомство с Git Решать 08.10.2025
Автоматизация сборки программного обеспечения Знакомство со средствами автоматизации сборки Решать 15.10.2025
Языки разметки Знакомство с языками разметки Решать 22.10.2025

Вспомогательная литература

  1. Raymond, E. S. The Art of Unix Programming (html)
  2. Chacon, S. Pro Git (en, ru)
  3. Friedl, J. Mastering Regular Expressions
  4. Львовский, С. Набор и верстка в системе LATEX
  5. Шнейвайс, А. Б. Азы GNUPLOTа
  6. Markdown Tutorial
  7. Практическое написание сценариев командной оболочки Bash