Дорожная карта питон разработчика

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

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

Чтобы не превратить обучение в рутину можно одновременно учить основы и не спеша изучать что-то продвинутое: Django, Selenium, математику для дата-сайенс, алгоритмы. Придумывайте себе челленджи, участвуйте в хакатонах, конкурсах Kaggle (раз, два, три). Не скучайте.

Итак, у нас есть четыре способа изучения языка:

  • Пойти на курсы с кураторами или купить подписку на онлайн-тренажер.
  • Отправиться на буткемп.
  • Учить самостоятельно по Ютубу и книгам, делать пет-проекты.
  • Найти наставника.

Ищите курсы с трудоустройством, поскольку на всех курсах, ютуб-роликах дают примерно одинаковые знания: отличается только подача материала и наличие куратора, который придет на помощь. Если вам нужно полностью погрузиться в процесс обучения, чтобы чему-то научиться, то выбирайте буткемп – интенсивные курсы/лагеря по программированию. Основам вполне можно научиться самостоятельно и вы не одни на этом пути. Главное при таком подходе – самодисциплина и умение вовремя взять перерыв. И, наконец, идеальный вариант – найти наставника, который проведет по всем подводным камням и поделится знаниями.

Дальше – выбор операционной системы.

Кодить на Питоне можно на Винде, Макоси и Линуксе. Лучший выбор питонщика – дистрибутив Линукс, который называется Убунту. Питон на нем предустановлен, плюс все инструкции по использованию библиотек преимущественно пишутся под этот дистрибутив. Вопросы на Стековерфлоу по Питону, как правило, тоже задают для Убунту. Редко, но бывают случаи, что на Винде очень сложно установить библиотеку, а в Убунту она ставится за пару команд. Макось – на вкус и цвет.

IDE – программа для кодинга, которая значительно упрощает работу за счет разнообразных плагинов: автодополнение кода, автоматическое создание виртуального окружения и т. д. Новичкам советуют IDE PyCharm, потому что в ней все работает из коробки. Альтернативы – Atom, Visual Studio Code, Sublime.

Читайте также:  Css border цвета фона

Не Винду. На ней можно покрывать 90% задач, но потом все равно придется столкнуться с Линуксом, потому что питонщики занимаются бэкенд-разработкой и их программы в итоге запускаются в среде Линукс.

  • Установка ОС.
  • Командная строка.
  • Установка пакетов.
  • Управление пользователями и группами.
  • Файловая система.
  • Скрипты Bash.

В нашем арсенале десятки курсов на Ютубе, Степике, Coursera и бесплатные онлайн-тренажеры. Если предпочитаете читать книги, обратите внимание на статью «ТОП-15 книг по Python: от новичка до профессионала».

Каждый проект начинайте в новом виртуальном окружении. Виртуальное окружение – отдельная папка, в которую копируется интерпретатор Python и устанавливаются библиотеки для отдельно взятого проекта. Такой подход позволит в каждый проект устанавливать нужную версию библиотеки.

Скорость разработки – важный параметр, но куда важнее писать код, от которого у другого разраба не будет течь кровь из глаз. Каждому, кто пишет на Питоне, рекомендуется следовать общепринятому стилю написания кода PEP 8.

Плюс-минус основы включают в себя:

  • Понятие интерпретатора.
  • Типы данных.
  • Переменные, PEP 8.
  • Логические операторы.
  • Условные операторы if/else.
  • Циклы.
  • Итераторы и генераторы.
  • Файлы.
  • Модули.
  • Установка библиотек.
  • Функции.

В публикации «Самоучитель для начинающих: как освоить Python с нуля за 30 минут?» разбираются основы Питона до функционального программирования включительно. Поверхностно, но за пару часов получите минимальное представление о языке.

Git – распределенная система управления версиями кода, которая отслеживает какие изменения были внесены в код и ведет историю изменений, чтобы можно было откатиться назад.

Код хранится в хранилище – репозитории. Проще говоря, в папке с кодом. Репозитории можно хранить на локальной машине и размещать в онлайн-репозиториях, таких как GitHub и GitLab. Без Git не работает ни один серьезный проект и знать его – мастхэв для всех кодеров.

  • Установка и настройка Git.
  • Репозитории и управление файлами.
  • История изменений и ветки репозиторий.
  • Публикация репозитория и слияние веток.
  • Создание pull request.

База освоена. Вы еще не джун, но уже большой молодец, потому что не бросили. Теперь выбираем дорожку, на которую свернуть: веб-разработка, тестирование, наука о данных или машинное обучение.

