Вы знаете основы Python — а что дальше?
Собственно — в каком направлении можно развиваться дальше, зная основы программирования и Python? Это вопрос, который задают себе многие начинающие программисты — как самоучки, так и те, кто прошел различные виды курсов или буткемпов.
Сделать первые шаги в новой профессии всегда непросто. Вы находите какие-то статьи/блоги, смотрите ютуб ролики по программированию, изучаете онлайн учебник Python самостоятельно либо проходите специальные веб-курсы дабы потом иметь возможность найти хорошую работу в ИТ-сфере.
В данной статье я хотел бы представить самые популярные «карьерные пути» для людей, знающих Python. Я также перечислю библиотеки и инструменты, которые стоит знать при поиске работы в этой области.
Согласно опросу JetBrains в 2020 году, наиболее популярными вариантами использования Python были:
- Анализ данных.
- Веб-разработка.
- DevOps и системное администрирование.
- Машинное обучение.
Я постараюсь в этой статье приблизить читателя к каждой из этих тем. В то же время я хотел бы указать на инструменты, которые называются “must-have” на каждом из этих путей. Знание указанных технологий будет большим преимуществом при прохождении собеседования на первую работу на данной должности.
Веб-разработка
Первым и, вероятно, наиболее очевидным направлением будет веб-разработка. Python — это язык, на котором вы можете успешно писать эффективные веб-приложения, работающие на стороне сервера, то есть так называемый back-end.
Если вы решите пойти в этом направлении, ваши обязанности будут заключаться в создании и проектировании «интерьера» веб-приложений. Чаще всего вам придется научиться взаимодействовать с такими базами данных, как MySQL или PostgreSQL.
Django
Когда дело доходит до создания серверных приложений, без сомнения доминирует Django, который, согласно рейтингу HotFrameworks, является самым популярным фреймворком Python. Это довольно большой проект, позволяющий создать полноценное веб-приложение. Django имеет встроенные механизмы для работы с базами данных, формы, собственный язык шаблонов, готовый механизм для создания простой панели администрирования и многое другое. Дополнительным преимуществом при поиске работы с Django может быть знание django-rest-framework — самой популярной библиотеки для создания собственных REST-сервисов на основе Django.
Flask
Второй по популярности фреймворк Python — Flask — полная противоположность Django. Это довольно минималистичный проект, который позволяет создать первую страницу всего несколькими строками кода, одновременно сбрасывая на наши плечи (или на существующие плагины) большинство задач, необходимых для подготовки полного приложения. Первоначально это может показаться недостатком, но в случае более сложных, специализированных приложений это часто оказывается преимуществом, поскольку не навязывает программисту готовые решения, которые могут не полностью соответствовать потребностям.
Если вы собираетесь стать веб-разработчиком Python, вам также следует рассмотреть возможность изучения JavaScript, HTML и CSS. Разработчики, знакомые как с Python, так и с интерфейсными технологиями (то есть так называемым full-stack), пользуются большим спросом у всех компаний, создающих веб-приложения.
Анализ данных
В опросе JetBrains по сравнению с предыдущими годами, пункт «Анализ данных» обогнал веб-разработку, что показывает масштаб интереса компаний к анализу данных и использованию Python. В случае анализа данных мы не будем создавать большие приложения, а будем использовать Python только как инструмент, помогающий нам обрабатывать большие объемы данных.
Задача аналитиков заключается в том, чтобы сделать выводы на основе гигантских, часто неупорядоченных наборов данных. Важно понимать проблемную область, иметь навыки программирования и очень хорошее знание статистики.
Основные инструменты, которые нужно знать, — это библиотеки NumPy, SciPy, Pandas и Matplotlib. Кратко опишу каждую из них.
- NumPy — это библиотека, предлагающая высокопроизводительные многомерные массивы и матрицы с операциями над ними. Как мы можем догадаться, это поможет загружать и хранить данные для последующего анализа.
- SciPy — это набор инструментов, которые используют NumPy, содержащий инструменты для линейной оптимизации, интерполяции, обработки изображений и многие другие, полезные для анализа данных.
- Pandas — еще одна библиотека, построенная на NumPy, которая предоставляет больше структур данных и возможность манипулировать этими данными.
- Matplotlib — самая популярная библиотека для визуализации данных или, говоря в просторечии, «рисования графиков».
Рассматривая работу специалиста по данным, стоит обратить внимание на проект Anaconda. Это готовый дистрибутив Python и языка R, облегчающий установку необходимых библиотек с целью широко понимаемой «науки о данных».
Машинное обучение
Тема, так или иначе связанная с анализом данных, — это так называемое «машинное обучение» или так называемый «искусственный интеллект». Работая с машинным обучением, вы очень часто будете использовать библиотеки, описанные в разделе «Анализ данных», но ваша задача будет заключаться не в том, чтобы делать выводы из данных, а в создании систем, которые будут делать это автоматически.
Помимо описанных библиотек, необходимо знать методы машинного обучения, такие как нейронные сети или генетические алгоритмы. Программистам Python, ищущим работу в области машинного обучения, потребуются знания библиотек scikit-learn и TensorFlow от Google.
Программистам, которые хотят углубиться в темы машинного обучения и искусственного интеллекта, в частности, потребуются алгоритмические навыки, статистика и нестандартное мышление.
Системное администрирование и DevOps
В работе системного администратора или так называемого DevOps, Python будет не основным инструментом, а лишь дополнением, которое упростит работу. У системных администраторов столько же задач, сколько систем на рынке, но большая часть из них сводится к внедрению и поддержке различных приложений. Python может значительно помочь автоматизировать скучные и повторяющиеся задачи.
Кроме того, многие инструменты для администраторов написаны на Python, и знание этого языка может помочь создавать расширения.
Рассматривая этот карьерный путь, в первую очередь, необходимо досконально понять операционную систему (Windows или Linux). Python определенно более популярен и полезен для системных администраторов Linux.
Со стороны Python инструменты, которые заинтересуют при выполнении работы Devops-в или системного администратора, являются:
- Fabric — библиотека для выполнения команд на удаленных машинах с использованием SSH, упрощающая написание любых скриптов, автоматизирующих повторяющиеся действия на серверах.
- Ansible — мощный инструмент для настройки, развертывания и управления инфраструктурой. Ansible полностью написан на Python и позволяет создавать собственные расширения с помощью Python. Подобные инструменты (но уже не на Python) — это Chef и Puppet.
- Psutil — набор инструментов для извлечения всей информации из системы, такой как использование памяти или использование жесткого диска.
Резюме
Конечно, в этой статье я лишь слегка коснулся возможных вариантов использования Python. По каждой из описанных мною тем можно написать отдельную статью. Однако я надеюсь, что такое краткое описание «карьерных путей» поможет вам выбрать интересное направление и облегчит поиск более полных анализов по заданной теме, потому что самым важным навыком для каждого начинающего питониста будет … умение использовать Google ;)