Высшая IT-лига: Пять историй айтишников о рабочих фишках, образовании и не только
В России вырос спрос на IT-специалистов — количество вакансий для айтишников в январе 2023 увеличилось на 63% по сравнению с тем же периодом в прошлом году. Трудоустройство предлагают начинающим специалистам и разработчикам с опытом. Из-за быстрого карьерного роста, возможности делать полезные IT-продукты и высокой зарплаты все больше людей задумываются о смене профсферы в пользу IT.
Редакция Enter совместно с «Академией Яндекса» поговорила с опытными разработчиками и выпускниками профильных направлений. Рассказываем, какие преимущества у специалиста с дипломом, в чем плюсы дополнительного образования и как айтишнику развивать скиллы самостоятельно.
Я заканчиваю четвертый курс бакалавриата по направлению «Математика, алгоритмы и анализ данных». Это специальность на стыке математики и программирования. С одной стороны, мы изучаем науку, с другой — алгоритмы и принципы разработки. Выпускники направления работают с разными применениями машинного обучения, например, обработкой естественных языков, распознаванием речи, компьютерным зрением и обучением с подкреплением. Я выбрала эту специальность, потому что мне всегда хотелось приносить пользу миру, видеть результат работы на практике.
Лучше освоить специальность мне помогло обучение в Школе анализа данных Яндекса — оно доступно студентам моего факультета бесплатно на последних курсах. Я посещала занятия по глубокому обучению, компьютерному зрению и краудсорсингу. Как мне кажется, качественные курсы во многом похожи на обучение в профильном вузе. И там, и там есть заинтересованные люди, которые делают все, чтобы молодые специалисты стали профессионалами в своих нишах. И на парах в вузе, и на курсах разбирают практико-ориентированные задачи. То есть в обоих случаях, как правило, у тебя есть опыт решения практических кейсов и проекты — ты не с пустыми руками идешь к работодателю.
После третьего курса я попала на стажировку в небольшую компанию, а спустя три месяца меня взяли на постоянную работу. Моя команда занимается разработкой систем автоматической видеоаналитики. Мы работаем над созданием моделей, которые способны обнаруживать нужные объекты на видеозаписи. С этим может справиться человек, но это долго и непрактично.
Спустя почти год в компании я поняла, что без высшего образования все-таки сложно стать экспертом. У человека должна быть нереальная сила воли, чтобы каждый день заставлять себя изучать новое, находить нужную информацию и погружаться в теорию самостоятельно. А в вузах уже сформирована программа и собраны знания, которые действительно пригодятся в индустрии. Да, окончить университет непросто: теория, курсовые и экзамены — серьезные вызовы для студентов. Но по моему мнению, это наиболее оптимальный и прямой путь к IT-профессии.
В программе Школы анализа данных два трека: классический для студентов и выпускников вузов с сильной математической базой и альтернативный для опытных разработчиков и ML-исследователей. На выбор — более 50 курсов по четырем направлениям: Data Science, разработка машинного обучения, инфраструктура больших данных и анализ данных в прикладных науках. Эксперты ШАД научат решать задачи по сбору и анализу данных, создавать сервисы и приложения на основе ML, разрабатывать системы хранения и обработки больших данных.
В УрФУ (Уральский федеральный университет в Екатеринбурге — прим. Enter) есть базовая обязательная программа и небольшая часть дисциплин, которые студент выбирает сам из предложенных спецкурсов. К ним относятся, например, образовательные программы Яндекса. Я окончил одну из них — КРИ или Курсы разработки интерфейсов (сейчас Школа разработки интерфейсов — прим. Enter), и попал в компанию на стажировку. Мне нравилась студенческая атмосфера и возможность помогать начинающим айтишникам, поэтому спустя какое-то время я стал преподавать эти же программы.
Плюс таких курсов в том, что они являются необязательными. Студенты приходят на пары по желанию. Это мотивированные люди, которые хотят заниматься разработкой и не боятся задавать вопросы. По окончании мы приглашаем ребят в компанию на стажировку. И чтобы они просто и быстро адаптировались, программа курса сфокусирована, прежде всего, на практических задачах Яндекса. То есть мы учим актуальным языкам и программам, которые используют в компании прямо сейчас. Но эти знания пригодятся и тем, кто не планирует у нас работать.
У меня нет ответа: нужно высшее образование IT-специалисту или нет. Все зависит от того, чем человек хочет заниматься. Можно пройти курс по разработке сайтов и пойти делать сайты — для этого необязательно заканчивать вуз. Если человек хочет писать фронтенд, он должен разбираться в сетевых протоколах и взаимодействии с браузером. То есть нужен больший спектр знаний. Например, в «Яндекс Погоде» мы часто работаем с метеорологическими данными. Классические прогнозы погоды считают на основе дифференцированных уравнений. В принципе, разбираться в этом необязательно, но математический бэкграунд облегчит и ускорит решение некоторых задач. Так что вуз как место, где можно получить хорошую базу знаний, — неплохой вариант.
Но нужно понимать, что бы ни закончил айтишник, ему все время придется что-то читать, смотреть, изучать. Это нужно для того, чтобы не отстать от индустрии и самому не перегореть. У меня в арсенале несколько языков программирования: я люблю писать на Python, знаком с TypeScript и JavaScript, недавно научился кодировать на современном Go. В этих языках постоянно появляются новые стандарты и возможности. Чтобы быть в курсе новостей, каждую неделю я читаю рассылки Weekly. Для этого достаточно вбить в поиск Go weekly или Python weekly и подписаться на нужный ресурс.
Еще один способ развивать скиллы — делать пет-проекты (от англ. pet — «домашний питомец». Проект, который разработчик делает для себя, в свободное от основной работы время — прим. Enter). Недавно я вспомнил университетские лекции и попытался написать компилятор. В этой программе оказалось много новых для меня алгоритмов и подходов.
Институт естественных наук и математики УрФУ готовит специалистов в области компьютерных наук, анализа данных, машинного обучения и искусственного интеллекта. Студенты магистерской программы на базе вуза учатся использовать информационные технологии и математическое моделирование в естествознании, экономике и управлении. Программа рассчитана на два года. Подробнее, как поступить в магистратуру и стать студентом ШАД, читайте на сайте.
Я закончил бакалавриат и магистратуру по направлениям информационная безопасность и высокопроизводительные вычислительные системы. В университете я уделял специальности много времени и почти не интересовался программированием, пока не попробовал покодить. Мне понравилось заниматься разработкой, и чтобы покачать знания в новой сфере, я прошел девятимесячную программу от «Яндекс Практикума».
После обучения я начал брать заказы на фриланс и делать пет-проекты. Это небольшие практические кейсы, во время работы над которыми можно попробовать реализовать любую идею и протестировать технологии. Цель таких проектов — изучить и попробовать новое, поэтому они часто делаются в стол. Но это того стоит.
Со временем в портфолио собралось много проектов и неплохих кейсов, но мне не хватало командной работы. В это время шел набор в Школу разработки Яндекса. Я успешно сдал тестовое задание и попал на курс. После двух месяцев онлайн занятий участников собрали в Москве для реализации проектов — почти три недели в командах мы работали над практическими кейсами. По окончании Школы всем предложили пройти собеседование. Я попробовал, и так оказался в Яндексе.
По моим ощущениям, айтишникам необязательно получать высшее образование. Если человеку хватит мотивации и дисциплины саму выучить то, что дают в университете, в вуз можно не поступать. В основном в университете дают теоретическую базу, учат искать информацию, анализировать контент, ставить и соблюдать дедлайны. Диплом может понадобиться при устройстве на работу в крупные компании. Когда эйчар получает 1 000 резюме на вакансию, у него есть отсекающий большинство фактор — высшее образование. Практическим же штукам придется учиться самому, спотыкаясь, ошибаясь и набивая шишки по ходу работы.
Пройти курс, кстати, тоже не всегда достаточно, хотя у таких программ однозначно есть преимущества перед вузами. Самое ценное — ревью опытных разработчиков. На курсах специалисты смотрят твой код и советуют, как его сделать лучше. У преподавателей вузов большой поток студентов, поэтому они физически не успевают тщательно смотреть и исправлять работы.
Еще из плюсов то, что на курсах учатся в небольших группах. Все в команде заинтересованы в общем результате, понимают и изучают одно направление, поэтому всегда есть у кого попросить совет. Вообще IT-комьюнити полезно. В Telegram есть открытые каналы и беседы, мне кажется, по всем направлениям. Профильную информацию иногда невозможно нагуглить, поэтому такие сообщества сильно помогают в развитии.
В IT главное не бояться спрашивать и пробовать новое. Я учился в вузе, проходил курсы, работал системным администратором, делал проекты на фрилансе. Только после этого я понял, чем хочу заниматься. Не нужно пытаться сразу определить направление работы. Попробуйте все. Да, это дольше. Зато так проще понять, что интересно. А дальше все зависит от желания: тот, кто хочет программировать, найдет время и способы это делать.
В программе Открытого лектория Летних школ Яндекса несколько направлений: разработка интерфейсов, мобильная и бэкенд-разработка и менеджмент. Топовые эксперты компании проведут более 120 занятий по востребованным IT-специальностям и решению бизнес-кейсов. Лекторий рассчитан на начинающих и опытных айтишников. Участие бесплатное, но нужна регистрация.
С начала третьего курса я работаю в Яндексе. Моя команда занимается разработкой внутреннего поиска. Мне интересно совмещать разработку и ML (от английского machine learning — машинное обучение. Способ обучать компьютеры на основе данных без программирования и инструкций — прим. Enter) не только на работе, но и в университете. В этом году я заканчиваю бакалавриат факультета математики и компьютерных наук в СПбГУ. Моя дипломная работа посвящена обучению с подкреплением или reinforcement learning — способу обучения системы при взаимодействии со средой.
Представьте склад, на котором работают роботы. Им нужно перемещаться, перевозить груз и не сталкиваться. В алгоритмах, которые существуют, процесс часто зависит от центрального координатора — устройства, которое может управлять агентами и сообщать им дополнительную информацию. Это неэффективно для больших складов. Сейчас популярны системы, когда агент сам видит небольшие участки вокруг и решает, куда ехать. При этом роботы могут общаться и передавать друг другу информацию. В выпускной работе мы анализируем один из таких алгоритмов и пытаемся предсказать риски — спрогнозировать поведение робота в случае сбоя системы.
Чтобы делать подобные проекты, нужно обладать большим спектром навыков: писать код, разбираться в математике. Эти знания проще получить в вузе. Но я не говорю, что выучиться самостоятельно невозможно. В моей команде в Яндексе работают специалисты, которые учились не по профильному направлению. При этом они отлично справляются и делают крутые проекты.
Одно из преимуществ высшего образования — возможность получить знания в разных сферах. Информация с лекций по статистике, машинному обучению, программированию, теоретическим основам алгоритмов может потребоваться во время работы. Самостоятельно сложно достичь такого понимания индустрии вширь: нужны мотивация, время для регулярных занятий, навык навигирования в огромном потоке информации. Зато если заниматься самому, есть шанс быстрее узнавать о новых алгоритмах — в вузе дают не всегда актуальную информацию.
Но получить высшее образование мало. В IT многое решает самостоятельность. Важно самому изучать, какие технологии актуальны, как новые решения отличаются от старых, над чем работают специалисты из других компаний. Чтобы погрузиться в это, нужно читать профильные статьи, подключаться к конференциям топовых специалистов, делать несложные проекты, не бояться ошибаться и задавать вопросы.
Факультет математики и компьютерных наук СПбГУ готовит специалистов в области математики, разработки программного обеспечения и науки о данных. Студенты бакалавриата могут выбрать одно из трех направлений: «Современное программирование», «Математика» или «Науки о данных». Магистрантам доступны программы «Разработка программного обеспечения и науки о данных» и «Современная математика». В течение двух лет студенты изучают все направления современной математики, слушают курсы по анализу данных, машинному обучению и другим областям компьютерных наук и реализуют учебные проекты под руководством опытных преподавателей. Подробнее о совместных программах Яндекса и вузов России можно узнать здесь.
Я был одним из первых, кто закончил программу ШАД в Екатеринбурге. Тогда это казалось чем-то новым и необычным: мало кто понимал, что такое анализ данных. На лекциях рассказывали о языках и программах, которые использовали компании, учили писать коды. То есть у меня была университетская база, которую на последних курсах расширили практические лекции Яндекса. Поэтому я бы не противопоставлял вузовскую программу и качественные IT-курсы — они могут круто дополнять друг друга.
В IT много разных профессий. Каждому веб-разработчику или дизайнеру необязательно заканчивать университет. Часто высшее образование необходимо для реализации больших технических проектов, например, для создания сложных сервисов. Чтобы все работало и никто из пользователей не пострадал, нужны профильные знания. И если рассуждать статистически, большинство людей не смогут их освоить самостоятельно.
Несмотря на то, что IT быстро меняется, новые технологии только кажутся новыми. Например, нейросети идут от цепей Маркова. Математик впервые описал их в 1906 году. Книга «Deadline. Роман об управлении проектами» Тома Демарко написана в 90-х годах. Она посвящена управлению проектами в IT. Другая — «Алгоритмы. Руководство по разработке» Стивена Скиена 2000-х годов — про технологии и написание кодов. В обеих информация, которая актуальна до сих пор. Этот академический базис не меняется уже много лет, поэтому профильное знания долго не устаревают.
Не нужно пытаться успеть за всеми обновлениями. Лучше понять, какие технологии и принципы долговечны, и разобраться в них. Когда появился Ruby on Rails, все думали, что это язык будущего. Но со временем он стал непопулярен. А вот C++ существует лет 30–40 и не потерял актуальность.
За новинками в индустрии стоит наблюдать обзорно. Я придерживаюсь овервью (от англ. overview — беглый обзор — прим. Enter): поверхностно слежу за обновлениями. И если нахожу полезную и актуальную для текущей работы информацию, начинаю изучать и углубляться в тему. Чтобы не потеряться в информации, советую новичкам найти экспертные источники и периодически их просматривать. Я бы посоветовал читать «Журнал Академии Яндекса», журналы «Код» и «Техно» и слушать yet another podcast от коллег из Яндекса.
«Академия Яндекса» разработала бесплатные хендбуки для студентов и преподавателей. Среди них — онлайн-учебники по основам Python и C++, машинному обучению, алгоритмам и анализу данных для социальных наук. С хендбуками вы сможете изучить теорию, потренироваться в решении задач и отследить прогресс обучения. Проходите разделы в удобном вам темпе и в любом порядке, чтобы получить новые знания и актуализировать имеющиеся. Заниматься по хендбукам можно без специальной подготовки.
Текст: Ксения Монастырская
Изображения: sasha spi
все материалы