Выбираю•IT помогает в выборе будущей профессии абитуриентам
и студентам, в развитии профессиональных навыков молодым специалистам,
в выборе дополнительных программ обучения и специальных курсов.

О портале Каталог профессий

Поиск по порталу

Программист Python

Язык программирования Python является одним из самых популярных в мире, поэтому профессия программиста востребована.

Представители компаний рассказывают, каких специалистов они хотят видеть в своей команде

1. Какими знаниями и навыками должен обладать программист Python?

2. Каков инструментарий программиста Python?

3. Каковы требования компании к уровню образования потенциальных сотрудников?

4. Какие требования предъявляются к опыту работы?

5. Есть ли особые требования, которые обусловлены спецификой деятельности компании?


Алексей Бондарь, менеджер проектов «Лаборатории Касперского»

1. Это во многом зависит от проекта. В нашем случае интересны отличные знания Python 2.7, опыт работы не менее двух лет разработки backend (не веб), желателен опыт разработки высоконагруженных систем.

2. От текстового редактора до полноценного IDE (например, PyCharm).

3. Желательно высшее техническое образование, но незаконченное тоже подойдет.

4. Опыт работы не менее двух лет по разработке backend (не веб).

5. Особые требования, которые обусловлены спецификой деятельности компании можно описать так:

  • желание и умение глубоко вкапываться в проблему и находить ее корневые причины;
  • широкий кругозор разработчика;
  • умение аргументированно отстаивать свое мнение;
  • адекватность и конструктивность;
  • инициативность;
  • коммуникабельность.


Денис Силаков, начальник отдела технологических разработок и сопровождения в «НТЦ ИТ РОСА»

1. Основные требования, которые обусловлены спецификой деятельности компании:

  • знание сильных и слабых сторон языка Python, а также отличий Python3 от Python2;
  • знание принципов ООП и умение им следовать;
  • знание SQL, основ оптимизации запросов, опыт работы с MySQL/MariaDB и проектирования небольших баз данных;
  • знакомство с Linux, по крайней мере на уровне продвинутого пользователя;
  • знакомство с принципами коллективной разработки – системами контроля версий, трекерами задач и так далее;
  • уверенный технический английский.

2. Необходимо умение пользоваться интерпретатором Python и отладчиком pdb. К использованию IDE мы требований не предъявляем – многим программистам хватает легковесных сред наподобие Geany, другие используют более «навороченные» продукты – например, PyCharm. Единственное, о чем следует помнить, – это то, что в «НТЦ ИТ РОСА» предпочтение отдается свободным инструментам разработки, и для покупки проприетарной IDE для программиста Python понадобятся очень веские основания.

3. Наличие высшего технического образования будет плюсом, однако оно не является ни необходимым, ни достаточным условием даже для приглашения кандидата на собеседование. Для нас важны практические навыки, которые диплом вряд ли может подтвердить.

4. На позицию программиста Python мы готовы брать людей, не имеющих опыта промышленной разработки, но способных продемонстрировать уверенное знание языка и инструментария разработки. Лучше всего, если в качестве подтверждения навыков будут выступать доведенные до рабочего состояния проекты – пусть даже и учебные.

5. «НТЦ ИТ РОСА» занимается прежде всего разработкой дистрибутивов Linux, а программисты Python в нашей компании создают различные инструменты и сервисы для управления этими дистрибутивами. Как следствие, им приходится глубоко погружаться не только в язык, но и в предметную область, на которую нацелен конкретный инструментарий – например, в управление пакетами либо в настройку тех или иных аппаратных устройств. Поэтому уверенное знание внутренней структуры Linux будет большим плюсом при приеме на работу.


Тимур Макарчук, ведущий разработчик Group-IB

1. Питон всегда был языком, для которого характерен довольно низкий порог вхождения, этот язык создан для того, чтобы можно было быстро и эффективно писать красивые программы, поэтому главное – обладать общими знаниями и навыками программирования. Конечно, для написания более крупных и сложных систем нужно так же отслеживать использование программой ресурсов компьютера и не забывать об эффективности. Для этого будет не лишним ознакомиться с рядом библиотек, которые берут на себя некоторые сложности.

2. Питон является интерпретируемым языком. Конечно, его можно скомпилировать в байт-код или даже в исполняемый, но делается это нечасто, поэтому все, что нужно для написания и запуска небольших скриптов, – это интерпретатор и любимый текстовый редактор (я предпочитаю Sublime Text 2, раньше пользовался IDE Spyder2).

3. Как и в большинстве компаний, с представителями которых мне приходилось общаться, на позиции программиста далеко не всегда берут людей с профильным образованием. Конечно, в большинстве случаев это люди с техническим образованием и складом ума, но упор делается скорее на практические навыки, а не на образование, т.к. вузы обычно делают упор на теоретические знания.

4. Требования к опыту работы по большей части зависят от желаемой должности. Когда я сам устраивался в Group-IB, единственным моим опытом работы было около полугода веб-разработки, а единственный опыт написания чего-то на Python сводился к написанию небольших скриптов для собственного использования дома.

5. Не сказал бы. В Group-IB на собеседовании меня спросили, имею ли я представление об основных типах уязвимостей, хотя не думаю, что ответ на этот вопрос стал определяющим, т.к. моя деятельность не имеет непосредственного отношения к информационной безо-пасности.


Константин Назаров, руководитель команды разработки в Parallels, DevOps-практик

1. Начнем со знания языка. Во-первых, нужно определиться, что значит «знание языка». Синтаксис Python очень прост и сам по себе не представляет проблем. Чтобы писать полезный код и зарабатывать себе на хлеб, не обязательно даже хорошо разбираться в конкретных библиотеках. Но что действительно важно, так это тот факт, что сейчас все развитие ИТ-отрасли движется в сторону мобильных и веб-сервисов.

