Кто такой Python-разработчик. Обзор изнутри от Александры Воронцовой
Про профессию рассказывает Александра Воронцова, наставник курса «Python-разработчик» в Яндекс. Практикуме.
Продолжаем цикл материалов про ИТ-специальности. Каждую описывает «типичный представитель» — опытный специалист и просто авторитетный коллега, тот самый человек, который знает все тайные уголки своей профессии. Мы надеемся, эти материалы помогут школьникам, студентам, переквалификантам, джуниорам и всем тем, кто заинтересован в выборе ИТ-специальности. Цикл не только поможет оценить перспективы, но и даст возможность лучше понять индустрию и особенности профессии изнутри. Обсуждайте и дополняйте материал в комментариях, чтобы сделать его еще полезней.

Что надо знать Python-разработчику
Нужно базово знать язык программирования. В моем понимании к базовым знаниям относятся:
- типы и структуры данных: чем они отличаются друг от друга, например, в каких случаях лучше использовать списки, а когда ― кортежи,
- как хранятся переменные,
- что такое условные конструкции, циклы и функции.
При этом список нужных для работы скиллов отличается от направления, в котором вы хотите развиваться. Конкретнее расскажу про два самых популярных: веб-разработка и анализ данных.
Веб-разработка
- Фреймворки. Первый — Flask, с его помощью можно быстро запрограммировать что-то работающее. Но все дополнительные функции нужно подключать и скачивать отдельно, если они нужны, конечно.
- Django. С ним надо познакомиться хотя бы чуть-чуть, потому что долгое время он был одним из самых популярных. Поэтому велика вероятность, что, придя разработчиком на Python в какую-нибудь компанию, вы застанете проект на Django, и его надо будет поддерживать. Основное отличие Django от Flask — всё, что вам может потребоваться, встроено в сам фреймворк.
На старте нужно знать хотя бы один из этих фреймворков. Остальной набор зависит от того, в каком направлении вы хотите развиваться и какие задачи ставит перед вами тимлид. Обычно третьим советуют изучить асинхронный фреймворк. Например, Async IO либо Fast API.
Асинхронность нужна, чтобы обойти проблемные места, связанные с загрузкой процессора. При синхронной разработке пользователь не сможет взаимодействовать со страницей, пока не придет ответ от сервера. Асинхронность решает эту проблему: один поток подгружает интерфейс, а второй — ждет ответ от сервера.
- Устройство Unix-систем (хотя бы на базовом уровне). Перед собеседованием поработайте с Linux, поэкспериментируйте с командой стройкой и попробуйте какое-то время пользоваться только ей, без графического интерфейса. Вероятно, что когда вы придете на первую работу, единственным способом коммуникации с сервером, на котором запущено ваше приложение, будет командная строка. Этот навык осваивается очень быстро: день на то, чтобы прочитать документацию, и буквально неделя на то, чтобы закрепить знания.
- SQL и базы данных. Начинающему python developer-у не нужны глубокие знания в этой области, но нужно понимать, что такое база данных, и как в ней хранится информация. Будет здорово, если перед первым собеседованием вы развернете какую-нибудь базу данных и попробуете составить к ней несколько запросов.
Анализ данных
- Математика. Перцентили, нормальное распределение, векторы и матрицы — всё это нужно понимать, чтобы знать, что вы считаете. Обычно сложные вычислительные операции можно реализовать с помощью готовых функций, но без понимания, что и зачем используется, высока вероятность получить на выходе что-то ненужное вместо полезных данных.
- Pandas. Это библиотека Python, которая часто применяется в анализе данных. Ее используют в работе практически каждый день, поэтому нужно знать, как с ней работать.
- Визуализация данных станет огромным плюсом для начинающего разработчика. Например, базовая библиотека — Matplotlib. Еще есть Seaborn, которая расширяет возможности первой и в основном служит для более простых данных, например, корреляции или анализа одномерного или двумерного массива.
Soft skills
Хорошие soft skills порой важнее hard skills. Самое важное — умение и готовность задавать вопросы. У меня есть алгоритм, которым я делюсь со своими студентами. Он поможет подготовиться к обсуждению проблемы со старшим коллегой и сэкономить его время. Для этого нужно ответить на четыре вопроса.
- Что я хочу сделать? Кратко описать задачу и что именно вы хотите сделать. Например: я хочу вывести среднее число по конкретному массиву.
- Как сейчас работает программа? На каком этапе вы зашли в тупик, какое сообщение об ошибке всплывает или какой результат вместо ожидаемого она выводит.
- Что я уже пытался сделать, чтобы исправить ошибку? Например, поискал ошибку в поисковике или пробовал написать другую функцию.
- Конкретный вопрос, чем может помочь наставник или руководитель: посмотреть конкретный фрагмент кода или подсказать, какую функцию лучше использовать.
Готовность учиться и воспринимать замечания. Нужно уметь услышать позицию другого человека и понять, почему более опытный разработчик считает так или иначе. При этом абсолютно нормально, если джуниор вступает в дискуссию с такими аргументами: «Я слышал, что…», а не «Я знаю, что надо так, и точка». Нужно показать свои знания и спросить, почему старший разработчик думает иначе. В дальнейшем это позволит быстрее набрать базу знаний, дорасти до middle-разработчика и принимать более взвешенные решения.
Важно, чтобы с человеком было приятно работать в одном кабинете и поговорить не только о работе.
Где учиться на Python-разработчика
Высшее образование
Я ступаю на скользкую дорожку, но считаю, что не всем будет полезно высшее образование в ИТ. Вуз полезен, если решите идти дальше в Computer Science, чтобы заниматься программированием более фундаментально: не создавать новые сервисы, а изучать, каким образом писать эффективнее, или программировать более низкоуровневые системы. Например, университетский курс полезен, чтобы писать операционные системы, среду разработки или базы данных.
Еще вуз помогает уложить знания в структуру, потому что расписанием занимаются методисты. Они продумывают, в каком порядке и какие курсы давать, и обозначают спектр вопросов, на которые студент в дальнейшем должен уметь ответить на госэкзаменах.
Огромный плюс обучения в университете — возможность ездить по зарубежным стажировкам. При этом ваш возраст и этап обучения совсем не важен. Без вуза, скорее всего, такого шанса не будет.
Хорошие советы о том, как проходить собеседования на стажировки в крупные компании, например Google, Apple, Microsoft, Amazon, Facebook и Palantir Technologies, есть в книге Cracking the Coding Interview («Карьера программиста»).
Минус в том, что на это нужно потратить как минимум четыре года и вас, скорее всего, не научат продакшн-разработке. А ещё не все вузы позволяют совмещать учебу и работу.
Курсы для Python-разработчика
Есть много курсов на Coursera, Stepik, EdX. Поищите лекции на YouTube, а вопросы задавайте в комментариях. Еще можно читать Хабр. Правда, полезно там далеко не все. Но за неделю можно найти пару хороших статей, которые расширят кругозор и могут однажды пригодиться на собеседовании.
Проблема такого подхода в том, что надо обладать ненулевой мотивацией и очень хотеть что-то изучить, потому что никто не будет за вами бегать и проверять домашние задания. И так как вы не заплатили за это деньги, пропадает ответственность за результат. В такой ситуации может сложиться плохой паттерн: вы начинаете учиться и бросаете на середине. Мозг привыкает, что когда становится тяжело, сложно или просто нет времени, легко можно на что-то забить.
Ментор
Ещё вариант — работа с ментором. Рядом с вами будет человек, который заинтересован, чтобы вы прошли курс и получили конкретные знания. Если повезет и вы будете хорошим учеником, вам предложат устроиться в компанию или, как минимум, передадут ваше резюме менеджеру.
Когда вы учитесь с конкретным человеком один на один и хотите решить какую-то задачу, ментор берет на себя декомпозицию проблемы, помогает с выбором конкретной технологии, подсказывает, что читать и как отвечать на вопросы. Он же проведет код ревью.
Но ментора надо искать так же внимательно, как психотерапевта. Даже если наставник хороший специалист, может оказаться, что вам с ним неприятно работать. Из-за отсутствия методиста полученные знания могут оказаться однобокими и плохо сбалансированными. Например, если ментор посчитает неважным изучать unix, вы его не затроните.
Платные курсы. Я преподаю в Яндекс. Практикуме, где дается большое количество теоретического материала и есть учебные проекты, на которых можно тренироваться. Кураторы и наставники заботятся, чтобы разработчики получили релевантный опыт, трудоустроились в компанию и начали карьеру в ИТ. Они всегда отвечают на вопросы и помогают сориентироваться в неизвестной теме. Но задания одинаковы для всех студентов. Поэтому если вы хотите что-то конкретное, придется заниматься этим дополнительно, а не вместо проектов курса.
Мне нравится подход, когда платные курсы становятся бейзлайном — основной линией, по которой идет обучение. Но всегда будут темы, которые понятны не до конца или оставляют новые вопросы. Чтобы восполнить эти пробелы, можно найти материалы на YouTube, Хабр или в книге, попросить совета у наставника, почитать и дополнительно разобраться.
Параллельно я преподаю на Learn Python. Здесь не помогают трудоустроиться, но зато можно разобраться, подходит ли мне эта профессия и захочу ли я заниматься этим в будущем. Там есть материалы, которые рассчитаны на всех, а дальше идут самостоятельные проекты. Студент выбирает, что хочет реализовать за условные восемь недель, и параллельно с наставником работает над проектом.
Как подготовиться к собеседованию
Когда я искала свою первую работаю, поступила просто: искала в интернете вопросы для junior Python-разработчика. Так вы понимаете, с чем придется столкнуться и оцениваете свой уровень. Например, на какие-то вопросы сможете ответить сразу, а какие-то — придется погуглить. Соответственно, продолжаете заниматься, через пару месяцев смотрите этот список и пытаетесь дать честный ответ, как ответили бы на собеседовании.
Тогда же я составила себе список для middle-разработчика, чтобы определить траекторию дальнейшего обучения и не тратить потом на него время. А еще дополнительные знания иногда помогают получить более хорошее предложение на старте.
Если получится, найдите знакомого, который совсем ничего не понимает в программировании, чтобы он задавал дополнительные вопросы. Это называют методом Фейнмана. Свое кредо он описал так: «Если вы ученый, квантовый физик, и не можете в двух словах объяснить пятилетнему ребенку, чем вы занимаетесь, — вы шарлатан».
Хорошим показателем готовности к собеседованию будет наличие работающего проекта на GitHub, который вы можете использовать в своей жизни. Я уже писала в начале про бота, который помогает составить список покупок. Если есть такой или другой аналогичный по сложности проект, вы его написали и сами пользуетесь, выкладывайте на GitHub и рассылайте резюме с сопроводительными письмами. Это уже хороший старт.
Что почитать
Telegram-каналы
- Библиотека программиста — публикуют подборки книг и инструментов, инструкции, аналитику и все остальное, что помогает погрузиться в ИТ-сферу и освоить разработку.
- NOP:Nuances of programming — авторские материалы и переводы статей, связанных с программированием.
Книги
- «Карьера программиста», Макдауэлл Лакман. Автор пишет о своем опыте собеседований в крупнейшие ИТ-компании. В книге 189 задач и вопросов, которые помогут восполнить пробелы в знаниях и подготовиться к интервью.
- «Совершенный код», Макконнелл Стив. Внутри много советов и рекомендаций, которые научат писать код лучше и чище, проектировать с максимальной продуктивностью, быстро находить в проекте проблемы и разрабатывать качественнее.
- «Чистая архитектура», Мартин Роберт. Книга про архитектуру и дизайн кода. Автор объясняет, что и почему нужно делать, чтобы стать успешным программистом. Много рассказывается про объектно-ориентированное программирование, но внутри используется Java.
Еще советую пару раз в неделю читать статьи на Habr по любым темам, чтобы не выпадать из состояния «я изучаю программирование».
What Does a Python Developer Do?
BrainStation’s Python Developer career guide can help you take the first steps toward a lucrative career in web development and data science. Read on for an overview of what a Python Developer does, as well as the different jobs that use Python programming skills.
Become a Python Developer
Speak to a Learning Advisor to learn more about how our bootcamps and courses can help you become a Python Developer.
Thank you!
We will be in touch soon.
A Python Developer is responsible for coding, designing, deploying, and debugging development projects, typically on the server-side (or back-end). They may, however, also help organizations with their technological framework.
In a given day, a Python Developer might be asked to create an application for your employer, design the framework for your code, build tools as necessary to get the job done, create websites and integrable systems, or publish new services.
Some Python Developers work as independent contractors, while others are exclusive to one company. Like most programming positions, the specifics of this job vary based on the needs of your employer.
What is a Python Developer?
Though there are many jobs in tech that use Python extensively — including Software Engineer, Web Developer, Data Scientist, and Business Analyst — a dedicated Python Developer will be expected to understand the language at a higher level and be capable of using Python to accomplish any number of tasks, including but not limited to data collection and analytics, database creation, web development, and design, scripting, and automation.
A Python Developer often works in close collaboration with data collection and analytics to create useful answers to questions and provide valuable insight.
Python is being used in web development, machine learning, AI, scientific computing, and academic research. Its popularity can be credited with the growing data science community embracing artificial intelligence and machine learning. Industries like education, healthcare, and finance are using machine-learning applications to innovate their organizations.
Python is also widely used by companies including Netflix, Google, Facebook, Reddit, YouTube, Instagram, and more. Specifically, Spotify uses Python within its back-end services, capturing user data to provide accurate recommendations and playlists. Dropbox, meanwhile, uses Python scripts to create its native applications on each platform (Windows, macOS, Linux, iOS, Android, etc.)
Python Developer Job Description
A Python Developer’s role can span a wide variety of duties. Because the potential applications of Python are broad, a Python Developer’s job role and responsibilities tend to be similarly broad.
As a result, a typical Python Developer job description could encompass responsibilities including:
- Design and create effective websites and applications
- Write reusable, testable, and efficient Python code
- Integrate data storage solutions
- Create integrative systems
- Integrate user-facing elements and understand end-user requirements
What Tools Do Python Developers Use?
Since Python is so versatile and has so many applications, the best tools for Python Developers to use can be divided into several categories:
Data science Python tools
Scikit-Learn is an open-source tool that Python Developers, Machine Learning Engineers, and Data Scientists all swear by for data mining and data analysis. Written in Python, Keras is a high-level neural network library that is easy to use and well-suited to machine learning and deep learning. Theano is a Python library useful for evaluating math computations that integrate tightly with NumPy. And SciPy is used for technical and scientific computing.
Automation testing Python tools
Selenium is beloved for good reason, as it allows a Python Developer to write scripts in many other languages, including C#, PHP, Perl, Ruby, and Java. Selenium also allows you to perform tests from any browser in all three major operating systems. Robot Framework is also open-source, a generic test automation framework designed for acceptance testing that works not just for web apps, but also iOS and Android test automation. Like Robot Framework, TestComplete is an automation testing software, but it requires a commercial license.
Web scraping Python tools
LXML is a feature-rich, Python-based tool for C libraries. Beautiful Soup is a time-saving Python library that is used for projects like screen-scraping. And Scrapy is an open-source framework written in Python that crawls web pages and extracts data from them.
What Skills Does a Python Developer Need?
Though the specific responsibilities will vary, these are some of the basic skills any will need to become a Python Developer:
Python skills
A Python Developer needs to have a mastery of Python that extends beyond other colleagues in data science, web development, or other fields who might also be expected to have some familiarity with it. A Python Developer must learn object-oriented programming, basic Python syntax, semantics, primitive data types, and arithmetic operators.
Python libraries
One of the major selling points of Python is the massive range of libraries available. A Python Developer should be well-versed in what’s out there and use available libraries to their fullest advantage. Begin by exploring the Python Package Index (PyPi) and becoming familiar with common libraries like Pandas and NumPy.
Python frameworks
A Python Developer needs to be knowledgeable about the available frameworks that can be massively helpful depending on the task, including Django, Flask, CherryPy, web2py, TurboGears, and Grok.
ORM libraries
Object Relational Mapper (ORM) libraries – examples include SQLAlchemy or Django ORM – help a Python Developer write Python code instead of SQL to create and alter data and schemas in their database.
What Jobs Can You Get With Python?
A professional who specializes in Python can hold a number of job titles, including Python Developer, Data Scientist, and Machine Learning Engineer. The exact work you’ll be doing will depend on the industry, company, and scope of the role, but essentially you will be using code to create sites and applications, or work with data and AI.
Python is most commonly used in big data centers, as well as a “binder” language between other languages. Google, NASA, Industrial Light & Magic and id Software all use Python because of its capabilities and expandability. Python is frequently used by Game Developers as the glue between C/C++ modules, or you can use it with PyGame to make a full-blown game. It’s also popular among Scientists and Statisticians with SciPy and Pandas.
Although there are many different jobs that require Python programming skills, they have one thing in common: they tend to pay very well. That’s probably because employers are having a hard time finding Python talent across a number of industries.
According to the Developer Survey by StackOverflow, Python was one of the most in-demand technologies of 2018, 2019, and 2020. As of 2020, it is ranked as the world’s fourth most popular programming language among professional Software Developers, as well as the first most-wanted programming language.
Web Developer
Web Developers typically specialize in either “front-end” (“client-side”) development or “back-end” (“server-side”) development, with the most sought-after development professionals, called “Full-Stack Developers,” working in both.
In addition to layout and server-side responsibilities, Web Developers keep sites current with fresh updates and new content. Web Developers typically work in a collaborative role, communicating with management and other programmers to ensure their website looks and functions as intended.
Python Developer
Python Developers often work server side, either writing logic or developing the platform. Typically, they are responsible for deploying applications and working with development and design teams to build websites or applications that suit the user’s needs.
Python Developers also support Front-End Developers by integrating their work with the Python application.
Software Engineer
Software Engineers, like Developers, are responsible for writing, testing, and deploying code. As a Software Engineer, you’ll need to integrate applications, debug programs, and overall improve and maintain software.
Software Engineers’ day-to-day routines usually involve ensuring active programs run smoothly, updating programs, fixing bugs, and creating new programs. Software Engineers write for a wide variety of technologies and platforms, from smart home devices to virtual assistants.
Data Analyst
Data analysts collect, organize, and interpret data to create actionable insights. To accomplish this, Data Analysts must collect large amounts of data, sift through it, and assemble key sets of data based on the organization’s desired metrics or goals.
A Data Analyst uses Python libraries to carry out data analysis, parse data, analyze datasets, and create visualizations to communicate findings in a way that’s helpful to the organization.
Data Scientist
Data Scientists have a more complex skill set than Data Analysts, combining computer science, mathematics, statistics, and modeling with a strong understanding of their business and industry to unlock new opportunities and strategies.
Data Scientists are not only responsible for analyzing data but often also using machine learning, developing statistical models, and designing data structures for an organization.
Machine Learning Engineer
If you’re looking to go beyond data analysis, you can pursue machine learning, a subset of data science and artificial intelligence. Machine Learning Engineers perform statistical analysis and implement machine learning algorithms that can be used in AI.
Machine Learning Engineers are also responsible for taking theoretical data science models and helping scale them to production-level models capable of handling terabytes of real-time data.
Где используется Python и как стать Junior Python Developer с нуля?
Python — высокоуровневый язык программирования, на котором пишут более 15,7 млн девелоперов (по данным statista.com за 2022 год). Он находится на первой строчке TIOBE Index и занимает 3-е место в рейтинге самых популярных языков программирования по версии Stack Overflow. Создатель Python Гвидо ван Россум не подозревал, что всего за 3 месяца смоделирует язык, который даже спустя 30 лет останется одной из ведущих технологий. «Я точно не собирался создавать язык, предназначенный для массового потребления» — сегодня эта цитата голландского программиста вызывает улыбку. Но еще сильнее смешит тот факт, что в 2019 году пользователи гуглили «Python» чаще, чем «Ким Кардашьян».
Почему Python так популярен, что на нем можно написать и как стать питонистом? Разберемся в этой статье.
Преимущества и недостатки Python
Python обладает множеством преимуществ, которые привлекают разработчиков. Рассказываем о самых главных плюсах программирования на питоне:
1. Простота: Синтаксис языка удобен для чтения и понимания и похож на английский язык. Это делает его привлекательным для новичков и опытных программистов. Многие девелоперы начинают с Python, чтобы быстрее влиться в разработку.
2. Масштабируемость: Python подходит для разработки как небольших сайтов, так и крупномасштабных приложений.
3. Востребованность: Python можно назвать универсальной технологией, которая используется во многих областях. Также это один из самых востребованных языков согласно отчету «State of Tech Hiring 2023».
4. Большая библиотека: Python имеет огромную коллекцию библиотек, которые предоставляют готовые решения, что ускоряет процесс разработки.
5. Активное сообщество: Огромное комьюнити разработчиков на Python обеспечивает поддержку, документацию и регулярные обновления языка.
Несмотря на высокую популярность в IT-сообществе, у Python’а есть и свои минусы:
1. Относительная медлительность: Python может быть медленным относительно других языков программирования из-за его динамической природы и сборки мусора. Но усилиями стартапа Exaloop и Массачусетского технологического института создан компилятор Codon, который обеспечивает производительность софта в 10-100 раз выше старых показателей!
2. Python не очень подходит для мобильной разработки: Он не поддерживается в качестве официального языка программирования под Android и iOS.
3. Зависимость от интерпретатора: Для запуска программ на Python требуется интерпретатор, что делает программу менее компактной и чувствительной к версиям интерпретатора.
Где применяется Python и какие перспективы ждут питонистов?
Python называют «швейцарским ножом» программиста — он нашел применение в разных областях разработки. Мы перечислим самые востребованные сферы, в которых «обитают питоны»:
1. Веб-разработка: На Python пишут серверную часть сайтов и веб-приложений, используя фреймворки Django, FastAPI, Flask и др.
2. Научные вычисления и анализ данных / Data Science: Python предоставляет мощные библиотеки, такие как NumPy, Pandas и SciPy, которые облегчают анализ данных и научные исследования.
3. Автоматизация задачи DevOps: Python используется для автоматизации рутинных задач: обработки файлов, парсинга данных и автоматизации тестирования.
4. Игровая разработка: Python часто применяется для прототипирования и создания прототипов игровых механик, а также в качестве сценарного языка в движках Unity и Blender. На питоне написаны многие игры, в числе которых World of Tanks, Civilization IV и The Sims 4.
5. Machine Learning и AI: Благодаря своей простоте и гибкости Python облегчает создание и развертывание мощных моделей ML. Создавать свои нейросети можно с помощью библиотек NumPy, Matplotlib, Keras. Кстати, нашумевший ChatGPT тоже написан на Python.
6. Internet of Things: Умные колонки, лампочки, кофеварки и чайники, которыми можно управлять дистанционно, с помощью голоса и жестов — все это об IoT. Python вошел в топ-3 язык для программирования микроконтроллеров, шлюзов и пограничных узлов, из которых состоит архитектура Интернета вещей.
Технические навыки и личные качества Python-разработчика
Обязанности разработчика на Python варьируются в зависимости от проекта и компании, но обычно включают разработку, отладку, тестирование и поддержку кода. Python-разработчик также может отвечать за оптимизацию и масштабирование приложений, анализ данных и взаимодействие с другими участниками команды разработки.
Говоря о необходимых знаниях и навыках разработчиков, в IT-сфере используются понятия hard и soft skills. Хард скиллы относятся к конкретным, измеримым навыкам, которые можно изучить и легко определить. Они связаны с техническими аспектами и включают в себя знания, умения и опыт, которые нужны для выполнения конкретных задач.
Вот какие hard skills на позицию Junior Python Developer ищут работодатели сегодня (на основе анализа десятка вакансий, опубликованных на rabota.by и hh.ru):
- Уверенное владение Python и его основными фреймворками для веб-разработки (Django/Flask/FastAPI).
- Понимание принципов ООП: DRY, KISS, SOLID.
- Знания SQL и умение работать c базами данных.
- Умение использовать Docker/Docker Compose.
- Навыки работы с No-SQL хранилищами (MongoDB, DynamoDB, Redis).
- Опыт работы с Git.
- Уверенный пользователь Linux.
- Владение английским языком на уровне B1 и выше.
- Понимание основных принципов работы с REST.
- Опыт работы с API и интеграция в приложения.
Софт скиллы относятся к личным качествам, эмоциональной гибкости и способности взаимодействовать с другими людьми. Их не так легко измерить и определить, но они играют важную роль в успехе в IT-индустрии. Список софт скиллов, которые IT-компании ищут в Junior Python-разработчиках:
- Мотивированность и энергичность.
- Самостоятельность и ответственность.
- Умение работать в команде.
- Хорошие коммуникативные и организационные навыки.
- Готовность учиться и сотрудничать с более опытными коллегами.
- Желание расти и развиваться.
Средняя зарплата Python-разработчика в Беларуси
По данным портала salaries.devby.io медианная зарплата специалистов со знанием Python составляет $1650. Но «зарплата разработчика» — понятие широкое, так как все зависит от:
- опыта: джун (Junior Sоftware Developer) будет зарабатывать в десятки раз меньше, чем сениор (Senior Software Developer);
- локации: в разных странах будут разные зарплаты и налоги;
- работодателя: разработчики в стартапах, средних/крупных продуктовых или аутсорсинговых IT-компаниях, финансовых компаниях и т.п. получают разные доходы и бонусы.
Самый высокий заработок ждет питонистов в Machine Learning — $3 900 (levels.fyi).
Как стать Python Developer?
Чтобы научиться программировать на Python, тебе не нужно техническое образование: питон очень дружелюбен к новичкам. Но, чтобы стать хорошим Software Developer, понадобятся время, усердие и искреннее желание стать частью комьюнити питонистов.
Делимся небольшим чек-листом для старта в профессии разработчика на Python:
0. (для тех, кто входит в IT-сферу с нуля): Начни с основ Computer Science. Это та база, которая поможет понять, как «живут» компьютеры, как работают алгоритмы и чем похожи все языки программирования.
1. Изучи основы программирования на Python и освой его основные библиотеки и фреймворки — самостоятельно или на курсе.
2. Расширяй свои знания, читая дополнительную литературу. В этих Telegram-каналах ты найдешь базу книг по Python: @pythonbooks и @python_textbooks.
3. Получи практический опыт, работая над итоговым проектом во время обучения на курсе, участвуя в проектах с открытым исходным кодом или в стартапах.
4. Присоединяйся к coding-сообществам, включайся в нетворкинг и знакомься с другими разработчиками.
5. Создай портфолио на GitHub.
6. Подготовься к собеседованиям: изучи часто задаваемые вопросы на собеседованиях по Python и практикуйся в решении задач по кодингу. Не отказывайся от тестовых заданий и проси обратную связь у рекрутеров.
Удачи, будущий разработчик на Python!
Полная, частичная перепечатка или любое иное использование материалов с сайта IT-Academy разрешается только с указанием активной гиперссылки, ведущей на первоисточник (точный адрес страницы на www.it-academy.by).
Нужна помощь по курсам?
Кто такой разработчик Python и чем он занимается

