[Из песочницы] Необразованная молодёжь. Как выкручиваться студенту

habr.png

Увидев пост пользователя aleshqqa1337 об образовании в сфере IT «Необразованная молодежь», а следом и ответ преподавателя-совместителя PavelMSTU, решил, что не могу не поделиться историей на ту же тему, только развернувшуюся в рамках обучения в университете. Рассказ будет иллюстрировать процесс обучения на ИТ-специальности крупного государственного университета, подобных которому по стране немало, т.е. изложенная ниже ситуация актуальна для многих городов.

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

Об образовательной программе


После 11-го класса в 2012 году я поступил в Государственный Университет (который теперь стал чем-то вроде федерального университета) своего города на специальность «Бизнес-информатика», в описании которой на сайте вуза говорилось об изучении главным образом математических методов анализа данных в экономике и информационных технологий в сфере электронного бизнеса и предпринимательства в целом. Вообще эта специальность позиционировалась как IT направление в области экономики, финансов и бизнеса, обучающая использованию соответствующих математических и информационно-технологических инструментов, подразумевая как использование существующего ПО так и разработку собственного.

Что же из этого оказалось правдой?

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

На первом курсе их было два или три. На лекциях по одному предмету преподаватель предавался воспоминаниям о своем недавно закончившемся обучении в этом же вузе, сетовал на студентов, не сдавших ему курсовые с прошлого семестра, с оптимизмом поведывал о популярности биткоина, а в свободное время читал лекции, если правильно помню, об устройстве ЭВМ. На практических занятиях мы выполняли лабораторные по методичкам, составленным кем-то из сотрудников университета, по Word и Excel: вставить в документ таблицу, на листе excel сделать ячейки разным цветом и с разными границами и все в этом духе.

На лекциях второго предмета, который так и назывался лаконично «Программирование», полсеместра вещали про синтаксис Pascal, var, begin/end, if-then-else и т.п. Остальные полсеместра были задачки (тоже из какой-то старой методички) по типу «найти максимальный элемент массива».

Споры о целесообразности изучения Pascal в наше время стали притчей во языцех, да и я не имею ничего против этого языка, но отсутствие объяснений какие общие принципы можно будет использовать в дальнейшем при изучении других языков, какими лучше подходами решать те или иные задачи и т.п., а также сомнения в том, что программирование в Turbo Pascal имеет что-то общее с современной IT-индустрией и возможностью самореализации в этой области, грубо говоря, отбили у большей части студентов интерес к предметам, связанным с программированием. С одной стороны можно подумать, что эти выводы скоропалительны, но дело в том, что однообразных и безынтересных заданий по методичке нужно было делать много, а при трудоустройстве потом на вопрос о навыках отвечать «могу на pascal арифметические операции выполнять и найти максимальный элемент в массиве» никого не прельщало.

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

О некоторых предметах


Проектирование и разработка web-ресурсов — нам сообщили, что есть такая CMS Joomla и пакет программ Denwer, сказали «установить Joomla на Denwer», прочитав инструкции на официальных сайтах и «поиграться с джумлой», т.е. создать пару каких-нибудь страниц, где будет пара картинок и чуток текста. «На последнем занятии покажете что получилось». Надо ли говорить, что большая часть студентов, открыв мануал по установке джумлы на денвер, твердо решили заниматься весь семестр своими делами? Ну накануне сдачи, конечно все засуетились, но все подготовили с горем пополам и «дружеской» помощью того, кто во всем разобрался. Можно ли было как-то если не мотивировать, то хотя бы интереснее подать материал, чем просто «ну вы разберитесь, что там к чему, потом покажете, что вышло»? Ну может быть.

Локальные, глобальные и корпоративные информационные сети — весь курс лекций состоял из чтения преподавателем информации по разным темам типа топологии сети (шина, звезда, кольцо и т.д.) с википедии. Без пояснений/разъяснений, просто читали, а мы записывали.

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

Управление жизненным циклом ИС  — курс лекций читал вроде как даже преподаватель-совместитель с какого-то предприятия, который время от времени заглядывал в университет на лекции. Он как раз предпочитал википедии лекции из интуита, которые без устали читал пары напролет таким образом, что складывалось впечатление, будто преподавание его мало интересует и то, что он читает (стандарты ISO в IT, методологии ITIL/ITSM) — не в его круге интересов.

Базы данных — сначала лекции об SQL и запросах, потом лабораторные по методичке по MySQL с задачками на простенькие запросы. Также особо без разъяснений, работала отлаженная схема «вот методичка — делайте».

Проектирование и разработка ИС — методичка с заданиями как по Pascal, только по Java: «найти в двух массивах количество совпадающих элементов». Думаете в методичке было что-то про ООП, структуры данных, алгоритмы сортировки или типа того? Ни слова.

Моделирование бизнес-процессов — лекции были действительно про моделирование бизнес-процессов, а вот практические занятия по этому предмету… про VBA. Опять же по какой-то методичке нужно было выполнить несколько лабораторных по созданию различного рода макросов в Excel. Как задачки на VBA связаны с моделированием БП, я не знаю до сих пор. И не факт, что это знал составитель учебного плана.

