«Лёшу учат писать код, но не программы». Заочник БГУИР о багах системы
На прошлой неделе прозвучала команда «встряхнуть вузы», а то они «закостенели до неимоверности».
Понятно, что вряд ли это «встряхивание» выйдет за рамки идеологического и приобретет форму, например, актуализации программ и подходов. Тем не менее, мы спросили у студентов и выпускников техвузов, где искать реальное «закостенение». Получили много острых реакций — скоро выйдет большой материал.
А пока публикуем самый насыщенный монолог.
Арсений — заочник БГУИР и Senior Software Engineer:
(имя изменено)
— Диплом специалиста я получил довольно давно (и по гуманитарному профилю). Программированию учился самостоятельно, и уже не первый год работаю по своей новой специальности.
В БГУИР пришёл, имея уже достаточный опыт работы в качестве программиста. Достаточный для того, чтобы большинство преподавателей избегало со мной разговора по существу изучаемого предмета, стыдливо оправдываясь. Благо что и возраст мой заставляет их вести себя со мной более менее на равных.
Как «пользователь» могу сказать, что качество образования в БГУИР очень низкое. Радует, что я учусь на заочке и меньше времени теряю впустую. Программы очников и заочников не отличаются ничем, экзамены одинаковые, предметы, сроки обучения и требования — те же. Иногда за семестр надо сдать чуть меньше лаб, чем очникам, но далеко не всегда.
Недостатки образования, на мой взгляд, следующие.
1. У преподавателей в основном нет практического опыта.
Самая существенная проблема — технологии преимущественно преподаются людьми, не имеющими опыта практической работы с этими инструментами или практического опыта за пределами университета вообще.
Человеку, который за свою жизнь не видел исходный код приложения, не считая курсовых проектов своих студентов, непросто объяснять паттерны асинхронной коммуникации и давать своим ученикам какой-нибудь message broker.
Преподаватель не может объяснить, как пользоваться тем или иным инструментом, потому что сам не понимает, какую проблему этот инструмент решает. Ведь чтобы столкнуться с этой проблемой, надо быть профессиональным программистом, а не преподавателем. Hello World из туториала он дать, конечно, может (как правило), но вот комплексного понимания проблемы у преподавателя за редким исключением нет.
Конечно, качество преподавания конкретной отдельно взятой дисциплины зависит от отдельно взятого преподавателя, но в среднем по больнице пациент скорее мёртв, чем жив.
Разумеется, все можно выучить самому. Но в таком случае у меня вопрос, а зачем эти люди получают зарплату?
2. У связанные дисциплин — несогласованные между собой программы, а их преподаватели не коммуницируют друг с другом про общие задачи.
И даже если преподаватель — настоящий энтузиаст, работающий в универе на полставки сеньор или тимлид, то всё равно есть и другая проблема, которую он в рамках своей дисциплины преодолеть не сможет — учебная программа.
И я говорю не о перечне тем конкретной дисциплины (преподаватели обладают достаточной автономностью, чтобы протащить в свой предмет что угодно без лишних заморочек — было бы желание и понимание что надо тащить). Я говорю об учебной программе целиком.
На первый взгляд, если изучить учебный план любой технической специальности, программа вроде бы составлена логично и последовательно. Но это только, если не копать глубоко. А так, посмотреть на названия предметов и предположить, что люди, которые читают эти лекции, хоть раз в жизни обсуждали между собой, кого и чему они учат и чему же должны научить.
А упомянутые выше пять дисциплин по одному языку программирования вообще три раза заставляют студентов проходить один и тот же наиболее популярный в этой экосистеме фреймворк.
И не то что бы это некий итеративный подход со все большим погружением на каждом проходе — совсем нет. Ребята просто три раза учат Hello World и делают одни и те же действия, полезность которых стремится к нулю. Складывается такая ситуация потому что преподаватели каждой из дисциплин никак не взаимодействуют между собой и вставляют в свой предмет то, что считают нужным, возможно даже руководствуясь самыми лучшими побуждениями. Но вот получаем мы то, что получаем.
Хотя возникает вопрос, а может ли кто-то из них в самом деле сказать, что действительно должен знать и уметь некий Junior/Middle {название технологии} Software Engineer, чтобы быть востребованным на рынке?
3. В итоге низкий уровень подготовки студентов, которых учат писать код, но не программы.
Об уровне подготовки студентов я могу судить по собеседованиям, на которые приходит множество вчерашних студентов БГУИР.
И абстрактный Александр, может, и не знает, как выглядят в глаза системные вызовы операционной системы, но это его в целом роднит с 95% других в том числе опытных Python/Java/JS-… программистов, войти в число которых он и стремится. Да и код писать он будет, как ни странно, лучше, чем его конкурент из БГУИР.
Резюме
Подводя итог, могу обобщить:
- Преподаются (часто) предметы людьми, которым самим не помешало бы их подучить или хотя бы посмотреть, как эти вещи применяются в реальной жизни (хотя бы раз).
- Учебные программы составлены бессистемно, несогласованно между собой и без учёта реальных потребностей рынка, на который мы выпускаем (выталкиваем) студентов.
- Студентов учат писать код, но не учат писать программы, так же как и нет погружения в глубину — большинство предметов заканчиваются на работах уровня Hello World.
Идеология
С идеологией и прочим я вообще не столкнулся. Возможно, потому что заочка. Но наслышан о том, как подбирают преподавателей.
[Слышал о кейсе, когда одного специалиста] приглашали на 0,25/0,5 ставки преподавать в БГУИР. Руководство факультета было очень заинтересовано, да в целом это была их инициатива — поэтому они пошли навстречу по всем вопросам, дали переписать программу, расписание выбирать и минимальную загрузку по парам оставить, на которую он был согласен (не больше одного вечера в неделю — по две пары за раз).
Когда дело дошло до заявления на приём на работу, его попросили «не указывать свой номер телефона, если пользовался им в 2020 году» — написать другой или завести новый. Сказали, что по номеру проверяют, чем человек занимался во время протестов, — и лучше всех этих проблем избежать. Но закончилось всё тем, что проректор по безопасности не допустил этого человека к преподаванию — он, мол, имеет деструктивные взгляды.
Сроки обучения стоит сократить? И да, и нет
Каково моё мнение о том, что срок обучения в вузах стоит сократить — скажу так: после полугодовых курсов в тренинг-центре EPAM людей разбирали, буквально отрывали с руками и ногами не смотря на их дипломы (или их отсутствие).
Если специалистов готовить так же сфокусировано и ещё более комплексно в течении двух лет, будет интересно посмотреть на этих Uber-солдат? Мой взгляд на этот вопрос — подготовить «специалиста» можно за 2 года на фул-тайм, и он будет просто супер-инженер. Но у него не будет высшего образования.
Другой вопрос, надо ли оно этому специалисту?
Так что если говорить о том, надо ли готовить инженера-программиста 4-5 лет, — однозначно нет, хватит и 2-3. Можно ли дать высшее образование за такой срок — тоже нет: надо больше времени и другой фокус в обучении.
В практической плоскости, интересен опыт EPAM в этом плане. Слышал, они открыли свои программы бакалавриата и магистратуры в Литве и Украине, готовят людей под потребности рынка: если это инженер — у него есть бэкэнд-язык, профильный, клауд, инфраструктура и т. д., в общем весь актуальный стек с нужной глубиной. В магистратуре вроде были архитектура и деливери-менеджмент. За развитием этого процесса не следил, просто однажды увидел новость и порадовался за будущих коллег, у которых будет возможность получить, уверен, отличное техническое образование.
Обидно только, что в числе университетов-партнёров не было ни одного вуза из Беларуси.
(Не) согласны? Делитесь своим видением в комментариях.
Читать на dev.by