Рассказываем, кто такой разработчик Python, почему он так востребован, какие задачи решает каждый день и без каких hard skills ему не обойтись.

Освойте профессию
«Python-разработчик»
Почему Python такой популярный

Python — универсальный язык программирования высокого уровня, который используется IT-специалистами в разных областях. В 2022 году, например, Python чаще всего использовался в анализе данных (43% респондентов), веб-разработке (43%) и машинном обучении (39%). На четвертом месте было системное администрирование (31%), а затем разработка веб-парсеров (30%) и тестирование ПО (27%).
Python-разработчик
Освойте Python, самый популярный язык программирования
3 075 ₽/мес 6 150 ₽/мес

Рост популярности Python начался в 2010-х годах и продолжается до сих пор: Питон — лидер индекса TIOBE с 2022 года. Также он занимает первое место в рейтинге языков программирования GitHub и считается самым востребованным среди российских IT-специалистов. У такой популярности есть несколько причин: Низкий порог входа. У Python простой и понятный синтаксис, который легко читать и воспринимать человеку, потому что он похож на обычный английский язык. Поэтому новички часто начинают изучать программирование именно с Python, а бэкендеры выбирают его в качестве основного языка. Интерпретируемость. Код, написанный на Python, не компилируется в машинный, а сразу выполняется с помощью программы-интерпретатора. Кроссплатформенность. Python-разработчик может запустить свою программу на любой платформе, где установлен интерпретатор, — например, на Windows, Linux или macOS. Инструменты. Для Python доступно огромное количество фреймворков и библиотек, которые содержат готовые шаблоны кода и помогают веб-разработчикам, дата-аналитикам или ML-инженерам решать задачи любой сложности. Единый стиль. PEP8 — документ от создателя Python Гвидо ван Россума, который описывает стандарты внешнего вида и структуры кода: максимальную длину строки, использование пустых строк, пробелы, табуляции и др. PEP8 формирует единый стиль разработки на Python, что помогает программистам легко читать чужой код и упрощает работу в команде. Развитое сообщество. Python собрал вокруг себя активное комьюнити, где можно найти полезные материалы, задать вопрос и просто пообщаться с другими питонистами. Вот несколько интересных ссылок: — крупнейший англоязычный телеграм-чат Python-сообщества из 120 000+ участников, которые ежедневно общаются и помогают друг другу; — еще один активный и полностью русскоязычный чат по разработке на Python в телеграме; — база вопросов с меткой «Python» на сайте StackOverflow, где также можно задавать свои вопросы; — российский форум Python-сообщества для поддержки и взаимопомощи.
Откуда берутся мемы

