Куда пойти учиться на программиста: мнения представителей сферы IT

Александр Першин, генеральный директор компании HTML Academy Карьеру программиста можно начать и без высшего образования, но есть нюансы. В сфере разработки уже давно появилось «классовое деление»: есть крутые «программисты-ученые» и «программисты-инженеры», а также рядовые «программисты-работяги». Здесь уже все как на обычных производствах: высокие инженерные или исследовательские должности без высшего образования недостижимы. А начать карьеру простого разработчика (и в процессе «дорасти» до сильного спеца) можно сразу после школы или колледжа. Начать карьеру программиста можно в веб-разработке. Достаточно полгода поучиться на онлайн-курсах, чтобы получить нужные навыки. Да, зарплата вначале будет низкой, но в течение нескольких лет она вырастет до 100 тысяч рублей и выше. А вот стартануть в data science без профильного образования будет сложнее. Нужно знать предметную область, а она по сложности соответствует высшему образованию. В зависимости от задачи я работаю с разными программистами. Есть и наши выпускники, у которых нет профильного технического образования. Они занимаются веб-интерфейсами. А есть и серьезные специалисты с профильным образованием, они разрабатывают инфраструктуру интерактивных курсов. В нашей команде много программистов-самоучек. У нас даже есть дочерняя компания «Лига А», в которой коммерческие заказы выполняют только наши выпускники. Они самоучки с той точки зрения, что проходили только онлайн-курсы, а не получали профильное вузовское образование. Кроме того, программисту для успешной работы необходимо системное мышление и внимательность. И желание разобраться в задаче перед тем, как начать писать код. Идеально, если разработчик всегда горит желанием узнать, зачем он решает конкретную задачу, что она даст пользователям и его компании. Дмитрий Уткин, техлид направления Machine Learning, группа компаний Neti Программирование очень разнообразно. Веб-разработка требует одних навыков, построение интегрированных корпоративных систем – других, создание нейросетей и моделей машинного обучения – третьих. Объединяет разные отрасли системный подход, тщательность в выборе данных и алгоритмов, скрупулезность тестирования и умение поставить себя на роль пользователя. Я бы сказал, что высшее инженерное или математическое образование поможет в наукоемких отраслях программирования, а в прикладных – будет достаточно курсов. Чтобы попасть к нам на работу, соискатель должен продемонстрировать системность мышления, хорошие знания синтаксиса языка программирования и понимание, какие именно задачи решаются в процессе работы. Будет нелишним знать лучшие практики отрасли – сейчас их часто преподают на продвинутых курсах и в вузах. Еще я бы порекомендовал почитать Макконела, Мартина, Фаулера, «Банду Четырех». И, кстати, можно пройти открытые курсы от ведущих мировых вузов – MIT, например. Много интересного можно найти на Coursera. Высоко ценится знание английского языка – почти все новые фреймворки и технологии описаны именно на английском, а это значит, что у вас будет преимущество в год или два перед теми, кто ждет перевода документации на русский. И, конечно, важна способность постоянно учиться. В разных областях программирования знания устаревают за два-три года. Так что необходимо постоянно учиться и переучиваться. Евгений Лопатин, директор департамента разработки «Инфосистемы Джет» Конечно, я бы рекомендовал будущим программистам не пренебрегать высшим техническим образованием. Оно играет важную роль в карьере разработчика. Но есть и другая сторона — качество образования. И здесь не всегда отсутствие диплома магистра играет фатальную роль. Многие начинают свой путь в разработке еще со школьной скамьи: изучают профильную литературу, участвуют в сообществах, развиваются самостоятельно. Образование или самообразование просто необходимы — одних курсов недостаточно. Важнейшее качество разработчика — уметь и хотеть учиться. Любые знания в конкретной области — это лишь базис для последующего совершенствования. Тот, кто остановился в развитии, очень быстро теряет ценность. Поэтому мы в компании уделяем огромное внимание развитию сотрудника: семинары, индивидуальные планы развития, курсы, мастер-классы — это помимо непосредственного участия в проектах по заказной разработке. Сама по себе практика и наличие сильных экспертов в окружении способны частично компенсировать отсутствие профильного образования и вывести начинающего программиста на новый уровень. При найме сотрудника мы смотрим на перспективы роста и мотивацию. Разумеется, берем на работу и программистов-самоучек, но, как правило, потолок развития у таких кандидатов ниже, а темпы роста компетенций не такие быстрые. В любом случае пробелы системного образования нужно будет восполнять. Но сегодня востребованность такого специалиста, безусловно, гарантирована. Денис Коровкин, генеральный директор WebProfy (Kokoc Group) При приеме на работу программисту важнее показать работодателю классный код, а не сертификаты и дипломы. Высшее образование здесь, скорее, небольшой плюс, чем необходимость. Нужно, чтобы голова у человека хорошо работала. Иногда высшее образование этому способствует, иногда нет. В вузах, как правило, не готовят специалистов, которые нужны на рынке. В работе я отдаю предпочтение ребятам сообразительным и любознательным, независимо от пола, возраста, вероисповедания и высшего образования. Гораздо важнее внимательность, обучаемость, пунктуальность, критическое мышление. Умение правильно «гуглить», кстати, тоже пригодится. Кроме перечисленных качеств программисту не обойтись без умения концентрироваться, самодисциплины и самокритики. Очень важен навык чтения, в том числе, на английском языке, и навык отладки. Это то, чем программист занимается 80% своего времени — ищет причину, по которой код не работает так, как хочется. Что поразительно, очень большое количество программистов не умеет этого делать и тратит время работодателя на перебор вариантов и метод тыка. С точки зрения обучения, мне нравится Британская высшая школа дизайна. Среди профильных ресурсов можно обратить внимание на Udemy, у них большая база англоязычных курсов. Слышал много хороших отзывов о Школе разработки интерфейсов от «Яндекса». Есть курсы, которые у всех на слуху, вроде HTML Academy или GeekBrains, но это больше заслуга маркетинга. Вообще тема «опыта работы» кажется мне более актуальной, чем профильное образование. Практический опыт — лучшее обучение. Чем больше шишек набито, чем больше решений найдено, тем эффективнее человек будет работать. После вуза или Codecademy новоиспеченных программистов нужно еще от трех до шести месяцев готовить к настоящим задачам. Я завидую студиям, у которых есть своя «песочница» для обучения новичков. Сами мы предпочитаем брать людей с уже существующим опытом — так они встраиваются в процесс уже за пару месяцев, а иногда и быстрее. Евгений Салтыков, руководитель проектов департамента корпоративных систем ЛАНИТ Высшее образование является фундаментом для дальнейшего развития программиста. В вузе он получит навыки, которые помогут ему самообучаться в дальнейшем. Наличие высшего образования показывает умение достигать долгосрочных целей. А вкупе с дипломом именитого вуза это говорит о базовой дисциплине и умении работать в команде. Мы не отдаем предпочтения выпускникам конкретных вузов, но складывается статистика в пользу МГТУ им. Баумана, МФТИ и МАИ (факультетов математики и информатики). При отборе специалистов мы больше смотрим на опыт. Программисты нужны разные, каждый из кандидатов может найти свое место в команде. Но, прежде всего, программист – это человек с аналитическим системным мышлением, обладающий навыками алгоритмизации процессов и задач. Что касается вопроса, где получить профильное образование, то я рекомендую вузы, указанные мной ранее, а также популярные у молодежи МИФИ, МИРЭА, МИСИС. Андрей Коваленко, сооснователь и CTO Voximplant Профильное образование, на мой взгляд, нужно. В вузах не учат программированию как таковому, а дают лишь базовые алгоритмы. Тем не менее высшее образование говорит о наличии у человека дисциплины и фундаментальной базы знаний для дальнейшего развития. При приеме на работу этот пункт резюме не критичен, и мы можем взять хорошего специалиста без профильного образования. Однако в случае выбора между двумя кандидатами предпочтение будет отдано разработчику с дипломом. Так куда пойти учиться? Есть топ технических вузов страны, тут я ничего нового не скажу. Это МГТУ имени Баумана, Университет связи, МИСиС, МАИ, МЭИ и МИФИ. Также к этому списку относят физтех МГУ, хотя он больше заточен под фундаментальную науку. На курсах зачастую дают очень поверхностные знания, и то, что человек прошел какой-то курс, не говорит о его профессионализме в этой области. Всегда нужно в большом количестве заниматься самообразованием. Могу дать совет выбирать курсы с несколькими уровнями погружения в тему, чтобы получить максимальный объем знаний, не останавливаясь на базе. Однако ни одни курсы не имеют смысла без практического опыта. Я закончил технический вуз, и все знания, которыми я обладаю, получил в процессе работы. Все зависит от усилий самого разработчика. Однако, образование — это еще не все. Для программиста важна усидчивость и внимательность. Конечно, программирование — это творческая профессия, но творческих задач в ней 15%, а остальное — типовые процессы, требующие аккуратного выполнения. Также обязательна способность быстро усваивать новое: сейчас технологии появляются с такой скоростью, что книги устаревают еще до выхода в печать, поэтому умение быстро разбираться в новинках необходимо любому IT-специалисту. Константин Ян, сооснователь, технический директор платежного сервиса CloudPayments Прохождения курсов может быть достаточно, если говорить о позиции стажера или разработчика в стартап. Потому что для работы на начальном уровне достаточно теоретической подготовки и базовых знаний. К тому же в стартапах не всегда есть возможность платить высокую зарплату, зато присутствует свобода принятия решений и больше простора для получения практического опыта. Высшее образование понадобится для того, чтобы расти в профессиональном смысле дальше. Фундаментальное образование помогает лучше понимать процессы разработки и принимать решения. Программисту нужен один основной навык: умение разбираться в процессах, раскладывать их на элементарные шаги и алгоритмы. Кроме того, ценится умение быть настойчивым и не сдаваться перед задачами, которые кажутся невыполнимыми. Второе — как раз то, что воспитывает высшая школа. Мы отдаем предпочтение специалистам с высшим образованием, но это не будет весомым фактором при принятии решения о найме. Мы с удовольствием пригласим на работу и программиста-самоучку, который имеет необходимый уровень опыта для решения наших задач. Вадим Мельников, технический директор сервиса путешествий «Туту.ру» Не буду категорично утверждать, что без высшего образования никак нельзя устроиться программистом и успешно работать. Но все же закончить вуз крайне желательно, причем именно технический. Я рекомендую идти учиться в МГУ им. М. В. Ломоносова, МФТИ, Бауманку, НГУ, СПбГУ. Есть, конечно, еще достойные вузы. Но это мой топ, и большинство наших сотрудников — из перечисленных вузов. Без такой базы сложно скреативить что-то новое. Высшее образование требует от четырех до шести лет обучения, и это более системный подход. Курсов такой продолжительности не бывает. Никто же не подумает идти работать хирургом после двухмесячного курса? А в чем разница? И у хирурга, и у программиста цена ошибки может быть высока. Программисты пишут не только игры или приложения для статистики тренировок, но и алгоритмы для управления системами курсовой устойчивости на машинах или теми же кардиостимуляторами. Поэтому одних курсов по программированию, на мой взгляд, недостаточно. Но есть и другая ситуация. Представим, у нас есть разработчик с 10-летним опытом, но он не учился в техническом вузе. Возьму ли я его на работу? Да не вопрос! Решение в пользу «брать» или «не брать» основывается на множестве параметров. Недостаточно просто прийти и принести диплом. Диплом — это не гарантия трудоустройства. При отборе кандидатов, безусловно, мы смотрим на баланс hard-скиллов и soft-скиллов. При этом hard-скиллы можно прокачать, хоть это потребует времени и денег. Если поразмышлять по этому поводу, то у программиста должен быть аналитический склад ума. Зачастую приходится принимать решения в условиях неполной информации, обобщать, делать допущения. Обязательна любознательность и желание узнавать что-то новое в нашей постоянно меняющейся отрасли, изучать причинно-следственные связи. Еще важно понимание, что программирование — это инструмент для решения пользовательских задач. А вот с soft-скиллами сложнее, они практически не прокачиваются. Это работа в команде, эмпатия, коммуникация, способность слышать и давать обратную связь, ориентация на клиента, позитивное отношение к жизни. Эмоциональный интеллект должен присутствовать обязательно. Сергей Шаров, CEO и сооснователь в ASOdesk.com Мы с партнером по бизнесу закончили московский Физтех, факультет инноваций и высоких технологий. Кроме того, однозначно можем рекомендовать Университет ИТМО — кузницу победителей международных олимпиад, ВМК МГУ, НГУ, МГТУ им. Баумана, ВШЭ. Для более детального изучения можно посмотреть мировые и локальные рейтинги, например, Times Higher Education по предмету «Computer Science» — особенно это актуально тем, кто ищет образование за рубежом. Конкретные курсы я не смогу посоветовать, но, по мнению нашего CTO, все слишком зависит от направления и начального уровня программирования. Можно посмотреть то, что на слуху — Coursera, Code Academy, GeekBrains от Mail.ru и курсы от «Академии Яндекса». Но, если честно, я не помню, когда в последний раз смотрел в чей-то диплом при трудоустройстве к нам в компанию. У нас, помимо отсева кандидатов по необходимому технологическому стеку, существует два этапа собеседования. Первый — оценка уровня необходимых знаний и умений в формате короткого тестирования. Второй — оценка личных целей и качеств человека для работы именно в нашей команде. Мы проверяем, насколько он заинтересован в долгосрочной работе, нацелен ли на результат и смотрим на его уровень ответственности и самостоятельности. Нам важен непосредственный опыт соискателя, его качества и мотивация к развитию, нежели «корочка», где написано, что человек — возможно — умеет. У нас в компании есть ребята на позициях middle back-end и middle front-end с бэкграундом бармена и аналитика в строительной компании. Они сами переквалифицировались в разработку и прошли необходимые курсы. В то же время мы отказывали кандидатам с непонятными для нас целями — не было уверенности, что человек проработает на одном месте больше года. Опять же, диплом или пройденные курсы не были аргументами в таких ситуациях. Анна Айрапетова, глава разработки p2b-платформы Penenza.ru На мой взгляд, курсов недостаточно, но неоконченное техническое высшее (с третьего курса) подойдет. В моей команде был разработчик, у которого было техническое образование (техникум). Он был «владельцем» самостоятельного отчуждаемого модуля. Это, скорее, исключение из правил, но в то же время и показатель того, что важно не высшее образование, а технический склад ума. Из вузов рекомендую МГТУ им. Баумана, МИФИ, МАИ. МГУ, как ни странно, не лучший в этом списке, по моему опыту. В целом, не имеет особого значения, какой вуз. Главное, чтобы он был техническим. Есть и, на мой взгляд, актуальные направления. Одно из них — дата-сайентисты. Потому что искусственный интеллект все больше привлекается для решения повседневных задач в разработке. Поэтому сейчас это самые секси-специалисты на IT-рынке. У меня есть, помимо образования, и общие рекомендации ко всем разработчикам. 33% успеха — это профессиональные навыки, то есть знание технологий и языков программирования. Сейчас очень многие смотрят в сторону open source-технологий, поэтому востребованы специалисты, пишущие на Python, GoLang, Java и имеющие опыт работы с базами данных Postgres, MongoDB, Redis, интерфейсами обмена данными KAFKA. Вторая треть — личностные качества. Дотошность, ответственность, вдумчивость, креативность, любознательность и интерес к новым технологиям. И да, коммуникабельность тоже важна, хотя и принято считать, что все разработчики интроверты. И, конечно, опыт! Евгений Кот, Frontend Team Lead, Wrike Если говорить про Санкт-Петербург, то сильными вузами считаются ИТМО, Политех, ЛЭТИ. Про курсы сказать труднее, их сейчас немало. Что касается фронтенд и экспертных сообществ, рекомендую сходить на несколько локальных митапов. Там можно познакомиться с экспертами и научиться многим вещам. Например, NodeSchool, PiterJS, PiterCSS, Spb-Frontend, а также наши регулярные митапы Wrike Tech Club. Но есть две стороны монеты: с одной стороны, образование как «корочка» без практических знаний абсолютно бесполезно. Кандидат, который ничему не научился ни в вузе, ни на курсах, вряд ли сможет принести пользу команде и компании. Но, безусловно, можно быть программистом и без какого-либо образования. Главное, чтобы было желание, причем достаточно сильное. Программирование — это не та специальность, которую можно освоить за неделю-другую. Однако в интернете представлены огромные базы материалов по всем предметам (например, та же Coursera) и зачастую их можно найти бесплатно. И вместо того чтобы тратить пять лет на изучение не совсем профильных предметов (я с ужасом вспоминаю философию и ОБЖ), можно концентрированно получать именно те знания, которые точно пригодятся на практике. Во Wrike мы, прежде всего, смотрим на навыки и самого кандидата, а не на то, что именно он закончил. Давно уже не существует такого понятия, как просто «айтишники», которые умели бы делать все на свете. Они остались вместе со свитерами, дискетами и ZX-Spectrum где-то в далеком прошлом. Сейчас есть разные типы программистов, которые делятся по направлению деятельности. Есть бэкенд, есть фронтенд. Есть мобильная разработка, но есть и те, кто работает с железяками. Везде разные требования. Если у фронтенда идет упор на визуальную составляющую (User Experience), то, например, у бэкенд-разработчика задачи лежат совершенно в другой плоскости. Но если попробовать составить портрет среднего программиста, то он обладет этими качествами: Способность быстро усваивать информацию и развиваться профессионально. В нашей отрасли нельзя один раз что-то запомнить и потом пользоваться полученными знаниями до скончания века. Моргнешь, и все. То, что ты когда-то знал и умел, уже становится неактуально. Способность строить сложные системы и просчитывать последствия решений на много шагов вперед. Это как со строительством дома: если фундамент плохой, то чердак не устоит. Но в отличие от дома программисту приходится учитывать тот факт, что заказчик может захотеть маленький гараж, причем в сжатые сроки. А потом передумать и решить, что все же хочет шикарный особняк. Если ты делаешь какой-то программный продукт, то приходится просчитывать план действий на месяц, полгода и год вперед. Усидчивость. Для того чтобы усвоить много информации или придумать что-то непростое, приходится подолгу сидеть на одном месте и медитировать над клавиатурой и монитором. Я бы вообще сказал, что программисту полезно уметь мечтать. Как писатель думает: «На герое была коричневая потертая шляпа», а затем рождается целая история. Программист из одного предложения бизнеса должен развернуть целый мир. Хотя порой все сводится к шляпе. Интерес к своему делу. Профессия у нас творческая, из-под палки много не накодишь. Ну, то есть можно, конечно, но разве это жизнь... Позитивное отношение. Это совет не только к программистам, но к профессии в целом. О нас ходят разные легенды, что программисты, мол, асоциальны и угрюмы. Это не так, будьте веселее! Артем Кротов, cтарший архитектор приложений в «Райффайзенбанке» Для того чтобы стать программистом начального уровня, оканчивать вуз необязательно — достаточно выучить один или несколько языков программирования. На рынке много игроков в области IT-образования, можно подобрать вариант под свои нужды и бюджет: онлайн-обучение, чтение профильной литературы, очные курсы, открытые митапы. Большое количество базовых курсов можно найти на «ИНТУИТ», Coursera, GeekBrains, курсы разного уровня есть в HackerU, которые предлагают также последующее трудоустройство. Однако тем, кто хочет стать по-настоящему первоклассным инженером, отсутствие базы — высшего технического образования — как раз может помешать. Конечно, вузовские программы подготовки инженеров не нацелены на получение передовых знаний и опыта в разработке ПО, но от академического образования этого и не требуется. Его цель – дать фундаментальные знания и научить быстро анализировать большие объемы информации. Это расширяет кругозор и помогает смотреть на задачи комплексно, видеть проблемы в разных плоскостях. Важно понимать, что диплом выпускника не гарантирует успех. При поиске наших будущих коллег мы в первую очередь ценим не «корочки», а непосредственно накопленный опыт, выполненные проекты и желание применить имеющиеся знания для развития в новых областях. Здесь, кроме профессиональных характеристик, обретают важность так называемые soft-skills: общительность, презентационные навыки, эмпатия. Сегодня программист не работает в одиночку — в компаниях разработка обычно ведется в командах, и результат во многом зависит от слаженности их работы. Поэтому кроме «типичных» для инженера навыков, таких как аналитическое и системное мышление, усидчивость, программисту в 2019-м еще требуются хорошие коммуникативные навыки. Они также пригодятся для обмена опытом на митапах или конференциях и для обсуждения сценариев использования ПО с пользователями. Чаще всего разработчики ПО обладают чертами интроверта, и это им помогает сконцентрироваться на решении сложных задач. Но это же мешает устанавливать новые профессиональные контакты и проявлять активность в сообществах. Студенту преодолеть этот барьер поможет участие в различных мероприятиях в качестве волонтера или организатора. Инга Герасименко, HR-директор «БАРС Груп» Одной из самых востребованных на сегодняшний день является профессия программиста. Нехватка специалистов в этой области настолько высока, что даже человек, не обладающий достаточным опытом работы, может легко найти себе место. Мы не всегда набираем программистов именно с высшим образованием. Основная причина в том, что сейчас в вузах на факультетах программирования образование практически ничего не дает. Оно предлагает лишь базу и понимание того, как это вообще работает. Но это не повод не идти в вуз. В Казани можно пойти учиться в КФУ, КХТИ хорошо готовит аналитиков, программистов — слабовато, но тем не менее. И еще не стоит упускать из внимания Техникум связи. Отличное заведение, для того чтобы прокачаться в современных языках программирования. Считается, что если ты неработающий студент второго курса, то, скорее всего, будешь невостребованным по выпуску. Поэтому, в любом случае,нужно подрабатывать, начиная со второго курса. Можно устроиться на полставки или работать стажером. Это обеспечит хороший бэкграунд к выпуску. Кроме того, необходимо развиваться самостоятельно. Есть хорошие онлайн-курсы, например: JavaRush, Otus, Ulearn.me, «ИНТУИТ», Microsoft Virtual Academy. Пройдя их, можно получить знания в современных языковых программах, но это снова будет база. Желательно искать именно практическое применение: выполнять задачи на freelance-сайтах, а также работать с модулями. Как ни странно, важно хорошо знать выбранный язык и начинать расширять свою базу по другим языкам. Допустим, если это back-язык программирования, то к нему обязательно нужно изучать ЕВА-скрипт. Кроме того, необходимо знать базу данных, иметь навыки в аналитике. Кстати, не стоит пренебрежительно относиться к стажировкам в вузе. Мы с удовольствием набираем стажеров, давая возможность поработать на серьезных проектах и получить бесценный опыт. Юрий Минкин, руководитель департамента разработки беспилотных транспортных средств Cognitive Technologies Диплом о высшем образовании сегодня все еще важен. И чем более значим университет, который окончил тот или иной кандидат на программистскую должность, тем выше его шансы при прочих равных условиях. Скорее, отсутствие диплома будет для нас определенным индикатором. Конечно, есть самородки, не имеющие высшего образования, которые прекрасно владеют навыками своей профессии. Но в Cognitive Technologies не было опыта, чтобы такие ребята стали team leaders, руководителями или архитекторами проекта. Как правило, это люди, развитые довольно однобоко, у которых нет комплексного подхода к решению задач и системного мышления. Такому человеку нужно крайне ярко блеснуть на собеседовании, чтобы на него обратили внимание. Я убежден, что для работы на позиции программиста необходима хорошая математическая подготовка и наличие фундаментальных знаний в области естественных наук, ИТ. Знание английского приветствуется, как и знание других европейских и азиатских языков. Мы тесно работаем с китайскими и японскими компаниями. Знание этих языков существенно повышает шансы кандидата, особенно, если он претендует на позиции, подразумевающие общение с заказчиком. Как показывает практика, в наибольшей степени наши ожидания, как работодателя, оправдывают выпускники МГУ, МФТИ, НИТУ МИСиС, МИФИ, Бауманки, а также ИТМО и СПбТУ. Материалы по теме: Работа в IT без диплома программиста: миф или реальность? С чего начать карьеру в IT? Возможно, вам подойдет именно этот вариант «Меня поразило то, что все работают из дома». Дети — о своих стажировках в IT-компаниях 20 выражений из IT-сленга, которые вам нужно знать Названы лучшие IT-компании в России Фото на обложке: Unsplash