RoadMap для изучения Внутри репозитория могут встречаться различные примеры для оттачивания практических навыков для каждого дня. Начиная с Day1 заканчивая с Day5_7
Для опытного программиста лучший путь — это метод «погружения через практику». Поскольку вы уже знаете структуры данных и циклы, вам не нужно учить их заново, достаточно узнать, как они записываются в Python и Bash. Ниже представлен интенсивный двухнедельный план, разделенный на блоки по 1–2 часа в день. Неделя 1: Python (Переход с других языков) Цель: Перестать писать на Python как на Java/C++ и начать использовать его встроенные возможности.
- День 1: Синтаксический «шок» и типы данных.
- Установка среды (venv, pip, PyCharm/VS Code).
- Значимые отступы (никаких {}).
- Динамическая типизация и f-строки.
- Практика: Написать скрипт, который принимает имя пользователя и возраст, и выводит через сколько лет ему будет 100.
- День 2: Коллекции и Pythonic Way.
- Списки, словари, множества и кортежи.
- List Comprehensions (генераторы списков) — обязательный инструмент.
- Распаковка аргументов (*args, **kwargs).
- Практика: Фильтрация списка чисел и преобразование их в квадраты одной строкой кода.
- День 3: Функции и модули.
- Области видимости (LEGB).
- Импорт стандартных библиотек (math, datetime, random).
- Декораторы (базовое понимание: как изменить поведение функции, не меняя её код).
- День 4: Системная автоматизация (самое важное для скриптов).
- Работа с файловой системой: модули os, pathlib, shutil.
- Запуск внешних команд через subprocess.
- Практика: Скрипт, который сканирует папку и сортирует файлы по расширениям в разные подпапки.
- День 5–7: Работа с данными и API.
- Чтение/запись JSON, CSV.
- Библиотека requests для HTTP-запросов.
- Мини-проект: Скрипт, который берет курс валют из публичного API и сохраняет его в Excel/CSV. [1, 2, 3, 4]
Неделя 2: Bash (Системная магия) Цель: Научиться управлять Linux-сервером и автоматизировать рутину без Python.
- День 1: Основы и переменные.
- Шебанг #!/bin/bash.
- Типы кавычек (', ", `) — критически важно понять разницу.
- Переменные окружения и позиционные параметры ($1,
$2, $ @).
- День 2: Конвейеры и фильтры.
- Перенаправление потоков: stdin, stdout, stderr (>, >>, 2>).
- Пайпы (|).
- Святая троица: grep, sed, awk (на базовом уровне).
- Практика: Найти в лог-файле все ошибки 404 и посчитать их количество.
- День 3: Логика и условия.
- Конструкции if [ ... ], case.
- Циклы for и while.
- Коды завершения команд ($?).
- Практика: Скрипт-бэкапщик, который проверяет наличие папки и, если она есть, создает ее архив.
- День 4: Функции и продвинутые фишки.
- Функции в Bash (особенности возврата значений).
- Работа с ключами запуска (использование getopts).
- День 5–7: Реальные задачи DevOps.
- Написание Makefile или скрипта для автоматического деплоя.
- Мини-проект: Написать Bash-скрипт, который проверяет свободное место на диске и, если его меньше 10%, присылает уведомление (или пишет в системный лог). [5, 6, 7, 8]
Рекомендуемые ресурсы
- Python: Официальный туториал (идеален для профи) и Learn X in Y minutes (Python).
- Bash: Интерактивный ресурс roadmap.sh/shell-bash и справочник Advanced Bash-Scripting Guide. [3, 5, 9, 10]
С какого языка вам комфортнее начать: с Python для обработки данных или с Bash для управления системой?
[1] https://msk.top-academy.ru [2] https://pythonist.ru [3] https://rivery.io [4] https://python.plainenglish.io [5] https://roadmap.sh [6] https://medium.com [7] https://medium.com [8] https://medium.com [9] https://www.reddit.com [10] https://www.reddit.com