Несмотря на рост популярности Питона, его полюбили далеко не все разработчики. Оказывается, многие из них считают Питон языком для новичков, которому нечего делать в «серьезном» программировании. Причина неприязни проста — слишком легкое и быстрое обучение: пока одни программисты мучаются с длинным синтаксисом, питонисты могут освоить язык всего за несколько недель. Давайте разбираться наглядно. Для этого напишем простую программу «Hello, World!» на трех конкурирующих языках — Python, Java и C++, — а затем сравним их синтаксис.
class App < public static void main(String[] args) < System.out.println("Hello, World!"); >>
main()
print('Hello, World!')
Код на Python действительно получился самым коротким и простым. Впрочем, низкий порог вхождения и понятный синтаксис — скорее преимущество, чем недостаток. А хейтеры, которые утверждают, что Python не подходит для разработки сложных проектов, сильно ошибаются: именно на Питоне написаны крупнейшие веб-ресурсы Reddit, Pinterest, YouTube и Spotify, поисковые системы Google и стриминговый сервис Netflix.

Артур Ампилогов,
Technical Lead в Dev Aces
Язык Python недолюбливают программисты других языков. Основная причина — в динамическом исполнении кода и из-за этого слабой проверки ошибок на этапе компиляции проекта. Такие языки, как Java, C#, Rust, C/C++, а также в большей части Golang и TypeScript, имеют огромное количество автоматических проверок. Например, функция, принимающая строку, выдаст ошибку при передаче массива или числа в качестве аргумента во время сборки программы. В то же время Python будет готов принять почти любой тип. Если вы случайно передали число, то ошибку увидите только во время запуска программы. Бывает, что проблемы с кодом обнаруживаются на самом позднем и неприятном этапе — у клиентов. Еще один камень, который бросают в сторону Python, — скорость работы фреймворков. Отчасти это правда: для финансовых операций на биржах, как правило, используют Java, .NET и C++. Тем не менее лучше не кидать камни, а использовать языки и утилиты под задачи, для которых они хорошо подходят. Например, библиотеки Python для работы со статистическими данными, такие как NumPy, написаны на C и C++, а Python просто является оберткой над вызовами. Скорость обработки будет почти одинакова как для Python, так и для C++ в этом случае. Также есть альтернатива для ускорения Python-проектов с добавлением типов в код и статической компиляции под названием Cython — от смешения C и Python. Хотя у Python есть свои недостатки, он остается одним из самых красивых и простых языков программирования. Python обладает лаконичным синтаксисом и легко читается. Примеры на «псевдокоде» часто являются действующим кодом и на Python. Это делает его популярным выбором для обучения студентов и начинающих программистов.

