Главное Авторские колонки Вакансии Вопросы
Выбор редакции:
1 200 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Дорожная карта для Python-разработчика

Мой roadmap по изучению основ языка Python с ссылками на полезные материалы.
Мнение автора может не совпадать с мнением редакции

Python — востребованный язык программирования в России. Например, только на hh.ru опубликовано свыше 10 000(!) вакансий, где требуется знание Пайтона. Язык активно обновляется, его применяют практически во всех сферах деятельности.

Для новичков изучения Python — это быстрый и простой старт в IT-карьере. В этой статье я помогу вам изучить основы этого языка программирования через roadmap, который поможет вам выбрать правильное направление в обучении.

Все учебные материалы бесплатные, большую часть я сам в своё время я использовал, когда начинал изучать языки программирования. Итак, начнём.

Для начала прочитайте обзорную статью на professii.su про профессию Python-разработчика , где есть не только интересная информация по языку, но и полезные советы по поиску работы, но и пошаговое практическое руководство по обучению с нуля. Думаю, это будет вам полезно в начале обучения. Идём дальше, изучаем всё по порядку.

Основы языка:

  1. Условный оператор if.
  2. Циклы, кортежи.
  3. Числа, строки, списки.
  4. Индексы и срезы.
  5. Словари, множества, функции.
  6. Исключения.
  7. Файлы.

Ссылки для обучения:

  1. «Поколение Python»: курс для начинающих, отличный курс для абсолютных новичков, сам прошёл и вам советую.
  2. Алгоритмы и структуры данных на Python 3, видеолекции от Тимофея Хирьянова.
  3. Книга «Укус Питона», перевод здесь. Одна из самых лучших книг для начинающих разработчиков.

После изучения этих материалов вы освоите большую часть базы по Python. Двигаемся дальше.

Объектно-ориентированное программирование:

  1. Классы, объекты.
  2. Инкапсуляция, наследование, полиморфизм.
  3. Перегрузка операторов.
  4. Декораторы.
  5. Паттерны проектирования.

Ссылки для обучения:

  1. Полный видеокурс уроков обучения ООП Python.
  2. Основы ООП. Введение в паттерны проектирования, курс на Степике.

Функциональное программирование:

  1. Функции, как объекты первого класса.
  2. Рекурсия.
  3. Функции высшего порядка.
  4. Чистые функции.
  5. Lambda Expressions.

Ссылки для обучения:

  1. Лекция по функциональному программированию в текстовом виде.
  2. Функциональное программирование на Python, урок от Тимофея Хирьянова.

Модули, библиотеки:

  1. Пакеты.
  2. Модули.
  3. Инструкция from...import.
  4. Относительный и абсолютный импорт.
  5. Виртуальные окружения, venv.

Ссылки для обучения:

  1. Видеокурс по модулям в Python.
  2. Список полезных библиотек на Хабре.
  3. Самоучитель Python по модулям на русском языке.
  4. Документация по библиотекам Python с примерами.

Работаем с файлами:

  1. Операции с каталогами и файлами.
  2. Создание директорий.
  3. Методы работы с файлами.
  4. CSV / JSON / XML-файлы.

Ссылки для обучения:

  1. Видеоурок по работе с файлами в Python.
  2. Видеолекция от PythonToday "Работа с CSV файлами в Python | Запись данных в CSV файл.

Графические интерфейсы (GUI):

  1. Tkinter.
  2. PyQt.

Ссылки для обучения:

  1. Видеокурс «PyQt5 Python — Разработка графических интерфейсов».
  2. Видеокурс Tkinter Python от egoroff_channel.
  3. Хорошее руководство по PyQt5.
  4. Большое руководство по Tkinter.

Регулярные выражения:

  1. Основы синтаксиса.
  2. Шаблоны.
  3. Квантификаторы.
  4. Пересечение подстрок.
  5. Перечисления.
  6. Скобочные группы.

Ссылки для обучения:

  1. Видеоуроки от selfedu.
  2. Пост на Хабре.
  3. Курс на степике по регулярным выражениям в Python.

