Нужно ли программисту профильное образование? Что думают в Яндексе
Сегодня начинается новый учебный год. Сотни человек, которые в будущем станут программистами, стали первокурсниками или продолжат учиться дальше. Но не факт, что у них у все в дипломе будет написано «программист». Важно ли это для них вообще? На этот раз мы решили спросить сотрудников Яндекса, нужно ли программисту профильное образование.[embedded content]
Кстати, мы часто говорим, что Яндекс — компания, созданная программистами. Но, как меня как-то поправил сооснователь Яндекса Аркадий Волож, ни у кого из создателей Яндекса «программист» в дипломе написано не было. То, что рассказали другие наши коллеги, вы, как всегда, можете прочитать под катом.Андрей styskin СтыскинПрограммирует 18 лет. В Яндексе — 9 лет.Пришёл в Яндекс разработчиком на Java в группу поиска Маркета. Занимался классификацией товарных текстов и извлечением фактов из товарных описаний. Так началось его увлечение поиском и машинным обучением. Вне работы Андрей делал различные IR-игрушки: генератор стихов на языковых моделях, робота для прокачки социальных сетей. Сейчас Андрей руководит отделом ранжирования, в котором работает команда почти из 200 человек.
Как мне кажется, текущий Яндекс сделан людьми, у которых нет профильного образования и которым программирование просто очень нравится. Это математики, физики, люди с экономическим образованием или другими видами технического, которые настолько любили программирование, что пошли именно в программисты. И именно благодаря этой любви, а не умению у них все получается настолько хорошо. Поэтому я не могу оценить, насколько полезно образование программиста. Но, например, менеджерское образование мне на каком-то этапе было очень полезно.
Мне интересно, насколько образование даже в той же Школе анализа данных влияет на мотивацию и любовь к своему делу. Если оно помогает все больше и больше любить свои задачи, то это очень круто. А если человек этому научился, умеет, но не любит и думает, как построить карьеру в другой сфере, то оно может и вредит. Мне очень интересно, как идентифицировать в людях такое на ранней стадии.
Михаил ПарахинПрограммирует 24 года. В Яндексе — 9 месяцев.
После окончания МИФИ начал работать в ЗАО НТЦ «Модуль». В 90-х это было почти единственное место в Москве, где занимались системами автоматического обучения. Потом ушел в компанию Parascript, которая фактически является монополистом в области распознавания рукописного и печатного текста. Долгие годы работал в США. Последние семь лет — в Microsoft, пять из которых возглавлял в Bing подразделение мультимедийных поисковых сервисов. Весной пришёл в Яндекс директором по поисковым технологиям.
Если под профильным считать именно программистское образование, то наверное, необязательно. У меня здесь шкурный момент, потому что у меня его нет — я физик по образованию. Хотя физиком никогда не работал. Я программист-самоучка и вроде бы мне это никогда не мешало. Поэтому думаю, что профильное образование вовсе необязательно.
Андрей yafinder ПлаховПрограммирует 24 года. В Яндексе — 6 лет.
Пришел в Яндекс в 2008 году на должность старшего разработчика. Первой его задачей было создание нового типа факторов ранжирования — доменных. Занимался ранжированием, создал систему Спектр. Кандидат физико-математических наук. Сейчас руководит службой поисковой функциональности — в частности, разрабатывает поисковые подсказки. Глубоко понимает и технологии, и пользовательские свойства продукта.
До Яндекса я занимался компьютерными играми, и довольно регулярно к нам приходили люди на собеседования. Один из них пришел и говорит: «Я единственный человек, у которого профильное образование, образование программиста». Мы удивились: «Как единственный?» Он ответил: «А вот так. Вы посмотрите, что у людей в дипломах написано — ни у кого не написано «программист», а у меня — написано. Потому что я закончил ПТУ, где учат на программиста». Но я не понимаю, что такое профильное образование. Прикладная математика?
Правда, что люди, прошедшие ШАД, — это эпические люди, которых здесь и много где ещё отрывают с руками, но я не знаю, почему так получается. Может быть, именно такие люди могут пройти туда отбор и доучиться. А вообще очень приятно, когда человек, только-только пришедший из учебного заведения, сразу говорит с тобой на одном языке, понимает какие-то вещи, жаргон, уже успел поделать что-то руками в той же области. Но в классической Computer Science есть и много довольно устаревших вещей. Например, большая нотация имеет слабое отношение к реальной работе. Понятное дело, что когда-нибудь положение дел с обучением изменится, но до этого пройдет еще лет 10.
Степан КольцовПрограммирует 10 лет. В Яндексе — 7 лет.
Старший разработчик в службе разработки систем хранения и обработки данных. Стёпа из тех сотрудников Яндекса, которые уходили, но потом возвращались. Сейчас работает над системами мониторинга в поиске.
Я считаю, что профильное образование не нужно совсем. Если мы говорим о серьезном программировании, которое есть в Яндексе во многих местах, то человек должен знать математику. Но это математика не профильное образование, потому что математика отдельно — программирование отдельно. Условно говоря, программист должен уметь писать и читать, но профильное образование в том смысле, что его должны учить программировать, не нужно. ШАД — это больше очень специфичная математика, которая нужна для серьезных проектов. А обучения программированию, нужного для задач, которые люди решают обычно, кажется, у нас в России и нет. И, мне кажется, оно и не нужно, потому что само по себе программирование — это очень простая вещь. Любой человек может научиться программировать сам по книжке за два месяца.
Артём breqwas КиреевПрограммирует 12 лет. В Яндексе — 8 лет.
В Яндекс позвали за то, что парсил данные из Поиска по блогам. Позвали не только поругать, но и на работу. Много лет делал Поиск по блогам, в частности был основным разработчиком подсервиса Яндекс.Пульс. Сейчас разрабатывает Рекламную сеть, один из самых критичных в смысле отказоустойчивости сервисов.
А у нас его где-то дают? Когда-то я учился в институте на специальности «Прикладная математика». Пошел туда, потому что думал: «Здорово, математика. Прикладная. Наверное, меня научат программы писать». Нет, не научили. Меня учили математике и, спустя много лет, я узнал, что у нее действительно есть какие-то приложения, но тогда мне о них не рассказывали. И я был уверен, что меня учат скучной, унылой и не интересной математике, и бросил институт. У меня так и нет высшего образования. Может быть, мне не повезло и где-то в России всё по-другому.
Михаил mlevin ЛевинПрограммирует 18 лет. В Яндексе — 5 лет.
Вы могли видеть лекцию Миши о том, как математика помогает Яндексу зарабатывать. Очень большая часть его деятельности — работа в наших академических программах. Он преподает в Школе анализа данных, участвует в создании программы обучения на факультете Computer Science Вышки и Яндекса. Дважды завоевывал медали на ACM ICPC в составе команды МГУ им. М.В. Ломоносова.
Я закончил мехмат, и на нём никогда не делался упор на программирование. То, что оттуда вышло очень много программистов, — следствие двух вещей. Во-первых, в стране не очень-то можно было зарабатывать, будучи ученым, а во-вторых, много людей в чистую науку пойти не могут. По сути остается выбор работать программистом или экономистом. Два самых популярных варианта.
Практической части на мехмате никогда не учили. То, что многие мои однокурсники работают в Google, Яндексе, Microsoft, Facebook и других крутых компаниях, получилось потому, что курс был сильный, многим помогли продвинуться олимпиады. Многому пришлось самостоятельно научиться. Если бы мы брали только только то, что давал университет, то этого не хватило бы даже для того, чтобы попасть на стажировку в Яндекс. ШАД — это способ починить ситуацию. Математическое образование у нас в стране в принципе не плохое, хотя и не вполне такое, как его воспевают. Но действительно топ выпускников мехмата и ВМК не проигрывает топу Гарварда и MIT, но это какая-то небольшая выборка, за пределами которой идет резкий спад. В западных вузах меньший упор на математику, но гораздо больше практических занятий. Выпускники могут сразу приходить в индустрию и работать. А у нас было так, что люди, блестяще окончившие вузы, не могли пройти собеседования на позиции стажеров.
На новом факультете Computer Science в Вышке мы хотим сразу попробовать сочетать математику и программирование в более правильных пропорциях. Меньше давать обязательной математики и больше программистских курсов и практических заданий.
Павел СуховПрограммирует — 9 лет. В Яндексе — 5 месяцев.
Учился в нижегородском филиале Вышки, где уже два года преподает. До Яндекса работал в научно-исследовательской лаборатории. В Яндексе разрабатывает геоприложения.
Если бы я сейчас работал с дипломом повара, как бы это повлияло на мою работу? Ровно никак. Никого не интересует, каким образом ты получаешь знания, особенно во IT-области. Я знаю пример, когда девушка пришла работать программистом, окончив консерваторию. И ее взяли. Первое время были какие-то трудности с зарплатой, потому что формально они не могли ей ставку выплачивать, но сейчас она работает не на самой низкой должности. Людей интересуют твои реальные знания и навыки. И даже это не всегда. Очень часто важна просто мотивация. Да, конечно, профильное образование в чем-то помогает, позволяет получить опыт в разных областях, которые внезапно могут оказаться полезными, но это точно не обязательный фактор.
Андрей МищенкоПрограммирует 24 года. В Яндексе — 9 лет.
Пришёл в Яндекс разработчиком на C++, долго был руководителем разработки Поиска по блогам и писал на Perl. Андрей — кандидат физико-математических наук. Сейчас работает над улучшением алгоритмов машинного обучения в поиске.
Нужно ли закончить ВМК, чтобы работать программистом? Конечно, нет. Но мне нравится, когда у программиста хорошее фундаментальное образование. Это задает потолок, который программист может достигнуть. Можно вообще не иметь высшего образования, закончить школу, пойти выучить PHP, набрать 10 лет опыта и быть очень хорошим веб-разработчиком. То есть, ты сможешь очень быстро делать какие-то интернет-магазины, и понятно, какого уровня работа у тебя будет. Ты будешь получать очень хорошую зарплату, делать качественные продукты в рамках взятых задач, но отсутствие образования будет тебя держать. Ты не сможешь подняться выше и делать какие-то более глубокие вещи. Например, поиск, рекомендательные системы, свои алгоритмы — какие-то наукоемкие вещи. У тебя будет работа совсем другого уровня.
Анатолий anatolix ОрловПрограммирует 25 лет. В Яндексе — 9 лет.
Первые два года писал Маркет. Долгое время занимался поиском — в основном его производительностью, а потом и всем остальным. Сейчас занимается разными проектами в области скорости, архитектуры и т.д. Заместитель руководителя направления поисковых сервисов. Входит в 2% людей, которые заканчивают курсы на Coursera.
Я много раз изучал этот вопрос, потому что у меня самого нет высшего образования. Могу сказать так, что стоит разделять образование как концепцию передачи знания, обучения и образования как диплома. Я бы сказал, что знания программисту нужны, а диплом, на самом деле, не особо. Получать знания необязательно в вузе — это может быть и самообразование. Если вам не повезло, и у вас не было хорошего вуза, то просто придется посмотреть много лекций. В этом нет ничего плохого.
Григорий bobuk БакуновПрограммирует 25 лет. В Яндексе — 10 лет.
Когда-то пришёл работать системным администратором, а сейчас — директор по распространению технологий.
Я знаю два или три вуза, которые готовят программистов по-настоящему. Все остальное — это такие косвенные, смежные специальности. Мне кажется, что большую часть своих знаний программист, конечно же, получает в процессе самообразования. Тем не менее, профильное образование позволяет получить все то, что позволяет получить любое другое образование. В первую очередь — правильные связи, правильные знакомства, умение общаться с людьми своей профессии, что тоже очень важно. Потом представление о том, как устроена жизнь в индустрии. Это вещи, которые профильное образование должно давать. Программисты должны научиться общаться с другими программистами, а также с людьми смежных специальностей. Они должны представлять себе, как устроена жизнь в индустрии, что такое системы контроля версий и как вообще со всем этим живут. Образование должно дать базовые знания по непосредственной специальности, потому что все остальное человек должен научиться воспринимать из окружающего пространства сам. На самом деле, в России уже есть несколько вузов, которые начали двигаться в этом направлении. Да и в мире, наверное, есть три-четыре вуза, которые по этой схеме живут.
Елена БунинаВ Яндексе — 7 лет.
Директор отделения computer science в Школе анализа данных, HR-директор Яндекса, профессор кафедры высшей алгебры механико-математического факультета МГУ им. М.В. Ломоносова, заместитель заведующего кафедрой «Анализ данных» МФТИ. Доктор физико-математических наук. Тема её докторской диссертации «Автоморфизмы и элементарная эквивалентность групп Шевалле и других производных структур».
ФОТО
Я встречала много математиков, которые потом переучились и стали программистами, не имея профильного образования. Но мне кажется, что все-таки лучше достаточно рано обучиться программированию. Так будет гораздо проще переходить с языка на язык, например. Человеку, который в ранние годы этому научился, как-то проще живется. Есть программисты-инженеры, которым сама наука Computer Science не очень интересна, они скорее технари. Но те программисты, которым интересно что-то новое изобретать и анализировать, им как раз нужно эту науку изучать.
Олег КлиминПрограммирует — 23 года. В Яндексе — год.
Окончил Нижегородский государственный университет им. Н.И. Лобачевского. На предыдущей работе Олег занимался созданием и поддержкой программного обеспечения для узлов сотовой связи. В Яндексе разрабатывает мобильные геоприложения.
Мне кажется, всё больше зависит от человека, чем от профиля, по которому он учился. У меня не программистское образование, что, в общем, не мешает работать программистом. Я знаю людей, которые заканчивали экономический факультет или какие-то гуманитарные факультеты, и при этом они являются отличными программистами. Есть те, кто получил специальность, но потом что-то не пошло, что-то не понравилось. Есть много самоучек, которые вообще ничего не заканчивали. Профильное образование помогает, дает человеку систематизированное понимание того, чем он занимается, с ним, наверное, проще, если это человеку действительно интересно. Но я не считаю, что оно является обязательным.
А что думаете вы? Что написано у вас в дипломе? И помогают ли те знания, которые давали в вузе, вам в работе?