Станьте разработчиком на Python и решайте самые разные задачи: от написания кода до автоматизации процессов
Разработчик на Python: что делает и где работает

Python Developer — это программист, который использует Python в качестве своего основного языка, пишет на нем код, разрабатывает веб-сайты, приложения, десктоп-программы и даже небольшие игры. Рабочий день программиста на Python состоит из написания кода, проведения проверочных юнит-тестирований и исправления ошибок. Также разработчик может оптимизировать код, вместе с командой участвовать в обсуждении архитектуры продукта, писать SQL-запросы к базам данных и выполнять другие обязанности, характерные для сферы его деятельности. Специалисты по работе с Python в нескольких областях: Веб-разработка. Python обычно используется бэкенд-разработчиками для создания серверной части веб-ресурсов, так как не подходит для разработки элементов фронтенда. Также на Python иногда разрабатывают бэкенд для десктопных и некоторых мобильных приложений. Популярные фреймворки — Django и Flask. Аналитика данных и Data Science. C помощью Python аналитики и дата-сайентисты анализируют, очищают, обрабатывают и визуализируют большие массивы данных. Раньше для этих целей использовался язык R, но потом его вытеснил Python. Популярные библиотеки — Pandas, NumPy, SciPy, Matplotlib и др. Машинное обучение. С помощью библиотек для Python ML-специалисты создают и тренируют модели ИИ, пишут системы по распознаванию лиц и речи, а также проводят глубокое машинное обучение. Популярные библиотеки — scikit-learn, Seaboarn, TensorFlow и Keras — надстройка над TensorFlow для Deep Learning. Тестирование ПО. Прежде чем выкатывать решение в прод, бэкенд-разработчики тестируют готовый код на предмет багов и недочетов. Библиотеки — unittest для юнит-тестирований и Pytest. Геймдев. Несмотря на то что на Python не пишут игровые движки из-за низкой скорости, вы все равно можете написать на Python простую 2D-игру с помощью библиотеки PyGame.

