Нужно ли программисту высшее образование?
ITVDN: курсы программирования
Видеокурсы по
программированию

Выбери свою IT специальность

Начать бесплатно
ITVDN logo
Видеокурсы по
программированию

Выбери свою IT специальность

Начать бесплатно

Хочешь больше?

Смотри бесплатно:

Как прокачать английский для собеседования в IT-компанию

Из Сибири в Кремниевую долину. Личный опыт

Как стать Java разработчиком

Хочешь больше?

Смотри бесплатно:

Как прокачать английский для собеседования в IT-компанию

Из Сибири в Кремниевую долину. Личный опыт

Как стать Java разработчиком

Здравствуйте, дорогие читатели блога ITVDN!

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

Давайте не будем тянуть с лирическим отступлением и сразу приступим к поиску информации, а также к расстановке всех точек над “i” в обсуждениях “нужно ли программисту высшее образование?”.

Статистика DOU и Stack Overflow

Прежде всего узнаем, как обстоят дела с высшим образованием у тех, кто сейчас занимается разработкой. Для этого обратимся к опросу Stack Overflow Developer Survey 2020, который в этом году собрал 65 000 анкет.

Если верить данному источнику, 75% респондентов имеют как минимум степень бакалавра. Выходит, что примерно каждый четвертый разработчик без диплома. Из тех опрошенных, что профессионально пишут код и при этом учились на уровне университета, более 62% имеют степень в области компьютерных наук, компьютерной либо программной инженерии, и лишь около 10% имеют степень в другой инженерной сфере. Примечательно, что почти 10% респондентов имеют степень, связанную с бизнесом, гуманитарными науками либо изящными искусствами.

Также, почти 85% опрошенных из числа профессиональных разработчиков считают, что формальное образование хотя бы мало-мальски является важным. Однако, почти 16% верят, что высшее образование и вовсе лишнее.  

Теперь обратимся к портрету IT-специалиста по итогам 2020 года от DOU. Вся инфографика составлена на основании 12 419 анкет. Анализируя раздел “Образование и саморазвитие”, можно сказать следующее: кто бы что ни говорил о высшем образовании, но у большинства IT-специалистов есть оконченное высшее образование, а у некоторых — даже два. Две вышки преимущественно у Senior PM, а максимальное число кандидатов наук у специалистов Data Science, которым требуется сильная математическая база для выполнения должностных обязанностей (ее они и получают в вузах). Меньше всего окончивших высшее учебное заведение припадает на Junior разработчиков ПО. Это и не мудрено — большинство получают свою первую должность в IT еще будучи на студенческой скамье.

Таким образом, как отечественная, так и зарубежная статистики показывают, что преимущественное количество профессиональных разработчиков все-таки имеют диплом. Отнюдь, это вовсе не означает, что на работу в области IT они попали исключительно благодаря знаниям, полученным в вузе. Тот же опрос от Stack Overflow, только за 2019 год, показал, что более 86% опрошенных самостоятельно изучали необходимый им язык, фреймворк или другой инструмент разработки.

Хотя в опросе 2020-го года не было такого же пункта, мы уверены, что статистика самоучек на текущий год не сильно поменялась и плюс-минус тот же процент сохранился до сегодняшнего времени. Выходит интересная коллизия: если подавляющее большинство заканчивало (либо заканчивает в данный момент) вузы, то почему эти же студенты/выпускники самостоятельно изучают то, что им надо в работе? Чему обучают в университетах в таком случае? Давайте разбираться.

Что происходит в технических вузах на “айтишных” направлениях?

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

Отвечаем на вопрос этого раздела: в университетах достаточно неоднозначное положение вещей. Все спорные моменты мы представим в виде списка:

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

Мы не будем поднимать тему, какие дисциплины действительно важны для программистов, а какие имеют сомнительную ценность, однако факт остается фактом: очень часто учащиеся возмущены наличием филологических предметов, таких как: история, философия, менеджмент, право, история культуры и другими. Похожие ситуации возникают и с техническими направлениями. Допустим, студент ожидал обучения программированию на C# и других высокоуровневых языках; на деле же на “шарпы” припадает семестра 3, а на следующих курсах приходится работать с низкоуровневым Ассемблером и писать программы под логические контроллеры при помощи ST, FBD и SFC, которые часто используются для автоматизации производственных процессов. У каждого университета свои учебные программы, но подобные расхождения ожиданий и реальности встречаются везде.

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

Первое, что стоит иметь ввиду: ни в одном отечественном вузе из вас не сделают, к примеру, современного .NET разработчика, либо DevOps инженера. Помимо того, что сами программы обучения устаревшие лет на 10 (в лучшем случае), их иногда ведут седовласые старожилы кафедр, которые зачитывают материал из книг эпохи Горбачева. И они не собираются обновлять учебную программу, поскольку вникать в новые технологии для них не комильфо.

