Директор по маркетингу сервисов компании «Яндекс» Андрей Себрант — о том, каким навыкам программистам стоит учиться сейчас, чтобы не остаться на обочине в будущем.
Профессии в программировании, которые можно смело считать профессиями будущего
Программист-педагог
В первую очередь я бы выделил именно эту профессию. Программист-педагог — тот, кто не столько программирует нейронные сети или другие сложные системы машинного обучения, сколько умеет их обучать.
Здесь на первый план выходит не умение писать код с нуля, а понимание того, что делает код, написанный кем-то другим, и умение модифицировать его под свои цели. Главное — правильно построить процесс обучения сетки. Это отдельное умение, которое сейчас нигде не преподают. Точнее, почти нигде. Есть приятные исключения: Физтех, ШАД, ФКН ВШЭ и еще пара мест.
Такой специалист востребован при самых разных бизнес-задачах. Кому-то в силу универсальности применения машинного обучения нужно будет обучить одну и ту же сеть на 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
Материалы по теме
ВОЗМОЖНОСТИ
28 января 2025
03 февраля 2025
28 февраля 2025