Тестирование:

  1. Модульное тестирование.
  2. Интеграционное тестирование.
  3. Системное тестирование.
  4. Assert.
  5. Отладка.

Ссылки для обучения:

  1. Отличный пост по тестированию на Хабре.
  2. Видео по юнит-тестированию.
  3. Статья про основы тестирования в Python.

GIT:

  1. Фиксация изменений.
  2. Файловая система.
  3. Удаленные репозитории.
  4. Ветвление.

Ссылки для обучения:

  1. Учебник по Git.
  2. Пост на Хабре.
  3. Самоучитель по GIT.

Оптимизация:

  1. Память.
  2. Дебаг.
  3. Логирование.
  4. Профилирование.
  5. Наборы, конкатенация строк.

Ссылки для обучения:

  1. Видеоуроки по профилированию.
  2. Годный пост на Хабре.
  3. Видео про рефакторинг.
  4. Статья «Python & оптимизация времени и памяти».

Работа с потоками:

  1. Многопоточность.
  2. Синхронизация потоков.

Ссылки для обучения:

  1. Глава из книги «Asyncio в Python 3».
  2. Способы реализации параллельных вычислений в программах на Python.
  3. Видеокурс по модулям Threading и Multiprocessing.
  4. Видео по библиотеке asyncio и асинхронному коду.

Базы данных:

  1. Реляционные и нереляционные базы данных.
  2. Язык SQL.
  3. ORM.

Ссылки для обучения:

  1. Курс по основам баз данных.
  2. Плейлист с уроками по базам данных.
  3. Основы языка SQL.
  4. Учебник по SQL.

Сетевое программирование на Python:

  1. Программирование сокетов.
  2. Сокеты домена Unix и сетевые интерфейсы.
  3. Протоколы электронной почты, FTP и CGI программирование.

Ссылки для обучения:

  1. Руководство по программированию сокетов на Python.
  2. Книга рецептов сетевого программирования Python.
  3. Большая подборка видеоуроков по Python для сетевых инженеров.

Развертывание:

  1. Виртуальные среды.
  2. Пакеты.
  3. CI/CD.
  4. Docker.

Ссылки для обучения:

  1. Пост «Создание виртуальных окружений и установка библиотек для Python 3 в IDE PyCharm».
  2. Видеоурок по CI/CD + наглядные примеры.
  3. Руководство по CI/CD в GitLab для (почти) абсолютного новичка.
  4. Docker — самый простой и понятный туториал.
  5. Видеоплейлист по Docker — уроки от А до Я.

Дополнительно:

  1. Интерфейс командной строки.
  2. API.
  3. Сериализация и десериализация объектов Python.
  4. Веб-вёрстка: HTML/CSS, Django, BeautifulSoup.
  5. Анализ данных: NumPy, Pandas.

Ссылки для обучения:

  1. Статья «Пишем интерфейсы командной строки в Python как профи».
  2. Пост по сериализации и десериализации объектов.
  3. Курс «SPA сайт на Django Rest Framework и NuxtJS».
  4. Веб-скраппинг с помощью BeautifulSoup — пошаговое руководство.
  5. Курс по машинному обучению.
  6. Видеоуроки по NumPy.
  7. Курс по обработке данных в Python Pandas.

Кроме этого понадобятся важные знания и навыки, которые нужно постоянно развивать по мере накопления опыта.

Структуры данных и алгоритмы:

  1. Рекурсия.
  2. Комбинаторика.
  3. Сортировка объектов.
  4. Динамическое программирование.
  5. Списки и кортежи.
  6. Строки и файлы.
  7. Множества, стеки, очереди, классы и объекты.

Ссылки для обучения:

  1. Курс для тренировок решения алгоритмических задач по алгоритмам и структурам данных.
  2. Видеоурок по рекурсии.
  3. Видео по алгоритму Кнута-Морриса-Пратта.
  4. Гайд «Алгоритмы и структуры данных на Python + 14 примеров».

Критическое мышление: разбитие задачи на более мелкие, развитие, тренировка.

Ссылки для обучения:

  1. Курс «Основы критического мышления и практики аргументации».
  2. Пост на Хабре «Критическое мышление 101».