Основы 1С — несколько лекций про использование интерфейса программы, ее компоненты и прочее, а на практических занятиях — ввод информации в программу (уже несколько лет как неактуальной версии) под диктовку преподавателя.

Платежные системы в интернете — зарегистрировали аккаунты в webmoney. Всё.

Электронный бизнес — почти то же, что и с Joomla, только с WordPress.

Были еще немало предметов, которые если судить по названию имеют отношение к ИТ, но их содержание было скорее гуманитарного характера. Например, «Рынки ИКТ и организация продаж», «Управление ИТ сервисом и контентом», «Управление разработкой ИС» и около того. По большей части лекции не имели никакого отношения к действительности.

Конечно, есть немало сторонников мнения о том, что православный программист должен уметь взять документацию/мануал и сразу научиться тому или иному языку/фреймворку/технологии или около того. Может я чего-то не понимаю, но мне казалось, что в университете преподавание не должно ограничиваться передачей студентам не знаний, а методичек, по которым нужно самому догадаться как все работает. За все время обучения на предметах, связанных с программирование и т.п., никто из преподавателей не обмолвился ни о структурах данных, ни об известных алгоритмах (поиска, сортировки и прочих), ни о шаблонах проектирования, ни об оптимизации или рефакторинге, ни о тестировании кода, ни про принципы ООП, ни про другие парадигмы, ни про альтернативы CMS, ни про один популярный фреймворк, ни про одну библиотеку, ни про отличия статической и динамической типизации, компилятора и интерпретатора. Короче ни о чем, что является предметом разговора на собеседованиях или хотя бы просто полезным и применимым на практике.

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

Я не исключаю, что может в ВШЭ или в СПбГУ на бизнес-информатике образовательный процесс проходит несколько иначе, но по крайней мере в моем государственном университете, казалось бы не захолустья, а города-миллионника, сложилась именно такая ситуация.

О преподавателях


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

Какие были преподаватели:

  • Специалисты других наук — половина преподавателей — это люди в годах, доценты, кандидаты наук, профессора. Но почти все закончили мехмат или экономические направления и у них математические или экономические специальности/профили. К слову математические дисциплины (матанализ, дискретная математика, эконометрика и прочие) преподавались действительно разбирающимися педагогами, которые видно, что знают и любят свой предмет, но традиционно не считают нужным поведать для чего и зачем, в каких сферах и в каких случаях пригождаются интегралы, пределы, регрессии, производные и т.п. Тем не менее, даже пройденные курсы повышения квалификации или переподготовки (не осведомлен о подробностях) не позволили им ни освоить материал предметов, связанных с ИТ и программированием в частности, ни преподать его тем более. Они либо придерживались известных им тематик и вместо информационных технологий рассказывали о чем-то математическом/экономическом, либо следовали схеме с методичками.
  • Незаинтересованные — к сожалению, было немало преподавателей, по монотонному чтению лекций из интернета, общению и манере которых, становилось очевидно,
    что они приходят не преподавать, а работать. Просто отработать день, отчитать хоть бы что, дать темы для докладов и уйти домой. Их не мотивирует зарплата? Угорающие над мемами в телефонах на задних партах студенты? Перспектива обучать темам, которые не соответствуют их профилю? Тогда зачем этим заниматься? Человек пять или шесть на протяжении нескольких лет делали вид, что преподают, просто читая из интернета не всегда связные темы заунывным тоном.
  • Старающиеся — из всего коллектива преподавателей (несколько десятков) только трое (всем меньше 30-ти лет) старались хоть как-то вызвать интерес к предмету, рассказать по максимуму полезных вещей в меру своих возможностей. Один преподаватель хоть и не особо разбирался в тонкостях программирования и баз данных, но к нему всегда можно было подойти с вопросом, и он если и не даст точный ответ, то хотя бы подскажет направление поиска. У него также математическое образование, но он интересовался ИТ сферой и в отличии от многих других преподавателей знал, что индексация массивов начинается с нуля, а не с единицы, что кроме MySQL есть еще СУБД, а «облачные сервисы» — это не царствие небесное, как подумала одна «заслуженная преподавательница кафедры» лет 60-ти, услышав это словосочетание впервые.

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

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


О студентах


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

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

О возможном решении


Меня интересовали разработка программ и сайтов (и некоторые другие темы) еще со школы, где участвовал в разных олимпиадах по информатике. Ничего серьезного, простенькие конкурсы и задания. Я практически ничего не знал, а сайты для олимпиад делал в MS FrontPage 2003. Поступая на «Бизнес-информатику», в описании которой значилось немало областей ИТ, я рассчитывал определиться с интересами и научиться чему-то дельному. Правда помимо того, что я делал другим лабораторные и прочие задания, мало что можно назвать ценным приобретенным опытом за время пребывания в университете.

К третьему курсу стало очевидно, что фраза «хочешь сделать что-то хорошо — сделай это сам» относится и к образованию в какой-то степени. Увидев на одной из пар, найденную преподавательницей в интернете маленькую программку на C#, я решил попробовать сделать что-то свое.

