Эта статья — ответ на публикацию "Что же не так с IT-образованием в России", а точнее, даже не на саму статью, а на часть комментариев к ней и идеи, в них прозвучавшие.
Я сейчас выскажу, наверное, очень непопулярную здесь на Хабре точку зрения, но не высказать я ее не могу. Я согласен с автором статьи, и считаю, что во многом он прав. А вот к подходу «чтобы быть рядовым разработчиком, не нужно учиться в вузе, это уровень ПТУ», который тут многие пропагандируют, у меня есть ряд вопросов и возражений.
Во-первых
… во-первых, давайте допустим что это действительно так, ВУЗ — фундаментальные знания чтобы заниматься наукой и решать сложные нестандартные проблемы, а всем остальным нужен ПТУ/техникум, где их научат основам технологий и популярным инструментам. Но… здесь есть одно НО… Точнее, даже 3 «НО»:
— отношение к людям без ВО в обществе: если у тебя только среднее или средне-специальное образование, значит ты лох, а еще наверное и алкаш и наркоман. Всякие народные поговорки про «не учился — так ворочай, <вырезано цензурой> рабочий» пошли именно оттуда.
(результаты поиска по картинкам по запросу «птушник» как бы намекают)
Бред, на самом деле, но учитывая, что многие 17-летние выбирают свой путь в этом возрасте под сильным давлением родителей и родственников советской и постсовесткой закалки, это актуально.
— Работодателям для успешного решения их бизнес-задач хватит человека из ПТУ/техникума, но при этом они требуют диплом о высшем образовании. Особенно если это не чисто-IT контора, а что-то смежная (типа инжиниринговой фирмы, госучреждения, и т.д.) Да, подвижки есть, многие адекватные и прогрессивные IT-компании не требуют, но вот когда в твоем небольшом городе особо нет адеватных и прогрессивных компаний, или в них не так-то просто попасть, то чтобы попасть хоть куда-нибудь и набраться первоначального опыта, диплом может оказаться нужен.
— Проблемы с трактором, вытекающие из предыдущего пункта. Ты хочешь поехать работать в другую страну, у тебя уже есть оффер от работодателя, который готов тебя взять на хорошую зарплату (и ему вполне хватает твоих прикладных знаний из ПТУ), но миграционное законодательство очень многих стран (типа европейской системы blue card) очень сильно осложняет этот путь людям без диплома о высшем образовании.
Что мы имеем в итоге: для работы достаточно образования ПТУ/техникума, но для жизни диплом о ВО все-таки нужен. При этом, прикладные и практические знания тебе в вузе не дадут, как хорошо описано в этой статье, а в ПТУ тебе не дадут диплом вуза. Замкнутый круг.
Во-вторых...
Идем дальше, пункт два, объясняющий, откуда взялись проблемы пункта один.
«Прикладным и практическим знания тебя научат в ПТУ/техникуме, а вузе у тебя будет фундаментальная база для сложных и нестандартных задач» — это в идеальном мире, а мы, увы, живем в неидеальном. Много ли вы знаете ПТУ или техникумов, где действительно «с нуля» готовят, например, фронтенд-, бэкенд- или мобильных разработчиков, давая им все актуальные и востребованные в наше время знания? Чтобы на выходе прямо получался крепкий такой джун, готовый работать в реальных проектах? Может, конечно, и есть, но, наверное, очень немного, я ни одного не знаю. Эту функкцию очень хорошо выполняют курсы разных образовательных центров в сотрудничестве с ведущими технологическими компаниями, но на те, что бесплатные, со стипендией и последущим трудоустройством, попасть часто очень трудно и количество мест там сильно ограничено, а остальные могут стоить очень недешево.
А с ПТУ и коллежами, увы, всё плохо. Может быть, это следствие общей деградации системы образования в стране (сомнительные реформы, низкие зарплаты, коррупция, и т.д.) и проблем в экономике и промышленности (загибающиеся заводы и сокращение производства), но факт в том, что в итоге в ПТУ и техникумы в наше время идут те, кто очень плохо сдал егэ, дети из неблагополучных семей, и т.д., и образование там на соответствующем уровне, и в итоге работодатели не видят особой ценности в выпускниках ПТУ и техникумов (ну, кроме чисто рабочих специальностей), но при этом считают, что если человек закончил вуз (особенно хоть сколь-менее приличный), то он все-таки не совсем дурак, и кое что знает. Поэтому и студенты, и работодатели все-таки надеятся, что после вуза выпускник будет обладать актуальными и востребованными знаниями, но вуз эту функцию не выполняет, о чем и была та статья.
Ну и в третьих.
А действительно ли вуз должен давать только фундаментальные знания, при этом будучи оторванным от практики?
А давайте посмотрим на не-IT специалистов. Например, на инженеров, специалистов по трубопроводам (мне действительно стало интересно, и я поговорил с моей младшей сестренкой, недавно закончившей вуз по этой специальности и начавшую свой трудовой путь в НИПИ). Специалисты по трубопроводам должны на выходе после обучения уметь делать вполне конкретные вещи: проектировать нефтегазовые трубопроводы :) И поэтому им дают не только фундаментальные знания, типа гидравлики, сопромата, теплотехники, физики и химии жидкостей и газов, но и прикладные: использование конкретных методов для расчета параметров и напорных характеристик труб, расчет и подбор теплоизоляции, способы перекачки нефтей разной вязкости и разных видов газов, устройство и виды разных компрессорных станций, насосов, задвижек, клапанов и датчиков, типовые проекты трубопроводов для разных применений, методы увеличения пропускной способности, оформление конструкторской документации (с практическими занятиями в каких-то САПРах) и т.д. И в итоге их основными рабочими задачами будет не изобретение новых видов труб и насосов, а подбор и интеграция готовых компонентов, и расчет характеристик всего этого, чтобы уложиться в техническое задание, обеспечить удовлетворение требований заказчика, надежность, безопасность и экономическую эффективность всего этого. Ничего не напоминает? Если заглянуть в другие специальности, типа электроэнергетики, систем связи и телерадиовещания, и даже промышленной электроники — там все будет то же самое: базовые теоретически знания + прикладные практические. Но именно про IT-область почему-то говорят «вам никто в вузе не будет давать необходимое для практике, идите в ПТУ». А разгадка проста…
Отмотайте время на несколько десятков лет назад, года так в 50-60-е и посмотрите на IT-отрасль. Компьютер тогда был ни чем иным как «большим калькулятором» и использовался в основном учеными, инженерами и военными для математических расчетов. Программист тогда должен был хорошо знать математику, поскольку или сам был по совместительству математиком, или просто должен был хорошо понимать, что за формулы и закорючки ему принесли математики, на основе которых нужно написать программу расчета. Он дожен был хорошо и глубоко знать стандартные алгоритмы, в том числе довольно низкоуровневые — потому что стандартных библиотек или нет вообще, или есть, но очень куцые, все приходится писать самому. Он должен быть по совместительству еще электроником и электротехником — потому что скорее всего на его плечи ляжет не только разработка, но и обслуживание машины, да и часто приходится разбираться, программа глючит из-за бага в коде, или из-за того что где-то контакт отошел (вспомните, откуда вообще появилось слово «bug», ага).
А теперь наложите это на учебные программы вузов и получите почти полное попадание: существенное количество математики в разных ее видах (большая часть из которой разработчику в реальной жизни скорее всего не пригодится), куча не-айтишных «прикладных дисциплин» разных предметных областей (в зависимости от специальности), «общеинженерные» дисциплины (в учебном стандарте написано «инженер», значит должны быть!), всякие «теоретически основы чего-нибудь там», и т.д. Разве что вместо ассемблера, Алгола и Форта расскажут про Си и Python, вместо организации структур данных на магнитной ленте расскажут про какую-нибудь реляционную СУБД, а вместо передачи по токовой петле расскажут про TCP/IP.
А все остальное почти не поменялось, при том что, напротив, сама IT-отрасль, технологии, и самое главное — подходы к разработке и проектированию ПО за эти годы изменились существенно. И тут дальше уже будет как повезет, если у вас будут прогрессивные преподаватели с реальным опытом современной промышленной разработки ПО — они вам уже «от себя» дадут реально актуальные и нужные знания, а если нет — то нет, увы.
На самом деле, подвижки в хорошую сторону тоже есть, например, некоторое время назад появившаяся специальность «Программная инженерия» — учебный план там подобран вполне грамотно. Но студенту, в свои 17 лет, выбирающему, где и как учиться, вместе со своими родителями (которые могут быть очень далеки от IT), увы, во всем этом не разобраться…
Какое заключение? А заключения не будет. Зато, предвижу, снова будет бурная дискуссия в комментах, куда уж без этого :)
Автор: Саша К.