Артур Ампилогов,
Technical Lead в Dev Aces
Python можно назвать королем среди языков программирования в машинном обучении. Как только вы попробуете создать модель для искусственного интеллекта, скорее всего, придете к применению следующих известных пакетов: PyTorch, Tensorflow.py, Keras или scikit. Все они написаны на Python. Предупрежу, что такие современные облачные провайдеры, как Azure, AWS, Google, Yandex, предоставляют решения по дообучению существующих мощных моделей на данных пользователей, и Python в этом случае уже не применяется. Тем не менее для создания своих моделей с нуля и как минимум для понимания того, что происходит в области машинного обучения, без Python не обойтись. Так, для одного медицинского проекта мне приходилось создавать как свою модель ИИ, так и модели на основе Google Auto ML и сравнивать результаты. Для анализа данных Python и R являются наиболее популярными языками. В сообществе Python-разработчиков существуют известные пакеты, такие как SciPy, NumPy, Pandas и Matplotlib, которые позволяют проводить статистический анализ данных и их визуализацию. Надежные данные являются основой для моделей искусственного интеллекта, и Python-библиотеки обеспечивают эффективную подготовку и очистку данных. Мне приходилось готовить данные по пациентам, например фильтровать пустые ячейки таблиц, людей с неправдоподобным возрастом, с регистрацией со спам-email-адресов. Еще одна область применения языка — DevOps. Инженерам по развертыванию и настройкам инфраструктуры удобнее писать небольшие скрипты на Python, чем на языке bash под Linux или Powershell для Windows. Мне приходилось писать скрипты с вызовом REST-запросов о результатах развертывания виртуальных машин, а также скрипты для автоматических проверок кода разработчиков перед коммитами в систему версий GIT.
Читайте также Бесплатные онлайн ресурсы для изучения Python для новичков: курсы, тренажеры и блоги
Какие навыки нужны для работы на языке Python