Также, иногда бывает, что такой преподаватель не прочь поучить вас жизни, либо попросту нивелировать как личность. Слышали истории о том, как студенты до ночи защищали лабораторные/расчетные работы? А о том, как некоторым просто невозможно сдать предмет, который даже близко не нужен программистам?

Безусловно, встречаются и вполне лояльные, добрые и приятные преподаватели, но на каждой кафедре вы найдете такого человека, от которого вас будет хватать Кондратий. Хотите ли вы несколько семестров (а то и весь срок обучения) провести в компании такого человека?

Относительно молодые программисты-преподаватели, которые занимаются разработкой на коммерческой основе, конечно, встречаются, и с каждым годом их все больше и больше, однако и среди них найти толковых лекторов — та еще задача. Зачастую такие преподы просто садятся за ноут, включают проектор, кодят (проецируя все на доску) и что-то комментируют, пока остальные сидят и 1.5 часа смотрят. Да, это лучше, чем те же великовозрастные преподаватели с мелом в руках. Но просто кодинга недостаточно. Студенты тоже люди; им нужна оживленная подача материала от интересного лектора, который умеет приковывать к себе и к своему коду внимание. Крутой программист, который умеет кодить, но не умеет доносить до остальных свои действия здесь лишний.

Если нас читают лекторы-программисты более-менее известных вузов, которые при этом не пользуются популярностью у своих студентов, призываем их задуматься над своими методами подачи материала. Хороший программист не одно и то же, что хороший преподаватель. Если человек умеет грамотно преподносить материал, у него будет меньше проблем с посещаемостью и дисциплиной, а также больше позитивного фидбека от студентов. Преподавательство (от слов “преподать”, “преподавать”) — это навык донесения информации, и его необходимо развивать, над ним надо работать.

  1. Выбирая обучение в университете, стоит учитывать, что он ориентирован на самостоятельную работу студентов. Считается, что 80% учебного времени учащиеся должны уделять самостоятельному изучению предмета, а оставшиеся 20% возлагаются на лекции преподавателей.

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

Тонны лабораторных и расчетно-графических работ — неизменные спутники каждого студента-технаря, в том числе и студента-программиста.

  1. Главные движущие силы технического университета — необходимая для работы “корочка”, ожидания и надежды членов семьи, а также армия. Впрочем, данный пункт подойдет для всех. Это ни для кого не секрет, но все же пускай и эта фраза прозвучит.

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

Вес диплома

В украинских IT-компаниях зачастую требуют хотя бы диплом неоконченного высшего образования либо, чтоб кандидат был на пути к его получению. Однако, это не означает, что без диплома вас не примут в ряды разработчиков, просто у каждой компании своя политика, а чем крупнее компания, тем солиднее запросы по отношению к претендентам. Более того, диплом на собеседовании — это формальность, галочка. На деле же вы будете проходить тестовые задания и отвечать на технические вопросы, так что даже красная “корочка” фактически ничего не решает.

Если говорить о развитых странах, то там все серьезнее. Учеба в высших учебных заведениях тяжелее и диплом действительно играет более значимую, нежели у нас, роль. На тех, кто закончил вуз, работодатель и смотрит-то по-другому, с уважением и признанием. Довольно часто иностранные компании вне зависимости от навыков и опыта требуют наличие диплома бакалавра либо, как минимум, чтоб вы на момент рассмотрения резюме находились на старших курсах вуза. Более того, диплом упрощает процесс получения рабочей визы, без которой вы не сможете отправиться работать программистом, например, в европейских государствах или США.

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

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

Чему учат в вузах?

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

  • Алгоритмы и структуры данных
  • Алгоритмическое программирование
  • Программирование на популярных языках (C/C++, C#, Java, Python)
  • Веб-программирование
  • Компьютерная графика
  • Дискретная математика
  • Высшая математика
  • Компьютерные сети
  • Базы данных
  • Теория информации и кодирования
  • Криптография
  • Операционные системы
  • другие дисциплины

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

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

Конечно, на Западе существуют такие вузы, где вы сможете пройти хорошее профильное обучение. Например, факультет Informatics, Games Engineering in Technical University Of Munich (Германия). За рубежом осознают важность IT-индустрии и стараются соответствовать новым тенденциям, а не просто пичкать вас “вечной классикой”. Поэтому факультет разработки компьютерных игр — норма для развитых стран.

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

Есть один бонус от вузов, о котором мы чуть не забыли. Многие отечественные университеты имеют программы сотрудничества с заграничными университетами. Таким образом, обучаясь на родине у вас есть возможность стать участником такой программы и перебраться за границу ради получения европейского образования. Круто, не правда ли? =)