Сначала пробовал что-то простое и незатейливое, понял, что для меня программировать на C# — это крайне интересное занятие, читал и смотрел видео-уроки на youtube и курс Microsoft Virtual Academy от Дмитрия Сошникова. Чтобы совместить это увлечение с учебой в универе и личным временем я решил в качестве очередной курсовой сделать программу на C#. Обсудив все с одним из адекватных преподавателей, который стал научным руководителем, давал советы и подыскивал информацию, я начал делать небольшой проект на C# для курсовой и, собственно, сделал.

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

Какое-то время я не имел понятия о принципах ООП, не слышал о SOLID, писал полотно кода прямо в обработчике нажатия кнопки winforms, думал, что работа с БД осуществляется только посредством ADO.NET, что обработка исключений и unit-тесты — это что-то далекое от понимания и т.п. Просто сталкиваясь с чем-то новым в статьях, видя упоминание о чем-то или ссылку, я постепенно узнавал об этом. Не всегда в правильной последовательности изучая темы и вопросы, упуская что-то серьезное, важное, фундаментальное.

Таким вот образом я поначалу и изучал программирование и работу с БД. Совмещал самостоятельное обучение с написание курсовых, докладов на университетских конференциях, а потом и диплома на тему разработки программ на C#. Никто из преподавателей это не читал, а те кандидаты наук, доценты и другие кто присутствовал на конференциях, слыша, что при записи учетных данных пользователя проводится хеширование пароля с солью, недоумевающе посмеивались как над словом «соль», так и над «хешированием». Впрочем как и над «облачными сервисами», «токеном» для авторизации, и термином «асинхронное программирование». Поэтому я просто делал это для себя, чтобы со временем узнавать и учиться большему. (Это принесло свои плоды: на защите дипломов один из приглашенных работодателей, выслушав рассказ о дипломной работе, предложил пройти стажировку, а потом, собственно и постоянную работу.)

В общем на протяжении оставшихся двух лет до конца бакалавриата помимо самостоятельного поиска материала для изучения в интернете, я прибегал и к другим методам. На Хабре немало историй людей, которые ходили на собеседования по нескольку раз в разные компании, чтобы получить опыт общения на собеседованиях, узнать что требуют работодатели, какие тенденции на рынке и т.п. Собственно, и я последовав этим примерам посетил несколько собеседований на различные вакансии C# разработчика или около того, чтобы просто понять чего я еще не знаю, какие темы стоит подучить и прочее. Каюсь, я безбожно тратил ценное время людей и отвлекал их от работы, но во многом именно вопросы на собеседованиях, советы компетентных специалистов какую литературу лучше изучить направили на путь истинный и доли больше пользы, чем 4 года университета.

Резюмируя, можно сказать, что из статей на хабре, видео-уроков на youtube, справочников типа MSDN, документаций к разным библиотекам и программам, книг, которые рекомендовали на stack overflow и собеседованиях, я узнал больше об ИТ, чем обучаясь на профильном направлении в университете. Единственное доступное решение — это начать первое время хотя бы просто знакомиться самостоятельно с темами, которые интересуют, ибо ждать, что университет как-то в этом поможет безнадежно. Какие-то вузы может, конечно, серьезно подходят к образовательному процессу, но их единицы на всю страну, на всех не хватит.

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

Об итогах


Разумеется, можно говорить, что в образовательной системе много проблем, что она несовершенна, что надо что-то менять, и когда-нибудь все изменится (а может и нет), что преподаватели не виноваты, ни зарплаты, ни перспектив, что спасение утопающих — дело рук самих студентов, якобы если кто хочет — тот научится. Много искренних мнений, много правдивых слов, но, а делать то студентам что? Большинство советов сводятся к тому, что все в руках студентов, крутись-вертись и все получится, жизнь такая, выживает сильнейший и около того. То есть шанс чего-то добиться только у людей с горящими глазами, у тех кто фанатично увлечен своим делом, изучит все самостоятельно, схватит на лету, или успеет все подряд: и работу, и учебу, и поспать, и пожить? А просто людям что делать? Не все могут самостоятельно во всем разобраться, все понять и стать специалистом. Они как раз и надеются на вуз, что там расскажут об основах, укажут направление, помогут освоить.

Какая схема на мой взгляд самая действенная и «может прокатить»:

  • поступить в вуз, ибо, чтобы кто ни говорил, а в большинстве организаций нужно, чтоб был диплом;
  • за первое время прикинуть/присмотреться какая область интересна, к чему есть готовность приложить усилия, чтоб самостоятельно изучать выбранную тему;
  • начать самостоятельное изучение, совмещая с университетскими заданиями (курсовыми,
    дипломами), чтобы было куда все это применить, а потом и при случае показать работодателям, как символ того, что с тобой стоит иметь дело, и корпоративное обучение не пройдет даром;
  • непрерывно совершенствоваться, самообучаясь, ища возможные способы изучить новое.

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

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

© Habrahabr.ru