Научная
деятельность
Университет ИТМО

Разработчик «Яндекс» Николай Фильченко: Не стоит идти в программирование только потому, что это модно

Быть программистом в крупной компании совсем не значит, что вы будете писать код в расслабленном режиме, используя технологии, которые больше нравятся. Вам придется искать новые решения, выполнять задачи в жесткие сроки, уметь разбираться в чужом коде, а также заранее просчитывать результаты разработки. О том, чего ожидать IT-специалистам, только начинающим работать в крупных компаниях, на что уже сейчас стоит обратить внимание студентам и какие навыки позволят им не оказаться на обочине рынка, рассказывает старший разработчик сервиса «Яндекс.Такси» Николай Фильченко. 

Чтобы заниматься программированием, требуется много времени: нужно постоянно следить за новыми технологиями

Если человеку действительно нравится программирование, то самое главное не то, куда он пойдет учиться языку программирования и алгоритмам, а то, готов ли он тратить на это много времени. Отрасль меняется очень быстро, и если программист не будет следить за изменениями, то через несколько лет он окажется на обочине рынка.

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

Источник: hr-portal.ru
Источник: hr-portal.ru

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

Программирование ­– это творчество, закованное в жесткие рамки

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

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

Если бы мир был сотворен программистом. Источник: blog.toggl.com
Если бы мир был сотворен программистом. Источник: blog.toggl.com

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

Работа в компании разработчиком – не то же самое, что писать код для лабораторных в вузе

Работа в компании требует совсем иных навыков, чем та, которой студенты занимаются в вузе. В первую очередь, это командная работа. Нужно уметь не только кодить, но и читать чужой код. И важно помнить: точно так же кто-то будет читать и твой код.

Источник: techfly.co.uk
Источник: techfly.co.uk

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

Команда Яндекс.Браузер. Источник: businesslynch.ru
Команда Яндекс.Браузер. Источник: businesslynch.ru

Программист в компании работает максимально автономно и отвечает за то, что делает

«Яндекс» – это открытая компания, здесь приветствуется общение между сотрудниками. Если у разработчика возникает какая-то проблема, он может сначала обратиться к коллегам, которые могут ему что-то посоветовать, подсказать, а потом обратиться к начальству. Такая схема сильно повышает эффективность работы, потому что каждый сотрудник сам отвечает за то, что он делает. Программирование – серьезное занятие, не стоит идти в эту профессию просто потому, что это сейчас модно.

Осознание того, чем разработчик хочет заниматься, нужно сформировать как можно раньше

Кроме работы в «Яндексе» я также преподаю язык С++ на кафедре компьютерных технологий в Университете ИТМО, на которой я обучался. Ребята на первых курсах должны изучать много разных языков, и они зачастую не понимают, а зачем им это? Дело в том, что многие языки и технологии, да тот же С++, являются достаточно узкоспециализированными и пригодятся далеко не всем разработчикам. В целом, изучение таких языков, мне кажется, можно сделать факультативным.

Сотрудники и студенты кафедры компьютерных технологий Университета ИТМО
Сотрудники и студенты кафедры компьютерных технологий Университета ИТМО

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

Попасть в крупную компанию можно и по обычному резюме

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

Сейчас я старший разработчик в сервисе Яндекс.Такси. В основном разработка ведется по двум направлениям: это реализация новых продуктовых требований и оптимизация уже реализованных алгоритмов для повышения надежности и быстродействия сервиса.

«Стрит-арт на борту». Конкурс Яндекс.Такси и Музея стрит-арта
«Стрит-арт на борту». Конкурс Яндекс.Такси и Музея стрит-арта

Результаты олимпиад могут быть предварительным критерием отбора программистов в компании

Когда я поступал в Университет ИТМО, я как раз поступил по результатам олимпиады, и, на мой взгляд, это был более профильный отбор, чем сумма баллов ЕГЭ. Поэтому если олимпиада «Я – профессионал» более приближена к реальности, чем тот же ACM ICPC, то ее результаты могут стать неким предварительным профессиональным отбором талантливой молодежи. По крайней мере, на этих ребят можно будет обратить внимание и, например, предложить им стажировку.

Напоминаем, что 1 декабря стартовал отборочный онлайн-этап первой всероссийской олимпиады студентов «Я – профессионал». на олимпиаду записались более 200 тысяч человек со всей России. Одним из самых популярных направлений у участников стал трек «Компьютерные науки», куратором которого выступает Университет ИТМО. Полное расписание онлайн-этапа доступно на сайте проекта. Участники, продемонстрировавшие высокие результаты в отборочном туре, выйдут в заключительный, который состоится 27–30 января в очном формате.