Читайте также:  Access http headers javascript

Питонисты пишут бэкенд веб-приложений на фреймворках и микрофреймворках.

Фреймворк – платформа, набор технологий, который помогает разработчику создавать, масштабировать и обслуживать веб-приложения. Самый популярный веб-фреймворк на Питоне – Django. Весь необходимый для создания сайта функционал в Джанго присутствует из коробки, например, работа с базами данных. Для него существует огромное количество дополнений, которые подключаются за несколько строчек кода. Акцент в этом фреймворке сделан на скорости разработки.

Микрофреймворки – Flask, FastAPI, Bottle, Pyramid – имеют минимальный функционал и предоставляют в основном только роутинг (переход на страницу), а для всего остального нужно ставить дополнительный плагины или писать их самому. Больше гибкости, но ниже скорость разработки.

Помимо самих фреймворков, пригодятся начальные знания HTML, CSS, JS, чтобы понимать как связываются бэкенд с фронтендом. Понадобится умение писать SQL-запросы (Django ORM, SQLAlchemy), настраивать сервер Nginx/Apache и понимать разницу между ASGI и WSGI.

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

  • HTML, CSS.
  • Основы JavaScript.
  • Django и Django ORM.
  • Flask, шаблоны Jinja2, Blueprints и SQLAlchemy.
  • Nginx или Heroku.

Python широко используется в автоматизации тестирования, например, инженеры SpaceX пишут тесты для бэкенда именно на этом языке. В Python встроены библиотеки для тестирований Pytest и Unittest (запуск независимых тестов для отдельной функции или класса). Для автоматизации действий веб-браузера и тестирования сайтов и веб-приложений применяют библиотеку Selenium.

  • Протокол HTTP, концепция DOM.
  • HTML, CSS, JavaScript.
  • Ручное тестирование.
  • Баг-системы, баг-репорты.
  • Автоматизация тестирования: Selenium, Pytest.
  • Кроссбраузерное тестирование.

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

Читайте также:  How to read more html

Дата-сайентисты работают в Jupyter Notebook – среде, в которой можно запускать отдельные фрагменты кода и визуализировать данные. Если датасеты большие, а компьютер слабый, воспользуйтесь бесплатным облачным сервисом Google Colab – это Jupyter Notebook, только онлайн.

  • NumPy – удобно работать с многомерными матрицами/тензорами.
  • Pandas – применяется для обработки, группировки и визуализации больших наборов данных.
  • Matplotlib, Plotly, Seaborn, Bokeh и Altair – визуализируют данные.
  • Pandas, Numpy, Matplotlib.
  • Выгрузка баз данных с помощью SQL.
  • Извлечение, преобразование и загрузка данных (ETL).
  • Разведочный анализ данных (EDA).
  • Задачи классификации, регрессии и кластеризации.
  • Построение и отбор признаков (раз, два).
  • Линейная алгебра, матанализ, основы теории вероятностей.

В машинном обучении потребуется отличное знание Python. Начните с библиотек Numpy, Matplotlib, Scikit-learn. Не обойтись без математики и статистики: множества, пределы функций, производные, интегралы, случайные события, линейная регрессия и дисперсионный анализ.

  • Numpy, Pandas.
  • SQL и получение данных.
  • Очистка данных.
  • Визуализация данных в Matplotlib.
  • Линейная алгебра, математический анализ и теория вероятности.
  • Линейные методы, деревья решений.
  • Алгоритмы кластеризации.
  • Функции потерь и оптимизации.
  • Оценка точности модели.

Продвинутый Python стоит в конце списка, но по факту, вникать в детали языка можно сразу после основ («70 ресурсов для продвинутого изучения Python: каналы, сайты, сообщества, книги и курсы»).

Все серьезные библиотеки пишут с использованием объектно-ориентированного программирования (ООП). Разберитесь в парадигмах ООП: инкапсуляции, наследовании и полиморфизме. Узнайте что такое декораторы и когда их использовать. Освойте асинхронное (async/await) и многопоточное (threading) программирование. Помните об алгоритмах, их иногда спрашивают на собеседованиях.

Автор: Miroslav Kungurov

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

Больше полезной информации вы найдете на наших телеграм-каналах «Библиотека программиста» и «Книги для программистов».

Мы также отдаем скидку 20% к любому нашему курсу по промокоду PYTHON. Воспользуйтесь промокодом на сайте.

Источник

Оцените статью