Кому нужна вузовская математика и в каком объеме?

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

Ответ — нужна. Однако, есть один приятный момент: каждому разработчику математика нужна в разной степени. Если вы хотите работать в качестве FrontEnd разработчика (создание клиентской стороны веб-приложений), то математика вам потребуется в меньшей степени, нежели для C# / .NET разработчика, который, например, занят разработкой корпоративных решений. Вузовский матан незаменим для тех, кто собирается связать свою профессиональную деятельность с наукой, шифрованием, Data Science, машинным обучением, искусственным интеллектом и всем, что связано с большими объемами данных.

Для криптографических задач вам потребуется общая и линейная алгебра. В 3D-моделировании не обойтись без геометрии и механики. Для работы в большими массивами данных необходимы статистика, теория вероятностей, линейная алгебра. Биоинформатика требует знаний в области дискретной математики и статистики. Так можно перечислять множество IT-направлений.

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

Зачастую IT не требует глубоких познаний и необходимый мат. аппарат ограничивается начальными курсами университета (теория множеств, графов, автоматов, алгоритмы, базовая логика) + стандартная школьная программа (куда же без нее?).

Василий Кобзарь, преподаватель GeekBrains, который специализируется на администрировании Linux, имеет прекрасный ответ на вопрос “насколько программисту нужно знание математики в работе?” (источник):

Если математика будет являться предметной областью, то знать её потребуется настолько хорошо, насколько это нужно для решения задачи. Однако, вопрос, видимо, поставлен для общего случая, и связан с бытующим мнением. Программисту хорошо было бы разобраться с логикой и абстрактной алгеброй, которые не преподаются ни в школе, ни в большинстве вузов. Также не помешают матстат и дискретка. Матан по большей части бесполезен, так же как и, скажем, тригонометрия. В общем, полезна та часть математики, что «ум в порядок приводит», а знание любых формул наизусть только забивает голову”.   

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

Рейтинг украинских вузов

Если говорить об Украине, то согласно тому же dou.ua, в первую десятку топовых технических образовательных учреждений, в которых есть IT-специальности, в 2019-м году попали:

  1. Национальный университет “Киево-Могилянская академия” (НаУКМА).
  2. Украинский католический университет (УКУ).
  3. Черноморский национальный университет имени П. Могилы (ЧНУ им. Петра Могилы).
  4. Харьковский национальный экономический университет имени С. Кузнеца (ХНЭУ им. Кузнеца).
  5. Донецкий национальный университет имени В. Стуса (ДонНУ им. В. Стуса).
  6. Харьковский национальный университет радиоэлектроники (ХНУРЭ).
  7. Сумской государственный университет (СумГУ).
  8. Киевский национальный университет имени Т. Шевченка (КНУ им. Шевченка).
  9. Черновицкий национальный университет имени Ю. Федьковича (ЧНУ им. Федьковича).
  10. Львовский национальный университет имени И. Франка (ЛНУ им. Франка).

В опросе приняло участие 3038 студентов и выпускников украинских “вышей”. Таким образом, рейтинг вышел народным. Он был составлен на основании различных аспектов обучения в университете.

В 2020-м году DOU и другие украинские информационные ресурсы не публиковали подобные исследования, поэтому довольствуемся прошлогодним рейтингом.

Согласно данному рейтингу, 69.2% опрошенных все же советуют получить высшее образование в украинском вузе. Из них почти 16% рекомендовали бы отучиться в другом отечественном заведении, отличном от того, где респонденты сами получают/получали “вышку”, а 12% предпочли бы выбрать иную специальность/факультет. При этом почти каждый четвертый (24%) считает, что получать диплом надо только за границей. По мнению этих респондентов, за пределами страны качество образования лучше. Также, их привлекает опыт жизни и работы в другой стране. При этом 5.6% опрошенных были категоричны и выступили против получения высшего образования в принципе.

Стоимость обучения в вузах

Для выяснения данного вопроса, пройдемся по самым престижным украинским заведениям, а затем по вузам, которые занимают второстепенные позиции.

Для начала возьмем стоимость контрактного обучения в КПИ на IT направлениях. Самой дешевой по цене на данный момент является специальность “Компьютерные науки” — 25 900 грн за год очного обучения на бакалавриате. Чуть дороже стоит “Кибербезопасность”, однако есть специальности и подороже: “Компьютерная инженерия”, “Инженерия программного обеспечения”, “Информационные системы и технологии” оцениваются в 33 300 грн.

Возьмем на рассмотрение НаУКМА. “Компьютерные науки” и “Инженерия программного обеспечения” стоят 50 000 и 48 000 грн соответственно за год обучения на бакалавриате.

В КНУ им. Шевченка ситуация следующая: те же специальности, что были перечислены выше, оцениваются в 36 700 грн за год очного обучения на бакалавриате.