Жизненный цикл программного обеспечения (SDLC):

  1. Сбор и анализ требований.
  2. Разработка документации.
  3. Проектирование программного обеспечения.
  4. Прохождение различных тестов, отладок.
  5. Гибкая методология разработки.

Ссылки для обучения:

  1. Видеокурс по архитектуре ПО.
  2. AGILE. Вводный курс.

Качество кода:

  1. Best practices.
  2. PEP8.
  3. Разработка через тестирование.
  4. Рефакторинг программного кода.

Ссылки для обучения:

  1. PEP 8 — руководство по написанию кода на Python.
  2. Пост про повышение качества кода.
  3. Гайд «Линтеры в Python».

Документация и совместная разработка:

  1. Jira.
  2. Работа в команде с применением Git.
  3. Написание краткой точной документации.

Ссылки для обучения:

  1. Документирование кода в Python.
  2. Курс «Jira: ведение задач на электронных досках».

Далее обучаемся постоянно, не останавливаемся:

  1. Статьи, учебники, курсы.
  2. Отслеживание обновлений языке и смежных технологиях.
  3. Изучение новых подходов и практик в разработке ПО.

Больше ссылок по Python:

  1. HackerRank, задачи по Python.
  2. Интерактивный тренажер.
  3. Адаптивный тренажер на Степике.
  4. Много интересных задач по Python на leetcode.com.
  5. Pythontutor.ru — хороший курс по программированию с нуля.
  6. Хендбук по Python на Яндексе.

Книги:

  1. Изучаем Python. Марк Лутц.
  2. Изучаем Python: программирование игр, визуализация данных, веб-приложения. Мэтиз Э.
  3. Программирование на Python 3. Подробное руководство. Марк Саммерфилд.
  4. Совершенный код. Стив Макконнелл.

Важные советы начинающим программистам:

  1. Пиши код каждый день. Нет ничего лучше, чем постоянная практика. Пиши код каждый день, даже если это всего лишь небольшой код. Это поможет тебе улучшить свои навыки и сохранить мотивацию.
  2. Не бойся ошибаться. Ошибки — это часть процесса обучения. Если что-то не работает, не отчаивайся. В конце концов, каждый программист когда-то делал ошибки, даже Senior’ы ошибаются.
  3. Ставь цели. Цели помогают тебе оставаться на правильном пути и продвигаться вперед. Устанавливай конкретные и измеримые цели, такие как написание определенного количества строк кода за неделю или создание небольшой программы.
  4. Ищи поддержку. Обучение — это трудный и одиночный процесс. Но это не означает, что тебе нужно делать все самостоятельно. Ищи людей, которые находятся в той же ситуации, что и ты, и объединяйтесь вместе. Общайся на форумах, в социальных сетях или присоединяйтесь к группам в мессенджерах. Вместе вы сможете поддерживать друг друга и добиваться общих целей. Например, ты можешь присоединиться к группе в Telegram, где люди общаются на тему программирования на Python и делятся опытом.
  5. Помни, что твой навык — это твоя собственность. В процессе обучения ты развиваешь умения и навыки, которые тебе останутся на всю жизнь. Твой навык программирования — это нечто, что никто не сможет забрать у тебя. Поэтому продолжай учиться и развиваться, и ты всегда будешь ценным специалистом.
  6. Найди проект, который тебе действительно интересен. Работать над проектом, который тебе неинтересен, будет трудно и утомительно. Ищи проекты, которые могут быть полезны тебе лично, или же темы, которые тебя вдохновляют.
  7. Не забывай про баланс. Обучение и работа могут быть очень трудоемкими, и иногда нам кажется, что мы должны работать без остановки. Но не забывай про свое здоровье и личную жизнь. Помни, что баланс между работой и личной жизнью поможет тебе сохранить энергию и мотивацию в долгосрочной перспективе.
  8. Изучай чужой код. Чтение кода других разработчиков может помочь тебе узнать новые подходы, паттерны и стандарты программирования. Изучай код на Github, где разработчики делятся своими проектами.

Всем успехов, дерзайте!

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.