Top.Mail.Ru
Колонки

Андрей Себрант («Яндекс») назвал «профессии будущего» в области программирования

Колонки
Андрей Себрант
Андрей Себрант

Директор по маркетингу сервисов компании «Яндекс»

Андрей Себрант

Директор по маркетингу сервисов компании «Яндекс» Андрей Себрант — о том, каким навыкам программистам стоит учиться сейчас, чтобы не остаться на обочине в будущем.

Андрей Себрант («Яндекс») назвал «профессии будущего» в области программирования

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

Программист-педагог

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

Здесь на первый план выходит не умение писать код с нуля, а понимание того, что делает код, написанный кем-то другим, и умение модифицировать его под свои цели. Главное — правильно построить процесс обучения сетки. Это отдельное умение, которое сейчас нигде не преподают. Точнее, почти нигде. Есть приятные исключения: Физтех, ШАД, ФКН ВШЭ и еще пара мест.

Такой специалист востребован при самых разных бизнес-задачах. Кому-то в силу универсальности применения машинного обучения нужно будет обучить одну и ту же сеть на DataSet Магнитогорского металлургического комбината для прогнозирования неких результатов металлургической плавки или еще чего-то, а с другой стороны, на данных пользователей World of Tanks и предсказать их отток.

Человек, который умеет обучить сетку, чтобы сегодня она эффективно предсказывала, как менять параметры сталеплавильной печи, а завтра — как изменять тарифные планы игрока в World of Tanks, и есть программист будущего. Понятно, что по мере того, как тысячи компаний, а не единицы, начнут использовать deep learning и нейронные сети в повседневной работе, им нужны будут программисты, которые эти сетки умеют учить, а не писать.

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

Эксперт по open source

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

Сейчас «изобретением велосипедов» занято огромное количество команд, и в тот момент, когда они показывают созданный код, заказчик узнает, что он уже существует у кого-то (например, в репозитории Google). Нужны будут специалисты, которые являются экспертами по open source и понимают, какие велосипеды не надо изобретать. Они, наоборот, возьмут готовые части, которые лежат, из них быстро соберут — может быть, тот же велосипед, но собственный из готовых частей — и не будут поднимать здесь производство отдельных колес, шин и так далее.

Простой пример. Раньше хороший распределенный алгоритм, который мог распознавать изображения, был доступен пяти большим компаниям и трем большим университетам. На сегодня его найдет любой школьник, потому что в открытом доступе есть Tenzor Flow. Я знаю хороших школьников, которые с ним разбираются. Но и человека, который начнет писать с нуля что-нибудь похожее, я тоже знаю, потому что он плохо ориентируется в том, что бывает на GitHub.

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

Специалист по интерфейсному программированию

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

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

Например, можно объединить социальную сеть и карты от Google или «Яндекс», что позволит создать сетку для поиска приятеля на районе. Будет классное приложение, и только сумасшедший решится писать свою систему авторизации и свою систему карт. Здесь речь идет не о том, чтобы взять готовый код и поднять его на своих серверах, а о том, чтобы твой код взаимодействовал с интерфейсами Google, Facebook,  «Яндекс» и так далее.

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

Приведу пример, как эти профессии могут конкурировать друг с другом. Стоит задача — в рамках сервиса нужно распознавать голос человека. Сейчас она решается с помощью нейронных сеток. Можно взять и закупить в Amazon нужные ресурсы, загрузить код того же Tenzor Flow и начать обучать эту сетку.

Здесь будут нужны два человека, которых мы упомянули. Специалист по работе с чужим кодом понимает, как Tenzor Flow поднять на облаке Amazon. Когда он это сделал, то в руки готовый продукт берет тот человек, которого мы назвали программистом-педагогом. И он обучает сетку, понимает, какие DataSet и с какими голосами загнать, чтобы сетка начала распознавать названия улиц на китайском языке.

Но может появиться специалист по интерфейсному программированию и сказать: ребята, есть программы распознавания речи Speech Kit или Nuance, нам не надо адаптировать код и арендовать серверное время, есть просто готовый API — загоняешь туда запись звука, а тебе возвращают текстовый файл в режиме реального времени. Так он может просто их лишить работы.

Почему взлетела Prisma? Ребята не писали код с нуля, знали, где его взять, как его модифицировать, где арендовать сервера подешевле. Это было использование умений профессий каждой из трех указанных мной групп.

Каким профессиям, наоборот, суждено погибнуть

Я бы не ставил так вопрос. Хороший программист умеет учиться. Сама профессия программирования будет модифицироваться, она уже сегодня использует совершенно другие инструменты и другие языки, чем 20 лет назад. И надо сказать, что те, кто им научились 20 лет назад, никуда не исчезли, они просто стали программистами, работающими в другой среде. Так будет и дальше. Некие отдельные умения программиста или некие среды, в которых он работает, будут, несомненно, изменяться.

Можно сказать, что те люди, которые сейчас являются веб-программистами, станут программистами для других устройств, так как важность веб-сервисов становится все меньше по мере роста портативных устройств или интернета вещей. Да, по этой же причине появляются новые языки программирования — Swift или Go. Но они благосклонно приняты программистами.

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



Презентация самых новых бизнес- и технических кейсов по BigData, AI и IoT на конференции ICBDA'2016. Программа и регистрация по ссылке.



Фото на обложке: Pixabay

Материалы по теме:

Как генерировать идеи, не отрываясь от работы

Самые важные дизайнерские профессии будущего

13 причин, почему я не хочу растить своего сына гением

Инфографика показывает профессии, которые могут исчезнуть благодаря роботам

Вряд ли ваш ребенок будет врачом или учителем...

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

Материалы по теме

  1. 1 Андрей Себрант — нейросеть сможет генерировать уникальные мультики в глухой тайге
  2. 2 Тонкий, эластичный и прочный, как сталь: сможет ли графен изменить мир?
  3. 3 Транспорт будущего. Куда движутся водоробусы, аэротакси и летающие поезда
  4. 4 Как выглядит транспорт будущего в кино
  5. 5 Каждому предпринимателю нужна своя «банка с огурцами»
FutureFood
Кто производит «альтернативную» еду
Карта