Разработчики младшего звена могут рассчитывать на зарплату в 60 000 рублей в месяц, специалисты среднего звена зарабатывают от 80 000 рублей в месяц, а старшие разработчики — от 180 000 рублей.
Кем работать в IT в 2022: Python-разработчик
Рубрика «Кем работать в ИТ» состоит из интервью с представителями ИТ-профессий, в которых специалисты рассказывают о специфике своей работы: Преимущества, недостатки, подводные камни и зарплаты. Мы надеемся, что она поможет молодым людям и стажерам узнать больше о своей будущей карьере, а профессионалам — увидеть свою сферу деятельности через чужой опыт и, возможно, открыть что-то новое для себя.
Сегодня Игорь Анохин, старший Python-разработчик в компании Cloud, расскажет нам о своем опыте работыКРОК.
«Приятно, когда разработчик понимает не только свою технологию, но и то, как все работает параллельно.»(c) Игорь А.
Игорь — аспирант ИТМО, специализирующийся на системах и прикладном программном обеспечении. В начале своей карьеры он четыре года проработал в стартапе, разрабатывающем Raspberry Pi, а затем ему захотелось чего-то нового — и это стало CROK.
СогласноКалькулятор заработной платыHabr Careers, средняя зарплата разработчика Python в первой половине 2022 года составила70 курсов для тех, кто хочет изучить Python. Программы разные: как для опытных специалистов, так и для тех, кто хочет освоить профессию с нуля.
Компания
Как вы попали в компанию, в которой работаете сейчас? Где нашли вакансию, на какую должность и как прошло собеседование?
Когда я начинал, я понял, что устал от разработки настольных компьютеров и систем, мне хотелось чего-то нового. В то время все начинали работать удаленно, как будто не имело значения, где именно они работают. Я составила резюме и согласилась занять место в листе ожидания. Со мной связались несколько компаний, в том числе КРОК. Я знал их по участию в хакатонах. Я помню, как видел их на VK Hackathon, где был стенд компании.
Одной из главных причин, по которой я пришел сюда, было то, что процесс приема на работу был очень быстрым по сравнению с другими компаниями, где он может занять до трех недель. Когда на собеседовании мне сказали, что эти ребята довольно быстро реагируют и принимают решения, я даже не думал, что они настолько быстры по сравнению с другими.
Они также не переплюнули алгоритмы, которые есть у многих крупных компаний.
Я подал заявление на работу в качестве разработчика Python среднего уровня. Интервьюер засыпал меня вопросами: он хотел выяснить, как много я знаю. Он спросил об асинхронном программировании, о том, как работает Linux, как он взаимодействует с процессами и как происходит завершение процессов.
Один пример в тестовом задании был взят из книги по Python, которую я открыл, скривился и снова закрыл. Когда я увидел код задания, я сказал.
Как проходил процесс адаптации? С какими трудностями вы столкнулись?
Это было необычно: в начинающей компании коллеги брали на себя весь цикл и занимались самыми разными делами: В один день вы пишете серверное приложение, а завтра вам нужно разрабатывать настольный компьютер. Или вам передали мобильную связь на аутсорсинг, и теперь вы занимаетесь этим. Только потому, что «кто-то» должен был это сделать. В КРОК у нас большая команда, и задачи четко распределены между командами. Так намного проще.
По моему опыту, важно быть вовлеченным во весь цикл разработки продукта. Это опыт предыдущих мест работы, хакатонов и проектной деятельности. У меня также был опыт самостоятельной разработки функции, начиная с момента, когда компания размещает проект, и заканчивая моментом, когда функция становится пригодной для использования.
Может быть, поэтому после рекомендации мне сразу же поручили довольно большой проект. Я перепроектировал одну из подсистем, которая теперь работает в 3-4 раза лучше и быстрее — это заняло около четырех месяцев. Такие большие задачи с долгосрочным планированием были для меня в новинку. Большое спасибо ребятам из команды за помощь!
Какие знания у вас уже были, когда вы пришли в свою компанию?
Что касается программного обеспечения, я думаю, что я действую на опережение. Дело не столько в том, чтобы «сделать больше, чем от вас ожидают», сколько в том, чтобы решить, сколько вам нужно сделать для чего-то. Не для того, чтобы делать бесполезную работу или быть более инициативным в решении проблемы.
Кажется, что сейчас требуется гораздо больше, чем 5 лет назад. Тогда, видимо, было достаточно знать сам язык программирования и все. Теперь этого уже недостаточно.
Как вы продвигались в компании? Какие навыки в этом помогли?
Знание языка программирования по-прежнему является обязательным требованием. Я бы рекомендовал Python, поскольку он очень удобен для начинающих. Жизнь, конечно, не ограничивается одним языком программирования. Но если что-то пойдет не так, вы всегда сможете переключиться на другой.
Опыт
Что сейчас нужно знать специалисту, чтобы попасть в вашу сферу?
Если вы пришли в эту область через стажировку или курсы, вы должны уметь решать простые алгоритмические задачи в дополнение к языку программирования. Если вы претендуете на младшую должность, вы должны быть знакомы с системой контроля версий, такой как Git, иметь представление о базах данных и понимать хотя бы один веб-фреймворк.
Сложность — если вы пропускаете знание самого Python (без него, конечно, не обойтись), важно иметь базовое понимание фреймворков, позволяющих писать веб-приложения. Неважно, будет ли это старый Django или Flask, или модный FastAPI или aiohttp.
Чтобы понять, как работают базы данных, полезно знать Linux, потому что наш код часто взаимодействует с операционной системой. Кроме того, разработчик проводит много времени в кабине виртуальной машины, работая с консолью Linux: Развертывание в облаке, тестирование системы, обнаружение,
Какие бы вы выделили важные Soft и Hard Skills для специалиста вашего направления?
Программист Python также работает с сетевыми протоколами HTTP и HTTPS и настраивает вывод модуля машинного обучения. Это делает его универсальным ИТ-специалистом: программисты на Python нужны в самых разных областях — от разработки сайтов до машинного обучения.
Python — это язык для back-end разработки, который используется для программирования на стороне сервера.
Давайте рассмотрим подробнее, чем занимается разработчик Python. Для этого необходимо изучить его или ее должностную инструкцию. Давайте рассмотрим, что должен уметь делать хороший ИТ-специалист.
Поговорим об ошибках? Что вы сделали не так за это время, что не нужно делать новичкам?
Теперь поговорим о том, какие навыки необходимы разработчику Python, чтобы стать востребованным и высокооплачиваемым специалистом. Мы будем говорить о hard skills (профессиональные навыки) и soft skills (личные качества).
Тяжелые навыки для разработчика Python:
- Не пытаться сразу сделать всё идеально, понять итерационный подход к продукту. То есть постепенно, по итерациям, осознавать, как это работает, как будет работать, чтобы не горевать в конце из-за большого количества бесполезной работы.
- Избегать поспешности. Есть такой «эффект второй работы». Это когда первую работу ты выполняешь качественно, потому что делаешь ее впервые, а вторую можешь делать небрежно. Из-за этого случаются ошибки. Часто замечаю это и за новичками, и за опытными спецами. Не надо так.
- Не бояться обратиться за помощью, попросить коллегу, чтобы он тебе объяснил. Спросить будет гораздо профитнее для тебя и компании. Если ты старший разработчик, понять, что быстрее: загуглить и разобраться самому или же попросить помощи.
- Не попадать в ловушку того, что ты всё знаешь. Новички после курсов программирования, где они бегло познакомились с технологией, достаточно ярко могут заявлять, что они ее знают. Это сильно препятствует развитию.
Кто такой Python-разработчик: описание профессии
Мягкие навыки для программиста Python:
Что должен уметь Python-разработчик: обязанности
- Написание запросов к базам данных на Python с помощью Django-ORM, Sqlalchemy.
- Создание простых и сложных модульных программ.
- Работа с базами данных.
- Работа с популярными фреймворками: Django, Flask.
- Использование промышленных средств разработки: PyCharm, Git, Postman.
- Разработка веб-сервисов.
- Оптимизация работы сайтов и приложений.
- Продумывание внутренних алгоритмов и процессов.
- Программирование бэкенда на Python и Django.
- Тестирование проекта на всех этапах разработки.
- Написание автотестов.
Какие навыки нужны Python-разработчику: soft skills и hard skills
- Знание системы управления версиями Git и сервиса GitHub.
- Написание читаемого кода на Python.
- Работа с алгоритмами и SQL.
- Использование фреймворков Flask и Django.
- Использование ПО для автоматизации развертывания приложений Docker.
- Чтение и понимание технической документации на английском языке.
- Проведение юнит-тестирования.
- Усидчивость.
- Стрессоустойчивость.
- Умение работать в команде.