Об эксперте: Дмитрий Петров, ведущий инженер «Верайзон Рус», преподаватель онлайн-бакалавриата Data Science & Machine Learning Skillbox и РАНХиГС.
Вместе с подъемом машинного обучения и нейросетей, который мир наблюдает с начала 2010-х годов, стремительно растет и популярность Python. Язык стал профессиональным стандартом индустрии. Разберемся в этих и других сферах применения Python и в необходимых для старта карьеры разработчика навыках.
История языка программирования Python
Исходный код Python был опубликован в 1991 году. Его автор — голландский программист Гвидо ван Россум, который занимался разработкой языка на досуге. Своим названием Python обязан любви создателя к британскому комедийному телешоу 1970-х «Летающий цирк Монти Пайтона». К слову, это снимает вопросы о корректном произношении: если в российской языковой среде нормами считаются и «Пайтон», и «Питон», то, уезжая за рубеж, лучше все-таки ориентироваться на англоязычный вариант.
За время существования Python претерпел несколько релизов, в которых устранялись недостатки предыдущих версий. Что важно, за процессом его доработок стоит не один человек, а целое комьюнити программистов-энтузиастов: в реальном времени они предлагают варианты улучшений и возможностей кода. Проект является опенсорсным, то есть его архитектура и описание доступны для каждого. Так, в его компилятор можно заглянуть на GitHub, вносить правки под свои задачи.
Начать работать с Python и присоединиться к комьюнити разработчиков довольно просто. Можно скачать среду разработки с официального сайта, либо воспользоваться более удобной сборкой Anaconda, где можно сразу начать реализовывать свои первые программы в интерактивной среде разработки.
Чем занимаются Python-разработчики
Python применяется в разных сферах. Степень использования языка и набор навыков разработчика зависят от конкретной профессии и области применения. Например, Python активно используется в исследовательской деятельности при работе с данными. Для этих целей не нужно быть полноценным Python-разработчиком, достаточно знать необходимые для конкретных задач инструменты для расчетов и их автоматизации: библиотеки SciPy, NumPy, Pandas, Matplotlib и другие. Это же относится и к специалистам других областей, например тестировщикам, операторам станков ЧПУ, маркетологам, социологам и многим другим. Всю работу с любого рода данными можно так или иначе упростить и автоматизировать с помощью Python.
Без базовых знаний Python сегодня не обойтись аналитикам данных. Для специалистов этой сферы не так важны знания сложных конструкций языка, сколько умение пользоваться его библиотеками (например, IPI, TensorFlow), максимально ясно и чисто писать код. А также дополнительные хард-навыки: знание линейной алгебры на уровне последнего класса математической школы или первого курса технического вуза, логики, теории вероятности и SQL — для написания запросов к базам данных.
Более продвинутого уровня владения Python потребуют нейросети, объемы данных здесь существенно больше. Именно нейросетевые технологии стоят за системой рекомендаций для каждого пользователя в Netflix, Spotify и «Яндекс.Музыке». Чтобы сохранять высокую скорость обработки больших данных, разработчику необходимо уметь писать чистый код и знать, как его оптимизировать. Также потребуются знания более продвинутой математики — раздел матриц, математического анализа, структур матриц — и такие инструменты, как технология увеличения производительности программных систем JIT, библиотеки TensorFlow, Keras и PyTorch, а также плюсом будет знание языков программирования C++ и Java.
Следующая сфера — бэкенд веб-приложений. На Python работает серверное обеспечение таких гигантов, как Google, Dropbox, Spotify, Netflix. Здесь в основном используются два фреймфорка, написанных на Python: Django, который позволяет писать сложные веб-приложения, а также микрофреймворк Flask. Дополнительные полезные для карьеры разработчика навыки включают базовое понимание работы фронтенда — языков JavaScript, CSS, HTML.
И последняя сфера, на которой хотелось бы остановиться, — это робототехника. Операционная система ROS, которая является популярной для робототехнических систем, использует Python как один из основных языков. Здесь он помогает соединить части машины в одно целое. Также Python можно использовать для платформы быстрой разработки электронных устройств Arduino. Разработчики имеют знания в схемотехнике, а тем, кто занимается автономным движением и управлением манипуляторами, потребуется серьезный математический бэкграунд.
Сколько зарабатывает Python-разработчик
Знание Python в чистом виде не является основным критерием определения дохода. Зарплата будет зависеть от направления деятельности и дополнительных навыков разработчика.
Анна Хохол, карьерный консультант Центра карьеры Skillbox в направлении «Программирование»:
«Основные критерии, от которых будет зависеть зарплатное предложение, — это:
- направление (аналитика, DS, веб-разработка, тестирование, робототехника),
- локация (регионы или Москва, Санкт-Петербург),
- уровень позиции (intern, junior, middle, senior),
- формат работы (удаленно или офис работодателя).
Предложения в офисе в Москве обычно выше, чем в регионе. В тестировании или веб-разработке предложений на удаленке обычно больше, чем в DS и робототехнике. Все это влияет на уровень предлагаемой оплаты. Говоря о стажерских позициях в крупных компаниях и на junior-позициях, в среднем по рынку можно рассчитывать на вилку ₽45–65 тыс. в зависимости от результатов технического интервью. А вот дальнейший рост сильно зависит от выбранного направления. Самое высокооплачиваемое направление — Data Science, но оно и самое сложное для входа. Заработные платы в нем могут достигать в среднем ₽200–300 тыс. у middle-специалистов и ₽400 тыс. у senior».
Какие скиллы нужно освоить для трудоустройства
Есть и стандартный пакет навыков, которые пригодятся любому Python-разработчику:
- базовое знание математики — делимость чисел, четные и нечетные числа и прочее;
- базовое знание логики — истина и ложь;
- знание алгоритмов сортировок и структур данных (стек, массив, список и так далее);
- умение работать с системой контроля версий Git — для командной разработки;
- базовые знания Docker — специального программного обеспечения для запуска своих программ в виртуальном окружении.
Где учиться на Python-разработчика
Освоить Python довольно просто. Можно скачать среду разработки и начать создавать свои первые программы по гайдам из открытого доступа. Если вам интересны более системные знания, можно присмотреться к программам дополнительного профессионального образования. Эксперты образовательных платформ формируют прицельные на трудоустройство треки, наполняя процесс обучения необходимой для этого теорией и практикой, проектами командной разработки для портфолио. Еще один вариант — высшее образование. Как правило, здесь вы не фокусируетесь на каком-то одном языке программирования, но обучаетесь общим принципам, математике, архитектуре систем, компиляторам, структурам данных, алгоритмам, эффективности. Студенты учатся программировать на разных языках. Например, в бакалавриате Skillbox и РАНХиГС Data Science & Machine Learning, на который уже идет набор групп на 2022 год, помимо Python студенты углубленно изучают C#.
Как искать работу Python-разработчику
Анна Хохол, карьерный консультант Центра карьеры Skillbox в направлении «Программирование»:
«Для начала необходимо понять, в какое направление и отрасль применения Python вы хотите двигаться — аналитика, веб-разработка, а может быть, тестирование? В зависимости от этого в вашем резюме будут отражены желаемая должность, ключевые навыки. Рекрутеру важно видеть вашу мотивацию двигаться в конкретном направлении. Второй момент — это подготовка портфолио, которое стоит рассматривать не только как то, что можно показать работодателю, но и как практический навык решения конкретных бизнес-задач в своем направлении. А далее задействовать максимальное количество каналов поиска вакансий.
Рекомендуем в первую очередь прямой поиск: составить список интересных работодателей, направлять резюме и сопроводительные письма напрямую их рекрутерам. Помимо работных сайтов обязательно подключать поиск на «Хабр Карьере» и в телеграм-каналах по конкретным профессиональным направлениям — в аналитике, веб-разработке, data science. По количеству: делать не менее 50 откликов в неделю и запрашивать обратную связь у рекрутеров, параллельно устраняя выявленные в процессе поиска пробелы. Сегодня в трудоустройстве активно участвуют и образовательные платформы. Например, у нас для этого существует Центр карьеры. HR-специалисты начинают общаться со студентами на 6–7-м месяце обучения, помогают с подготовкой резюме и организовывают три собеседования в партнерские компании».