Перейдем к вузам, которые достигли меньших высот, нежели рассмотренные предшественники. На очереди у нас НАУ. “Компьютерные науки и информационные технологии” — 23 000 грн,  “Инженерия программного обеспечения” — 29 000 грн, “Компьютерная инженерия” — 28 000 грн, “Кибербезопасность” — 24 000 грн, “Информационные системы и технологии” — 26 000 грн.

Национальный транспортный университет. За “Инженерию программного обеспечения” и “Компьютерные науки” придется отдать 17 200 грн. Год обучения на очном отделении, естественно.

В СумГУ за “Кибербезопасность” и “Компьютерные науки” с вас возьмут 18 800 грн.

Ценовой разброс довольно неплохой — примерно от 17 тысяч и до 50. Причем это не обязательно граничные значения. Мы рассмотрели лишь несколько университетов, а ведь их сотни и у каждого свой устав. Но даже с этого списка можно делать соответствующие выводы.

Если сравнивать стоимость обучения в вузах с курсами по программированию, то получается, что курсы гораздо выгоднее. На курсах вы потратите примерно 15-25 тысяч на освоение IT-специальности, зато через полгода сможете работать на должности Junior разработчика и с легкостью отобьете всю ту сумму, которая была потрачена на обучение. В универе же вы потратите минимум 4 года и на выходе получите такой набор знаний, который недостаточен для работодателя. Все равно придется обращаться к посторонним ресурсам (книги, курсы, онлайн-ресурсы и т. д.) и заниматься самообразованием, чтобы дотянутся до требований той или иной компании.

Итоги

Итак, в ходе поисков ответа на вопрос “нужно ли программисту высшее образование?” нам удалось много чего выяснить. Разобьем главные тезисы на “за” и “против”.

“За” обучение в вузе:

  • большинство профессиональных программистов имеет высшее образование, а также рекомендует другим получить диплом
  • некоторые компании требуют наличие диплома у кандидатов на обязательной основе; это же касается некоторых видов IT-профессий (биоинженерные разработки и т. д.)
  • вузы по айтишным направлениям учат основам почти всего, что связано с IT
  • высшая математика в вузе очень важна для тех, кто собирается связать свою профессиональную деятельность с наукой, шифрованием, Data Science, Big Data, машинным обучением, искусственным интеллектом и всем, что связано с большими объемами данных
  • диплом помогает в получении визы и руководящих должностей в IT
  • обучаясь в отечественном вузе, можно стать участником программы обмена студентами и выехать на учебу на Запад
  • обучение на курсах нельзя назвать дешевым
  • отсрочка от армии
  • вуз — неплохой выбор, если вы хотите идти в науку

“Против” обучения в вузе:

  • диплом скорее нужен для “галочки”, все равно вас будут тестировать на собеседовании и проверять ваши умения и навыки
  • главные движущие силы технического университета — не навыки и знания, а необходимая для работы “корочка”, ожидания и надежды членов семьи, а также армия
  • многие учебные программы в образовательных учреждениях на IT-направлениях устаревшие
  • вузы по айтишным направлениям учат только основам
  • за год очного обучения в более-менее приличном вузе надо будет заплатить не менее 25 тысяч
  • чтобы устроится программистом в IT-компанию, вам необходимо доучиваться после университетского образования

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

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

Увы, но как средство изучения конкретного IT-ремесла университет нельзя рассматривать, зато все побочное, что связано с ним, сделано на пристойном уровне. Студенческая романтика, незабываемая жизнь в общаге, ярмарки вакансий, программы сотрудничества универов с престижными IT-компаниями (курсы и интернатуры), программы сотрудничества с иностранными вузами и т. д. Именно эти плоды вы должны собирать во время учебы в вузе.

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

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

 

Если у вас появились замечания либо пожелания к статье, смело оставляйте их в комментариях.

Оставайтесь с ITVDN!

КОММЕНТАРИИ И ОБСУЖДЕНИЯ
СТАТЬИ ПО СХОЖЕЙ ТЕМАТИКЕ
ВИДЕО КУРСЫ ПО СХОЖЕЙ ТЕМАТИКЕ

Пакеты подписки с доступом ко всем курсам и сервисам

Стартовый
  • Все видеокурсы на 3 месяца
  • Тестирование по 6 курсам
  • Проверка 5 домашних заданий
  • Консультация с тренером 30 мин
Базовый
  • Все видеокурсы на 6 месяцев
  • Тестирование по 8 курсам
  • Проверка 10 домашних заданий
  • Консультация с тренером 60 мин
Премиум
  • Все видеокурсы на 12 месяцев
  • Тестирование по 16 курсам
  • Проверка 20 домашних заданий
  • Консультация с тренером 120 мин
169.99 $
Подписка
Notification success