Что нужно знать Python-разработчику в 2021 году
Здравствуйте! Меня зовут Павел Сушко. Я Senior Python Developer в компании LeverX Group. В 2021 году Python исполнится 30 лет. Согласитесь, серьезная дата. Однако и сегодня есть много вопросов, которые волнуют разработчиков.
В каких сферах Python будет особенно востребован? Сможет ли он стать популярнее Java? Может ли Python-разработчик обойтись без soft skills и реально ли стать идеальным «питонистом»?
Собрал для вас факты и последние новости, которые должен знать каждый Python-разработчик, если хочет оставаться востребованным специалистом в 2021 году.
Актуальность за счет универсальности
«Второй лучший язык программирования» — именно так сегодня о Python говорят в IT-сообществе. И это правда: если вы изучите различные рейтинги, то увидите, что Python занимает в них уверенное второе место. Временами даже выходит на лидирующую позицию, обгоняя C и Java.
Особенным этот язык делает его универсальность. Python можно использовать практически в любой сфере. Его активно применяют в веб-программировании, поскольку он позволяет разработать и запустить веб-приложение в самые короткие сроки, что актуально для стартапов.
Более широкое распространение Python получил в Data Science и Machine Learning. Сейчас есть немало новых библиотек с интерфейсами, которые просты в применении, ускоряют разработку и позволяют Junior-специалистам не знать сложной математики при решении базовых задач.
Язык постоянно развивается и совершенствуется. Если появляется какая-то технология, будьте уверены: новая библиотека на Python не заставит себя долго ждать.
Спрос на специалистов продолжит расти
Сейчас все чаще встает вопрос о том, не превращается ли Python в новый PHP. В свое время PHP был популярен как среди разработчиков, так и среди заказчиков, поэтому не было недостатка ни в вакансиях, ни в кандидатах.
Однако не стоит забывать, что PHP изначально был больше похож на динамический язык разметки. Привычные для языков программирования атрибуты появились в нем позже. Python же с момента своего появления развивался как язык программирования. Это позволяет строить оптимистичные прогнозы о его будущем.
Согласно Bloomberg, за последний год число стартапов выросло на 24,58%, а объемы инвестиций в них достигли отметки в $1,27 млрд, что на 61% больше прошлогодних показателей. Поскольку Python — удобный инструмент для стартапов, такие цифры говорят о росте спроса на Python-специалистов в 2021 году.
Сегодня нет предпосылок к снижению популярности и востребованности Python. Даже когда приходили другие языки (например, Go, который тоже предлагал сочетание простого синтаксиса, низкого порога входа и возможность написания конкурентного работающего кода), они не смогли подвинуть Python с его лидирующих позиций.
Повышение зарплат
Если проанализировать спрос на Python-разработчиков, то становится видно, что он непрерывно растет и за последний год увеличился в два раза. Согласно отчетам Code Platoon, вакансия Python-разработчика в 2020 году занимает первое место как по количеству открытых вакансий, так и по уровню зарплат.
Из анализа рынка, который провел DOU, также видно, что, несмотря на то, что Python в Украине пока не входит в топ-3 языков программирования, интерес к нему постоянно увеличивается. Только за последний год количество Python-разработчиков здесь выросло на 13,2%.
Причина тому проста: большинство гигантов, например Google, Yahoo! и IBM, в своих разработках постоянно используют Python. Спрос на таких специалистов резко вырос и в компаниях Instagram, Reddit, Tumblr, YouTube и Pinterest. Чтобы не отставать от лидеров индустрии, все чаще обращаются к нему и другие компании.
Кроме этого, будет расти и зарплата Python-разработчиков. Для наглядности рассмотрим медианные зарплаты специалистов из Украины, Беларуси и России.
Опираясь на данные сайтов DOU, dev.by и Habr, мы можем проследить, как изменялась заработная плата Python-разработчиков с конца 2018 года по
Востребованный Python-разработчик — какой он
На зарплату любого специалиста влияет множество факторов, и гарантия ее увеличения — постоянное повышение квалификации. Какими же знаниями и навыками должен обладать Python-разработчик?
Синтаксис, базы данных и фреймворки
Необходимый стек знаний зависит от общего уровня специалиста и от задач, которые перед ним поставлены. Однако, помимо общих частей синтаксиса, всегда полезно разбираться в особенностях языка: как он работает с внутренними структурами данных и конкурентной моделью, его возможные пути реализации.
Если говорить о конкретных технологиях, то в веб-разработке вам будет полезно знать фреймворк Django — один из самых больших и функциональных сегодня. Если используете его уже не первый день, необходимо понимать, как работает его ORM (объектно-реляционное отображение).
Можно выбрать фреймворк Flask в связке со SQLAlchemy ORM. Его вряд ли можно назвать альтернативой Django: масштабы не те. Но Flask можно использовать как базу для конструктора, если разработчики не хотят или не могут применить Django. В таких случаях одной из частей конструктора становится именно SQLAlchemy ORM, поскольку реляционные базы данных и сегодня остаются надежным инструментом для работы с back-end, хранения и обработки данных. Их тоже будет полезно знать.
В бэкенд-разработке обычно используется реляционная база данных PostgreSQL. Одно из стандартных решений — MySQL. Стоит также обратить внимание на популярные NoSQL-инструменты, такие как MongoDB и DynamoDB.
Знание и понимание методологий разработки
Методологии разработки, или Agile-методологии, — это совокупность подходов к организации разработки. Сегодня существует множество вариантов их реализации.
Источник: Organize Agile, Consultancy.eu
На графике видно, что самая популярная форма сегодня — Scrum. Согласно статистике, ее использует более 80% компаний. Главная задача — оптимизация и повышение эффективности процессов разработки.
Однако не стоит забывать: ни один из методов не должен сковывать команду. Знание методологий определенно полезно при выстраивании рабочего процесса, но подход к работе должен подстраиваться под команду, а не наоборот.
Английский язык
Большинство представителей Python-комьюнити владеет английским. И даже если кто-то не является носителем этого языка, он все равно создает продукты, выступает с докладами и записывает подкасты на нем. Поэтому ваш английский должен быть хорош хотя бы на уровне восприятия.
Однако не стоит забывать, что любая IT-компания заинтересована в иностранных заказчиках, которые во время работы будут общаться с вами на английском языке. И здесь уже без умения говорить по-английски никак не обойтись. Вы должны уметь объяснить, что, как и зачем делаете. Это существенно сэкономит время вам, вашей команде и клиенту.
Многие IT-компании в качестве бонуса для своих сотрудников предусматривают бесплатные корпоративные курсы английского языка. Обращайте на это внимание во время поисков работы. Это отличная возможность совершенствовать свой уровень.
Soft skills
Первое, что ожидают от любого разработчика, — это умение работать в команде.
Поэтому понятие soft skills (гибкие навыки) включает в себя:
- умение доносить свою мысль;
- умение слышать собеседника;
- спокойное отношение к конструктивной критике;
- умение обсуждать и приходить к оптимальному решению.
Сегодня создать успешный программный продукт в одиночку практически невозможно, поэтому большинство проектов — это командная работа. Здесь без soft skills вам не обойтись. Они нужны каждому Python-специалисту для максимально эффективного взаимодействия с коллегами.
В целом в IT-индустрии нет предела совершенству, потому что эта сфера меняется каждый день и мотивирует постоянно учиться и оттачивать профессиональные навыки. В таких условиях сложно достичь идеала, ведь идеал — это «потолок», выше которого подняться уже нельзя. Но тот стек знаний, который я описал выше, в сочетании с soft skills точно поможет вам стать востребованным специалистом.
Что нужно знать в разрезе специализаций
Python — язык универсальный, именно поэтому он прижился во многих сферах ІТ.
Веб-разработка
К основным инструментам веб-разработки относятся Django и Flask. Также сюда стоит добавить популярные сегодня асинхронные фреймворки, начиная с базовой библиотеки Asyncio, ее реализации Aiohttp и заканчивая фреймворком FastAPI.
Если при разработке используются асинхронные фреймворки, то в качестве ORM снова выступает SQLAlchemy с асинхронными адаптерами для базы данных.
На сайте Real Python можно найти много полезной информации как о популярных фреймворках, так и о веб-разработке на Python в целом.
Также посоветую отличную книгу о Django — Two Scoops of Django 3.x: Best Practices for the Django Web Framework.
Data Science
Здесь вам пригодится базовый инструментарий — библиотеки pandas и NumPy, Jupyter Notebook. Если решили уйти в Machine Learning, обратите внимание на библиотеки Scikit-learn или более сложные PyTorch и Keras. Последняя — враппер над TensorFlow — популярной библиотекой от Google.
Более подробно о базовом инструментарии для Data Science можно узнать здесь. Есть и руководство для специалистов в области Machine Learning.
На сайте Coursera есть хороший курс от компании «Яндекс». Также можно попробовать свои силы на курсе Data Scientist with Python.
DevOps Engineering
Python также применяется в различных DevOps-приложениях. Одни из самых известных оркестраторов — Ansible и Fabric, которые стоит взять на заметку веб- и бэкенд-разработчикам, поскольку идеология DevOps подразумевает единство знаний о разработке и доставке кода.
Automation QA Engineer
Python может выступить и в качестве скриптового языка, который поможет автоматизировать проверку качества. Для этой цели в нем есть различные библиотеки, например враппер над Selenium, который тестирует и проверяет графические интерфейсы.
Для пополнения знаний о тестировании на Python можно изучить подкаст Test & Code.
Инструменты, которые важно знать всем Python-разработчикам
Существуют инструменты, которые с языком программирования либо никак не связаны, либо связаны частично. В первую очередь это система контроля версий Git.
Важно знать и интегрированные системы разработки. Одно из самых популярных коммерческих решений на рынке — PyCharm, но всегда можно найти альтернативу, например Visual Studio Code.
Не стоит забывать о важности инструментов для контроля качества кода. Это статические анализаторы кода, анализаторы типов, юнит-тестирование. Python-комьюнити предоставило много хороших вариантов для этих задач, например PyTest.
От Junior до Senior: как стать опытным специалистом
Чтобы подготовиться к интервью, можно заранее изучить список вопросов, но без опыта и знаний все равно не обойтись, а они не возникают в нашей голове по щелчку пальцев. Для всего нужно время.
Junior
Если вы новичок и пришли на собеседование, от вас будут ждать знания синтаксиса языка и понимания его особенностей; основные принципы работы с тем фреймворком, который необходим для проекта: это и настройка, и базовые структуры. И, конечно же, умение пользоваться своим собственным инструментом. Это начальные знания Gitflow или умения работы с ветками в Git.
Если вы начинаете свой путь в веб-разработке, будет плюсом знать, как работает Request-response- и RESTful-архитектура.
Помимо этого, даже если вы Junior, не надо забывать о таком понятии, как инженерная культура. Во время написания кода помните о его чистоте и о тех людях, которые тоже будут с ним работать. Вы же не хотите, чтобы они потом вспоминали вас плохими словами?
Middle
Middle-разработчик должен хорошо знать свои инструменты — фреймворк и набор его функций, дополнительные библиотеки.
Работа с документацией неизбежна на любом из уровней, но Middle подразумевает, что разработчик при решении базовых задач обращается к ней реже или четко знает, где можно найти необходимую информацию.
Уровень Middle — это также возможность решать определенные бизнес-задачи, например реализация больших фич, самостоятельно либо с минимальным вмешательством со стороны старших коллег.
Senior
Это широкий кругозор, глубокое знание инструментов, их концептуальное понимание и умение принимать глобальные стратегические решения при разработке. Кроме того, возможность быть наставником, то есть вести либо всю команду, либо отдельных разработчиков в правильном направлении.
Если же вы планируете строить карьеру Python-разработчика в США и дорасти там до уровня Senior, полезно будет заранее изучить тамошние требования к специалистам.
Где искать опыт и знания
Накапливать знания можно разными способами: самостоятельно, изучая учебники, видеогайды и подкасты; с помощью ментора, который будет направлять. Но ничто не помогает расти профессионально так, как живой опыт работы на проектах. Вы можете совместить его с занятиями с ментором, чтобы у вас было плечо, на которое можно опереться в случае тупика или ошибки.
Работа на проекте хороша еще и тем, что дает опыт выполнения бизнес-задач. За каждой из них кроется реальная потребность. Как правило, это нетривиальный случай, который подталкивает специалиста к исследовательской работе и стимулирует расширение его кругозора.
Если говорить о теоретической подготовке, то в первую очередь стоит обратиться к официальной документации Python, где содержится хорошее руководство для новичков. Также я бы порекомендовал следующие ресурсы:
Codecademy — платформа с интерактивными курсами, которая подойдет всем новичкам. Вы узнаете о том, как писать код на Python. А также сможете пройти несколько практических уроков.
Automate the Boring Stuff with Python — книга, которая будет полезна и новичку, и опытному разработчику. В каждой главе рассматриваются решения, которые можно автоматизировать с помощью Python.
A Byte of Python — электронная книга для начинающих, благодаря которой удастся разобраться в основах языка.
Essential Reads for Any Python Programmer — сборник советов для разработчиков, которые переходят на Python с других языков.
Google’s Python class — ресурс для тех, кто хочет изучить язык на профессиональном уровне. Он подойдет специалистам, которые уже имеют базовые знания о Python и хотят их расширить. Здесь найдете видеолекции, текстовые материалы и упражнения по коду.
Fluent Python — книга, в которой много интересной информации как о технической стороне реализации языка, так и о встроенных библиотеках.
Python Weekly — еженедельная рассылка с главными новостями из мира Python.
TutsPlus — руководство, которое пригодится и новичкам, и ветеранам Python. Здесь найдете множество ресурсов для изучения языка. Можно даже составить свой учебный план, чтобы точно знать, когда и к какому источнику обратиться.
Что принесет Python-разработчикам 2021 год: прогнозы и ожидания
Из года в год Python-разработчики ждут улучшения производительности языка. С этим ожиданием мы входим и в 2021 год. Даже сам создатель Python в своем Twitter написал, что хотел бы, чтобы язык работал быстрее на любой платформе.
Сюда можно добавить и желание отказаться от работы с GIL (Global interpreter lock), однако это нетривиальная задача, которая вряд ли будет решена в этом году.
В
Также напомню: в 2020 году закончилась поддержка второй версии Python. К сожалению, не все проекты и даже библиотеки организовали переезд на новую версию. Исходя из этого, вряд ли стоит тратить время на изучение особенностей второй версии, но стоит держать в уме, что, возможно, вам придется перевести продукт, проект или библиотеку на третью, поэтому на всякий случай держите в закладках документацию и руководство о том, как это сделать.
В остальном же в 2021 году Python продолжит давать разработчикам большую свободу выбора в направлениях для развития.