Колонки

Нужен ли программисту диплом вуза или достаточно курсов? Мнение директора IT-компании

Колонки
Сергей Полуэктов
Сергей Полуэктов

Директор MediaSoft

Полина Константинова

С каждым годом появляется все больше курсов по программированию. Они привлекают быстротой обучения, узкой специализацией, упором на практику. Заманчиво, но вот вопрос: как далеко удастся продвинуться с таким образованием и не будет ли проблем при трудоустройстве?

Сергей Полуэктов, директор компании по разработке программного обеспечения MediaSoft, рассказал, как различается карьера дипломированных специалистов и разработчиков-самоучек.

Нужен ли программисту диплом вуза или достаточно курсов? Мнение директора IT-компании

Места хватит всем

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

На рынке труда им совсем не тесно. IT-сфера испытывает жесткий кадровый голод, поэтому все, кто способен хорошо писать код, находят себе работу. Но это не значит, что выпускники вузов и самоучки равны. У них есть как минимум три различия:

  1. сложность задач,
  2. размер зарплаты,
  3. особенности профессионального роста.

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

6-8 декабря 2019 пройдет хакатон Rosbank Tech.Madness. Нужно просто зарегистрироваться до 24.11 и ждать отбора. Описание идеи в заявке не требуется. 

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

Несмотря на их стремительное развитие, базовые принципы программирования во многом остаются прежними, и дипломированный программист может достаточно быстро восстановить свой уровень даже после пятилетнего перерыва в работе.

Занятия в академии MediaSoft. Фото: архив компании

Самоучкам в этом плане намного труднее. Они вынуждены идти не от общих принципов к частным выводам, а наоборот – на практике нащупывать многие связи и закономерности. Бывает, что разработчик-самоучка не знает, что такое интеграл, не говоря о более сложных вещах.

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

Специалисты с темным прошлым и светлым будущим

Среди сотни разработчиков, работающих у нас в компании, есть люди с классическим вузовским образованием, есть сотрудники с неоконченным высшим, есть выпускники технических колледжей, а есть более нестандартные случаи — как раз те самые самоучки.

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

Сейчас у него непререкаемый авторитет в компании, ему не раз предлагали руководящую должность, но он неизменно отказывается, потому что ему не интересно. Он хочет писать код, решать сложные задачи.

Другой наш разработчик, Андрей, учился в вузе на технической специальности, но был отчислен после первого семестра. Сменил несколько работ, даже «Газель» одно время водил. Потом друг показал ему программирование, и его затянуло.

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

После семинара в офисе MediaSoft. Фото: архив компании

Однажды к нам пришла довольно нетривиальная задача — сделать веб-сервис, который бы взаимодействовал с пользователями в реальном времени, поддерживая сотни тысяч подключений одновременно.

Клиент предлагал реализовать проект на языке PHP, но Андрей почувствовал, что здесь нужна другая технология, и не побоялся этим заняться. Быстро изучил лучшие практики для задач этого типа, развернул несколько тестовых образцов и в итоге выбрал язык Erlang. Время показало, что это был правильный выбор, заказчик оценил нашу рекомендацию.

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

Вообще далеко не все выпускники вузов способны к работе по специальности, и это справедливо не только для IT. В каждом институте, на каждом курсе есть так называемые «пассажиры», которые учатся средне и к профессии большого интереса не испытывают. Когда я учился (Ульяновский государственный технический университет, кафедра «Вычислительная техника»), на нашем потоке таких было около 30%.

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

Быть, а не казаться

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

Абстрактное мышление

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

Признаки того, что у вас больше развито абстрактное, а не конкретное мышление:

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

Алгоритмическое мышление

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

Чемпион мира по шахматам Анатолий Карпов в MediaSoft. Фото: архив компании

Коммуникабельность

Даже небольшие проекты, как правило, не делаются в одиночку, поэтому разработчику необходимо уметь работать в команде: учитывать не только свои, но и чужие действия, объективно оценивать и принимать чужие идеи, не бояться попросить помощи.

Есть мнение, что большинство программистов — интроверты, замкнутые и погруженные в себя люди, которые не любят общаться. На самом деле, это не так.

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

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

Усидчивость

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

Почему курсы не заменят высшее образование

По своему смыслу и результату курсы сильно отличаются от вузов. Образовательных стандартов здесь как таковых нет, а учебные программы разрабатываются исходя из востребованности у аудитории. Это справедливо как для платных, так и для бесплатных курсов.

Здесь обучают максимально прикладным вещам, которые можно быстро монетизировать.

Именно поэтому на рынке так много курсов «Как научиться делать типовые сайты за один день» и нет курсов, например, про теорию графов и другие фундаментальные вещи — на них просто никто не придет, потому что они не позволяют сразу начать зарабатывать.

Относительно курсов я бы дал три совета.

Начинать свой путь в программировании с курсов — не лучшая идея

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

Разработчики на новогоднем корпоративе. Фото: архив компании

Выбирать курсы нужно не по вывеске, а по содержанию

Качество курсов сильно зависит от уровня преподавателей, поэтому лучше идти туда, где преподают программисты-практики — люди, которые 90% времени работают непосредственно в той предметной области, о которой рассказывают, и имеют актуальные кейсы.


Вуз все-таки предпочтительнее

Если есть возможность пойти в вуз на ИТ-специальность, а не на курсы, лучше выбрать вуз. В будущем это обеспечит более высокую заработную плату (за счет способности решать более сложные задачи, конечно, а не по факту самого диплома) и более легкое освоение нового материала.

Уже работающим программистам — и с дипломом, и без — для повышения квалификации можно посоветовать посещение профильных мероприятий, где разбирают практические кейсы: DevConf, конференцию разработчиков высоконагруженных систем HighLoad++ и некоторые другие.

***

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

Обращают ли работодатели внимание на уровень образования соискателя? Несомненно. Но не для того чтобы указать программисту без диплома на дверь, а для того, чтобы дать ему подходящие задачи.

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

Спасибо за внимание и успехов в карьере!


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

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

Актуальные материалы —
в Telegram-канале @Rusbase

ПРОГРАММЫ И КУРСЫ

13 ноября 2019 — 29 января 2020

Performance-маркетинг для бизнеса

16 ноября 2019

Website Optimization

18 — 20 ноября 2019

INTR: Основы Hadoop