Чтобы прокачать знания Python с нуля и до Junior, вы должны выучить синтаксис, а также переменные, структуры и типы данных, циклы, функции, классы, объекты и другие базовые принципы. Из hard skills также пригодится: — знание популярных фреймворков и библиотек; — умение пользоваться Git и GitHub; — знание SQL и умение работать с базами данных; — работа с платформой для контейнеризации приложений Docker; — написание юнит-тестов. Среди soft skills работодатели оценят коммуникативные навыки, умение работать в команде, логическое мышление и высокую ответственность.
Востребованность на рынке труда
Сейчас на hh.ru открыто свыше 9600 вакансий для программистов Python по России. По данным Хабр.Карьеры, средняя зарплата всех Python-разработчиков за 1-е полугодие 2023 года — 188 000 рублей в месяц. А теперь рассмотрим перспективы и зарплаты программистов на Python для каждого из трех грейдов по отдельности. Junior Python: 390+ вакансий на hh.ru, средняя зарплата Junior Python — 76 000 рублей в месяц. Middle Python: 760+ вакансий на hh.ru, средняя зарплата Middle Python — 186 000 рублей в месяц. Senior Python: 3200+ вакансий на hh.ru, средняя зарплата Senior Python — 272 000 рублей в месяц.
Как стать Python-разработчиком: пошаговая инструкция