Поэтому в копилку любому питонисту отлично ляжет общее знание Linux, понимание того, как работает HTTP и как пишутся современные веб-проекты. Ну, еще, пожалуй, основы обработки текста, типа регулярных выражений и парсеров. Особенно это будет полезно студентам, которые еще не определились, куда им двигаться.

2. UNIX, хороший текстовый редактор и голова на плечах. Все остальное – вторично. Еще, пожалуй, тактический print(). Это, кстати, целая наука, и делать это правильно умеют далеко не все.

3. 4. Мы в первую очередь ищем людей, которые умеют и хотят решать прикладные задачи. Нам не важно, программировал ли человек на Python или нет. Вместо этого ищем опыт программирования на любом высокоуровневом или скриптовом языке. Почему? Потому что мы искренне верим, что программирование на Python – это не то, что дифференцирует «нашего» человека. Конечно, если вы на собеседование принесете лэптоп и сможете написать несколько строк рабочего «питона», это добавит вам несколько бонусных пунктов.

Обычно же на собеседовании мы проверяем общую эрудицию, спрашивая человека о самых разных вещах из его доменной области. Например, для интеграционных инженеров и админов это будет:

  • разностороннее знание UNIX;
  • понимание цикла разработки ПО;
  • умение писать комментарии;
  • понимание, как тестировать код;
  • количество и качество лично набитых шишек;
  • творческий подход к проблемам.

Ну и очень внимательно проходимся по резюме и портфолио. Если у человека есть активный аккаунт на GitHub, мы можем пропустить тестовые задачки и просто поговорить об одном из проектов.

5. Прежде всего Python – это Perl нашего времени, получивший популярность во всех технологических кругах, а не только у системных администраторов. Он популярен, потому что освоить его может даже новичок, а выстрелить себе в ногу из него нужно еще суметь. Я думаю, что Python де-факто выиграл войну популярности и скорее всего будет удерживать пальму первенства, пока на рынок не выйдет какой-нибудь язык следующего поколения, вобравший все лучшее из Go, Python и какой-нибудь Julia. Многие считают, что Go будет вытеснять Python, но я не думаю, что это случится.

Поэтому в Parallels практически все, что мы можем написать на Python, мы пишем на нем. Мы используем его и как универсальный «клей» для систем, и как средство для написания внутренних сервисов. Исключения, как правило, составляют компоненты, требующие высокой производительности, которые мы пишем на C++ или Java. Ну, или сторонние системы, написанные на других языках. Например, Chef, который мы используем для автоматического разворачивания софта на серверах, написан на Ruby, и приходится использовать его.

Одно из преимуществ Python в этом смысле – мы можем не только написать код для себя, но и быть полезным очень широкому кругу людей, выпуская код в открытый доступ. Например, вот этот: https://github.com/Parallels/artifactory.


Александр Горный, директор по информационным технологиям Mail.Ru Group

Python – один из самых популярных в Mail.Ru Group языков программирования, на нем разрабатываются совершенно разные проекты – начиная от облака Mail.Ru и заканчивая внутренними интранет-системами.

1. Как и любой другой программист, программист на Python – это переводчик с языка людей на язык компьютера. А значит, главное, что он должен уметь, – это слышать, что ему говорят, и понимать, как устроены и как работают основные компьютерные системы. Недостаточно уметь пользоваться сетью или базами данных, надо хотя бы на базовом уровне понимать, как они устроены внутри.

2. Что касается конкретных инструментов, то в первую очередь это, разумеется, сам Python и популярные фреймворки для него, такие как Django. Современная разработка немыслима без фронтенд-части. Хороший разработчик обязательно знает HTML и основы CSS, умеет программировать на JavaScript, знаком с jQuery и Bootstrap. Последний пункт джентльменского набора – СУБД, чаще всего MySQL или PostgreSQL.

3. У нас нет формальных требований к диплому. Очевидно, что в среднем выпускник ВМК или мехмата МГУ сильнее, чем бывший студент заборостроительного техникума в далеком райцентре, но это лишь статистика, а не критерий.

Cудьба и карьера каждого человека индивидуальны, и сильный разработчик может прийти из непрофильного вуза или вообще быть без законченного высшего образования.

С другой стороны, даже лучшие университеты страны не дают хорошего практического образования, и, к сожалению, их выпускники не являются готовыми специалистами. Наши образовательные проекты – Технопарк на базе МГТУ имени Баумана и Техносфера на базе ВМК МГУ – как раз и призваны дать студентам конкретные навыки из мира современных веб-технологий, в том числе и знание Python. Для нас самих факт выпуска студента из Технопарка или Техносферы является определенной «маркой» и показателем уровня квалификации, думаем, что скоро так же к ним будут относиться и остальные компании на рынке.

4. Формальных требований нет, но можно говорить, что в среднем разработчик становится полностью самостоятельным после двух-трех лет работы «вторым номером».

5. Все дополнительные требования вытекают из того, что проектами Mail.Ru Group пользуются миллионы людей. Во-первых, желателен практический опыт работы с высокими нагрузками или хотя бы теоретическое понимание, как с ними жить. Во-вторых, нужно уметь писать тесты на свой код или быть готовым научиться их писать. Ну и, в-третьих, надо любить свою работу и своих пользователей – если творить с душой, получается гораздо лучше.


Подготовил Игорь Штомпель

Яндекс.Метрика  
Проект Издательского дома "Положевец и Партнеры"

По вопросам партнерства обращайтесь по электронной почте chooseit@samag.ru

Телефон: +7 499 277-12-45