Python — самый популярный язык в мире, согласно рейтингу TIOBE. Еще год назад он занимал третье место, сегодня же уверенно обходит C и Java.
В чем секрет успеха Python, где его сегодня используют, и сколько компании готовы платить специалистам на старте? Поговорили с Lead направления Python в МТС и программным директором направления Python в компании Skillbox Алексеем Некрасовым.
— Чем так хорош Python, в чем его плюсы?
— Python хорошо спроектирован. Программы, которые написаны на нем, очень легко читать: он позволяет сосредоточиться на решении задачи, а не на самом языке.
К главным плюсам Python я бы отнес:
- Простоту в изучении и работе.
- Возможность запустить программу на Python практически на любой платформе.
- Мощность: язык позволяет создавать очень сложные конструкции и решать практически любые задачи.
- Open source: можно пользоваться/изменять/распространять так, как захочется.
- Вокруг языка собрано большое мировое сообщество, которое решило достаточно много задач, и многие решения находятся сейчас в свободном доступе.
- Написание программы занимает гораздо меньше времени, чем на других языках.
— А минусы есть?
— Да, у Python есть и свои минусы. Он не такой быстрый, как, например, C++ или C. Но это не будет помехой в работе в 95% случаев. Остальные 5%, то есть медленную часть кода, можно переписать на C и подключить к программе на Python в качестве зависимости.
Основная проблема производительности — GIL (Global Interpriter Lock). GIL не даст одновременно выполняться нескольким вычислениям в рамках одного запущенного процесса.
— Почему вы сами когда-то выбрали именно Python?
— В программирование я пришел около 10 лет назад. Начинал как Frontend-разработчик в отделе аналитики, строил графики для отчетов, параллельно участвовал в программе Google Summer of Code. Backend`ом еще тогда не занимался. В какой-то момент я остался в компании один из разработчиков, и мне нужно было модифицировать Backend. Этот момент стал поворотным в моей жизни. Python произвел на меня настолько сильное впечатление, что я больше не захотел возвращаться к Frontend-разработке. С тех пор я работал и развивался как Backend-разработчик на python. А это уже около семи лет.
— Где используют Python?
— Я выделяю несколько основных сфер:
Веб-разработка;
Machine Learning — методики анализа данных, которые позволяют обучаться аналитической системе в процессе решения задач: выявления закономерностей и принятия решения с минимальным участием человека. Простой пример: у нас есть фотографии с котами, и нужно научить алгоритм распознавать, где какой кот;
BigData — работа с огромными объемами данных, которые представлены в сыром виде и требуют обработки;
Администрирование и автоматизация администрирования;
Также Python применяют в разработке игр (Civilization IV), десктопных программ (Dropbox, BitTorrent) и в научной среде.
— Python сложно учить?
— На мой взгляд, это самый простой язык программирования в плане изучения. Изучить Python проще, если переходите с другого языка. У новичков же могут возникнуть трудности, но не с самим Python, а с конструкциями и абстракциями, которые используются в программировании: функции, циклы, ООП и т.д.
— Какие качества помогут студенту освоить Python легко?
— Если хотите поменять сферу и перейти в IT, то Python — очень хороший вариант, так как его входной порог один из самых низких. В плане же обучения все зависит от:
- вашего усердия и самоорганизации — эти навыки очень быстро помогают изучить Python и влиться в IT;
- сколько времени вы готовы уделять обучению. Если сильно растягивать прохождение курса, то можно забыть, что было в самом начале;
- насколько вы настойчивы в решении сложных задач;
- насколько у вас сильное желание сменить сферу деятельности.
У меня были студенты от 15 до 56 лет из совершенно разных сфер: гуманитарии, врачи, которые успешно защитили дипломы по Python. А это значит, что все возможно. Главное, ваше желание и упорство.
— Сколько нужно времени, чтобы изучить Python? Или это непрерывный процесс?
— Это непрерывный процесс, однако базовые навыки можно получить достаточно быстро, примерно за 3-6 месяцев. В Skillbox студенты проходят курс в своем темпе. И иногда на это у них может уходить до 9-12 месяцев. Но есть те, кто проходит все модули за месяц-полтора, а еще спустя столько же защищает дипломный проект.
Чтобы стать классным специалистом, нужно изучать глубже как сам Python, так и его экосистему. Знать только Python недостаточно, нужно также изучить ряд инструментов в зависимости от выбранного направления.
— Какие, в среднем, требования на рынке труда к специалистам со знанием Python?
Знать Python, уметь работать с базами данных (без них сейчас никуда), а дальше уже в зависимости от направления:
— если это веб-разработка, важно знать фреймворки: flask, django, fastapi, sqlalchemy, docker и прочее;
— если это Data Scientist или аналитика — фреймворки Tensorflow, Numpy, Pandas, Scikit-Learn;
— если DevOps — docker, linux.
— если авто-тестирование — фреймворк selenium.
— Какая зарплата у специалистов со знанием Python: на старте и далее?
— Так как я занимаюсь веб-разработкой, расскажу про диапазоны зарплат в этой сфере в России:
Стажер — 0-6 месяцев, 40-60 тыс. в месяц.
June — полгода-год, 100-130 тыс. в месяц.
Middle — 1-3 года, 150-250 тыс. в месяц.
Senior — 3-6 лет, 250-350 тыс. в месяц.
Tech Lead — от 5 лет, 350-450 тыс. в месяц.
В Узбекистане стажер со знанием Python сможет получать до 500 долларов в месяц. Продвигаясь по карьерной лестнице, можно рассчитывать на уровень дохода до 2500 долларов в месяц.
Pet-проект и 3-4 часа на обучение каждый день
— На что обращать внимание, выбирая курс по Python?
— Каждый, кто рассматривает возможность изучения программирования, скорее всего, первым делом попадает на краткосрочные бесплатные курсы. Вариант хороший для пробы. Но я лично советую браться за глубокое изучение Python с проверкой домашних заданий куратором, чего в бесплатных версиях курсов нет. Без наставника, без заданий теория просто не будет закрепляться.
Также я за то, чтобы в конце обучения у вас был итоговый проект, в котором вы сможете показать все свои знания и навыки. Его потом можно включить в резюме, что для новичка в IT — большой плюс.
Еще я всегда советую выбирать не просто курс по Python, а именно профессию. В ней дополнительно есть курсы по тем инструментам, которые вам понадобятся по выбранным направлениям: веб, Data Science, DevOps.
— Где брать опыт и реальные проекты новичку?
— Есть несколько вариантов:
Найти open-source проект и посмотреть, какие задачи стоят у сообщества, помочь их решить и предложить свое решение. Для опыта это хороший вариант, так как вам проведут код-ревью более опытные разработчики, плюс ко всему этот кейс впоследствии можно включить в резюме.
Защитить дипломный проект на курсе. Этот опыт будет плюсом в вашем резюме.
Создать свой pet-проект (проект, который вы делаете для себя в свободное время). Почему это важно? Ваш будущий работодатель с большей долей вероятности оценит именно эту работу, нежели что-то, сделанное в рамках пройденных курсов. Просто потому что для этого проекта вы использовали свое свободное время, желание, интерес. Это очень ценно.
Участвовать в соревнованиях и хакатонах.
— На рынок каждый день выходят новые IT-специалисты. Как пробиваться, как заявлять о себе новичкам?
— Нужно постоянно развиваться и не останавливаться на достигнутом. Те джуны, которые, устроившись на работу, начнут работать с 9 до 18, будут двигаться медленнее. Почему? Нужно постоянно развиваться, пробовать новые инструменты, следить за рынком и прокачивать себя. Чтобы конкурировать с другими джунами, необходимо заложить время на обучение по 3-4 часа в день.