Благодаря интуитивно понятному синтаксису выучить Python сможет даже новичок без технического образования и опыта в программировании. Рассказываем, как правильно начать погружение в Python. Шаг первый. В первую очередь подготовьте Python Junior Roadmap — дорожную карту с пошаговым планом освоения навыков. С помощью роадмап можно не только быстрее добиться поставленной цели, но и понять, куда вам двигаться дальше. Полезные ссылки: — роадмап для новичков, которые только начинают изучать основы и синтаксис языка Python; — подробный роадмап для начинающих Python-разработчиков, актуальный на 2023 год. Шаг второй. Приступайте к чтению профильной литературы. В интернете вы найдете множество учебников как для начинающих, так и для продвинутых питонистов. Если у вас совсем нет опыта работы с Python, начните с учебников М. Доусона «Программируем на Python» и М. Лутца «Изучаем Python». Тем, кто уже знаком с разработкой на среднем уровне, подойдет книга Д. Бейдера «Чистый Python». Если вы решили развиваться в Data Science и аналитике данных, то учебник У. Маккини «Python и анализ данных» — ваш must read. Для изучения Python в сфере машинного обучения рекомендуем книгу А. Мюллера «Введение в машинное обучение с помощью Python». Полезные ссылки: — электронная версия книги «Программируем на Python»; — официальный сайт Python, где собрана целая библиотека обучающих книг для разработчиков разных уровней подготовки; — лучшее пособие для Python-разработчиков любого грейда — официальная документация, которая содержит инструкции и примеры кода. Шаг третий. Когда вы освоите теорию, начинайте решать задачи и закреплять материал. Чем больше задач решите, тем лучше. Надоели упражнения? Пройдите квест и учитесь писать код прямо во время игры. Полезные ссылки: — Проект Эйлера — сайт, куда русскоязычное сообщество питонистов выкладывает задачи, переведенные с английского языка; — okpython — сборник неплохих упражнений для начинающих; — Exercism — бесплатная англоязычная платформа, где доступны 137 упражнений по Python; — квест PythonChallenge, где ваша задача — составить алгоритм для перехода на следующий уровень; — детская игра CodeMonkey, где игрок помогает обезьянке собрать бананы с помощью команд, написанных на Python. Шаг четвертый. Постепенно углубляйте свои знания: начните изучать основы объектно-ориентированного программирования, популярные библиотеки и фреймворки, научитесь работать с системой управления Git и GitHub. Полезные ссылки: — официальная документация по фреймворку Django с полезной информацией для начинающих; — небольшой видеокурс на YouTube, посвященный введению в работу с фреймворком Flask. Шаг пятый. Установите на своем компьютере среду разработки — например, стандартный редактор IDLE, Sublime Text или Visual Studio от Microsoft — и начинайте писать. Сначала вы напишете один фрагмент кода, затем — небольшую программу, а потом создадите собственный pet-проект, который будет хорошо выглядеть в вашем портфолио и резюме Junior Python-разработчика и поможет быстрее найти работу.
Сколько зарабатывают программисты на Python?
От 76 000 рублей до 272 000 рублей.
Кем может работать Python программист?
Разработчик на Python может найти себя в веб-разработке, Data Science, DevOps, создании систем автоматизации.
