Привет, Хабр! Я преподаватель программирования, у которого нет педагогического, но есть инженерное образование. Долгое время я сидел в read-only, заимствовал у вас интересные материалы для занятий. Но теперь решил зарегистрироваться и поведать вам о всех изысках «IT-образования» в типичном ССУЗе-ВУЗе. Надеюсь это будет для вас интересным!
Сегодня я расскажу о том, как устроен процесс обучения и что, на мой взгляд, как специалиста можно было бы изменить.
Учебный план
Все образовательные организации, не важно государственные или частные, подчиняются стандартам РФ, иначе они лишатся аккредитации.
Вот здесь возникает первая проблема: использование часов обучения на непрофильные предметы
Исходя из нашей учебной программы должны присутствовать:
философия (68 часов);
история (68 часов);
мировая художественная культура (72 часа);
безопасность жизнедеятельности (68 часов);
родной язык (108 часов).
Можно много спорить о том, нужна ли философия, история и мировая художественная культура в становлении программиста как личности. Но на мой взгляд, ты сначала должен быть профессионалом, а потом уже всесторонне развитой личностью.
Технический английский язык
Рассказы о том, кто и как провел лето вошли в нашу жизнь большой раной на сердце. Но даже в профессиональном образовании преподаватели требуют рассказы про поход в магазин или беседу встретившихся в парке друзей.
Проблема вторая: иностранный язык не включает в себя техническую часть
Я просмотрел все доступные в институте рабочие программы иностранного языка и нигде не увидел задач на перевод документов и спецификаций. Оказавшись один на один с документацией программы на английском языке, студент теряется. Хорошо, если срабатывает Хром с его встроенным переводчиком, а если его нет — это катастрофа. Введение лабораторных работ по данному направлению решило бы эту проблему.
Квалифицированные кадры
Как это обычно бывает, профильные предметы преподают люди, совсем далекие от реальных условий. Не обошла эта тенденция и нас. Профильные предметы, не требующие особой подготовки (архитектура ПК, технические средства информатизации) ведут люди с образованием «Математика-информатика». Они знают свой предмет только по учебнику и не имеют ни малейшего представления о чипсетах, транзисторах и прочих «не рассматриваемых в курсе составляющих».
Что касается более углубленных предметов — в нашем штате есть пара человек с инженерным образованием и три сертифицированных эксперта WorldSkills. Именно эти люди взяли на себя обучение программированию, как системному, так и прикладному.
Квалифицированные инженеры не идут в образование из-за сравнительно небольшой зарплаты по сравнению с IT-сферой. По статистике преподаватели получают на 40% больше средней зарплаты в городе, но это все еще не дотягивает до зарплат в IT-компаниях. Как я попал в образование и доволен ли я своей работой? Об этом — в следующих публикациях.
Практический опыт работы с оборудованием
Предметы, которые могли бы научить студентов работать с оборудованием скатываются к рутинному написанию лекций и разбору ПК на картинках. Очень хорошо, если есть списанное оборудование, которое не жалко отдать на «растерзание». Но любой рабочий ПК с подачи нашего сисадмина попадает в надежные руки библиотекарей, вахтеров, охранников и так далее.
То немногое, что пытаются сделать преподаватели — разобрать рабочий компьютер и попросить студентов собрать его правильно. Или же вытащить составляющую, заменить ее нерабочей и поставить задачу «найти почему не работает». Обычно это видеокарта, плашка ОЗУ или неподключенный провод.
Насчет нерабочих деталей — я был на паре занятий и был поражен. Студентов не обучают поиску причины поломки. «Ну умер ну и умер». Поиск неисправного оборудования осуществляется «методом тыка» — а что если вот эту деталь подключить/отключить? Мы помним из предыдущего абзаца, что работают там не инженеры, а поэтому обучать поиску и перепайке неисправного компонента на системной плате никто не может.
Отсутствие современного подхода
Да, у большинства преподавателей студенты пишут код в тетрадке. У инженеров ситуация лучше, но далека от идеальной. Все обучение программированию сводится к обучению синтаксису, лабораторным работам «сделай все по шагам и перепиши код» и курсовой работе.
Программирование и пайка микроконтроллеров — отдельная история. Хоть и стоят они копейки, бюджетному учреждению получить их довольно сложно. Закупка такого оборудования должна проходить централизовано, а само оборудование — иметь сертификацию от МинСвязи. А то вдруг там вшит шпионский компонент. Я даже ездил в местное отделение ФСБ, но получил отписку.
Профильные понятия
Множество понятий, привычных разработчикам и обывателям Хабры абсолютно непонятны ни преподавателям, ни студентам моего ВУЗа. После того, как попытаешься объяснить слова стек или паттерн обязательно вызовут попа из ближайшей церкви для освящения всего вокруг. Знания заканчиваются на определениях «переменная», «функция», «компилятор».
Зачем я все это рассказываю
В какой-то степени, мы готовим кадры для вас, обитатели Хабра. Уже завтра выпускник моего ВУЗа может прийти на собеседование в вашу компанию. Мы хотим сделать все возможное, чтобы выпустить конкурентоспособного специалиста. Если вам не сложно, напишите фидбек. Что нам следует улучшить и добавить, чтобы вы, как HR/коллега/руководитель были довольны нашим выпускником.
saboteur_kiev
Начало статьи положено. А где ответ или хотя бы промежуточный вывод?
То, что в школе нет никакой возможности обучить готового программиста — это понятно.
Но есть множество других моментов — нежелание руководства школы влезать в этот процесс.
Я преподаю в компании на внутренних курсов, есть опыт. Я пытался предложить в школе (точнее в двух) провести ознакомительную ИТ лекцию для школьников, на любую ИТ-тематику — за 2-3 месяца вялотекущих переговоров не смог добиться возможности выделить на это непрофильные и тем более профильные часы. Мне бы могли сказать любую тему, я бы подготовился — но нет желания с этим связываться.
Поэтому все, что в школах можно сделать — это отдельный кружок, возможно спонсируемый родителями, если в школе есть кому его вести (чей-то не очень занятой папа-айтишник, или преподаватель, который по каким-то причинам не ушел за длинным рублем сразу).
sshikov
Ну кстати да. Начало, в лучшем случае.
>Если вам не сложно, напишите фидбек.
А на что? Ни предложений, ни выводов в статье не нашел. Понял, что нет денег, что нет оборудования, что нет преподавателей — два последних факта вытекают из того, что нет денег.
Могу почти уверенно утверждать, что многие платные курсы, у которых есть деньги, все равно не лучше. Ну вот скажем так — на работе я как-то проходил однодневный курс от компании Терадата. Введение в Hadoop. До этого я перешел на новое место, и сидя на работе, делал некоторые несвойственные мне вещи, а именно писал требования. А попутно читал документацию на тот же Hadoop. Так вот — когда через месяц я пришел на этот курс, я не узнал там ничего нового для себя. Т.е. однодневный вводный курс — это примерно месяц почитать документацию между делом. Благо сегодня информации в интернете навалом.
Что с этим делать — я не знаю. Скорее всего нужно чтобы образование работало на компании. Хотите, чтобы ваши выпускники устроились на работу к нам? Покажите нам ваши учебные планы, или следуйте тем планам, которые вам даст заказчик (а не министерство, которое нихрена не понимает в том, чему на самом деле нужно учить, и что требуется бизнесу, например). А компания вам будет платить, если ваши курсы будут хорошими. А у кого не будут — разорятся. Се ля ви.
Но боюсь я, что наши законодатели скоро сделают (если уже не) это невозможным.
saboteur_kiev
Для школьников можно было бы сделать не курсы а ознакомительные уроки, где можно было бы пообщаться с реальным специалистом, чтобы если и не наставить всех на истинный путь, дать понять тем, кто реально заинтересован в ИТ, чтобы не сидели и не ждали а занимались паралельно самообразованием и подсказать что именно смотреть и как.
Хотя бы такое…
sshikov
Ну да. Но скажем у моей дочки в школе все так же… и ознакомительные уроки им не интересны.
saboteur_kiev
Воспитанием школьников и мотивации стать человеком должны заниматься родители.
Но если в школе преподаватели информатики не только не способны пояснить сам урок, но и даже не имеют представления о том, как сейчас происходит процесс разработки или администрирования и не могут пояснить что и зачем учить, то ознакомительные лекции от реальных профессионалов как раз могут подсказать что и зачем нужно учить, кроме школьной информатики.
Опять же, реальный специалист может заинтересовать потому что у него есть опыт и примеры реальной разработки, реальных случаев применения каких-либо технологий, а не абстрактного «а теперь мы вычислим четыре корня квадратных и посчитаем две матрицы»
sshikov
Когда я говорю «им» — я имею в виду школу, а не учеников.
akryukov
Тут есть другая опасность. Подобный учебный план скорее всего будет строиться на списке вопросов, которые обычно задают на собеседованиях.
На собеседованиях не всегда задают адекватные вопросы. Я оптимист, поэтому предположу что есть 80% адекватных и 20% неадекватных компаний.
И вот есть некие 10 компаний, которые требуют учить по своим учебным планам, которые у всех разные.
Как выбрать, на какие из учебных планов должно ориентироваться учебное заведение?
sshikov
>которые обычно задают на собеседованиях
Это почему? Ну вот смотрите, у нас скажем отдел больших данных. Используемый софт — Hadoop, Spark, Kafka, NiFi, и многое-многое другое. Я подозреваю, что этому либо вообще не учат, либо учат так, что обученные люди потребуют переучивания на рабочем месте сразу. Впрочем, такой риск — он есть всегда. Но в тоже время, компания-наниматель, и только она, лучше всего знает, какие именно потребности есть сегодня. Не учитывать вот это вот все — заведомо учить ненужному.
Не, я понимаю ваши опасения, потому что у другой компании другие потребности. Но если в обучении не ориентироваться на реальных потребителей — то есть все на те же компании, которым нужны программисты, то оно вообще будет уходить в непонятную сторону.
akryukov
Еще может случиться такое, что у компании потребности могут поменяться, а навязанный учебный план взад уже не переиграть. По нему люди учатся и ожидают, что для них будет работа через 5 лет. Будет ли коммерческая компания подписываться на то, что она обязательно трудоустроит тех, кто отучился по ее плану?
Спецкурсы лучше решают вопрос получения актуальных навыков. Нет совсем никакой необходимости тащить используемый софт в обычный диплом об окончании универа.
sshikov
Что значит не переиграть? У вас что, потребности на месяц что-ли? Ну и потом, если потребности быстро меняются — то для учебного заведения должно быть выгодно подстраиваться под них гибко и быстро, вводить новые предметы, и выводить не актуальные. Это их цель, чтобы выпускники находили себе работу, это они получают деньги за обучение.
Не, я на самом деле согласен, что конкретный софт — это спецкурсы, а не базовые. Я его вообще назвал потому, что этому просто нигде не учат нормально. И возможно, сочетание неких фундаментальных курсов и спецкурсов по конкретному софту было бы близко к идеалу.
>Будет ли коммерческая компания подписываться на то, что она обязательно трудоустроит тех, кто отучился по ее плану?
Не, ну погодите. Мне кажется, тут все-таки должны быть немного другие отношения. Компания (на самом деле не одна компания, а многие) должна сформировать описание своих потребностей. И требования к выпускникам. А учебное заведение — уже учить. В конце концов, это их профессия — преподавать, а не компании заказчика. И это их задача — решить, какие потребности будут через год и через пять лет (а компания должна понимать, что подготовка это дело не месяца (ну если мы все-таки про ВУЗ говорим), и планировать потребности нужно заранее, и предвидеть как-то научиться.
А уж трудоустроить всех — это, простите, нонсенс. Всех кто хорошо отучился, и имеет хорошие оценки, можно обещать просмотреть, и трудоустроить, если они подходят. Или обязательно выдать фидбек, почему конкретно не подходят. Причем делать это все можно после каждого предмета, а не через пять-шесть лет. Вот при таких отношениях каждый занимается своим делом, и есть обратная связь, которая позволит программы корректировать.
akryukov
Нашему проекту хоть и требуются люди, но не в таких количествах, чтобы подстраивать систему образования под себя. Вот франчи 1С отлично масштабируются людьми и за счет этого они могут проводить практику, а потом переманивать себе выпускников целого факультета из года в год.
Я вообще к тому написал, что раз частные компании вмешиваются в учебный процесс, то у них должна быть какая-то ответственность за результат.
У нас уже есть ситуация, когда у частных компаний есть хотелки, но нет ответственности, а у учебных заведений есть какой-то результат, но он почему то не нравится частным компаниям.
sshikov
Ну и нашему примерно человек в год нужен. Ну т.е. да, тут нужна какая-то прослойка, которая собирала бы потребности воедино.
>раз частные компании вмешиваются в учебный процесс
Ну, как вмешиваются. Они потребители. Я пишу о том, что они должны активнее влиять. Ответственность за результат обучения? Не, ну ок, а если результат плохой? Взять всех на работу все равно? Ну тоже как-то не очень выглядит.
Учебные заведения конечно могут продолжать учить Access-у, но результат будет понятно какой.
akryukov
Плохой это какой?) Условная компания обеспечила свои учебные планы, ну и еще наверное критерии оценки, входной/промежуточный контроль, а потом через 3 года заявляет что результат плохой? Ну извините, учебное заведение могло бы и дальше учить как-нибудь по-старинке. А теперь у нас есть условные 10 человек, которые учились для вас. Предлагаете им пойти на hh?
sshikov
Ну, вопрос критериев хороший. Но в случае промежуточной синхронизации скорее всего не будет стоять так уж остро. В конце концов, компания может кого-то выделить, и посетить экзамены, или там ознакомиться с курсовыми работами. Если бы я имел такую возможность влиять на результаты обучения… опять же, я бы тогда студентам к тому же третьему курсу уже рассказал бы не раз о проекте(ах), чтобы у них был выбор.
>Предлагаете им пойти на hh?
Ну так опять же — а раньше-то они куда бы пошли?
akryukov
Раньше учили по универсальной программе для всех и ни для кого и студенты действительно могли бы устроиться куда-угодно.
А после прохождения специализированной программы специально для вас, они годны только вам и больше никому с таким набором компетенций не нужны. Соответственно шансов на hh у них после вас меньше, чем обычно.
sshikov
Ну, это не совсем так.
>действительно могли бы устроиться куда-угодно
Они могли бы устроиться куда угодно, если бы их куда угодно взяли. Что в общем-то не факт.
>шансов на hh у них после вас меньше, чем обычно.
У нас (значительно) более широкий набор компетенций, чем у обычного Java backend разработчика. Грубо говоря, обычный backend должен знать одну СУБД, с которой работает, и один-два фреймворка. А нам нужно хоть как-то знать Oracle, MS SQL, PostgreSQL, и Hive, и все четыре — со своим диалектом SQL. И где-то с десяток продуктов помимо java и баз данных. Т.е. это высокий уровень компетенций в узкой области.
И почему человек с такими компетенциями будет иметь меньше шансов?
А вот как раз человек со стандартными компетенциями веб разработки, например, пусть даже и высококвалифицированный, у нас вообще не подойдет почти ни на какую позицию, потому что веб разработки как таковой почти нет, а та что есть — на несколько нестандартных технологиях.
akryukov
Вот поэтому:
Ну то есть человек, знающий 4 СУБД и работающий с REST только через какой-нибудь spark-стриминг, не подойдет на позицию веб-разработки потому что не знает условного спринга, реакта и чего-там еще надо знать.
А вот человек, знающий как писать запросы в MS Access и делать странички на HTML, одинаково плохо подходит всем, но его не придется радикально переучивать — только развить одну из сторон. Он знает что знает недостаточно.
sshikov
Ну, тут могут быть варианты. Я в общем представляю себе это обучение (адаптированное под запросы компаний) таким образом, что если студент хочет пойти потом в бигдату в компанию АБВ — то ему нужно пройти дополнительно такие-то курсы. А такие-то курсы можно вообще не проходить.
В итоге он заранее знает, что если будет знать предмет хорошо — то может расчитывать на позицию в примерно таком проекте.
В конце концов, если никто не выберет такое направление, а все пойдут в обычную веб разработку — то это будет а) их выбор и б) компания из области бигдаты будет понимать, что у нее нечем оказалось заманить студентов к себе. Требования высокие, а востребованность так себе.
akryukov
Про вариант со спецкурсами я согласен. Его можно практически прямо сейчас и реализовывать, не вмешиваясь в систему государственного образования.
Причем работать будет не только для студентов, но и для желающих сменить профиль.
akryukov
Сейчас есть МинОбр (ну или как именно там эта структура сейчас называется). При возникновении прослойки нужно понять, как донести этой самой прослойке то, что нужно частным компаниям. А потом еще — как от прослойки донести до учебных заведений и не пролить по дороге.
Например у нас в городе на базе одного из спо открылась лаборатория больших данных. Казалось бы, прослойка отработала так как нам нужно. Вот только техническое обеспечение лаборатории это условные 10 отдельных персональных машин и ПО — MySQL на каждую.
Самое обидное, что вроде как в моих силах что-то изменить, но у меня времени нет бумажки оформлять.
sshikov
>как донести этой самой прослойке то, что нужно частным компаниям
Ну мы вроде обсудили, что компаниям нужно разное. Так что кто-то все равно этим будет заниматься. В американской модели, насколько я понимаю, этим занимается сам обучающийся. Ну и ничего, живут же как-то.
С другой стороны, когда в СССР государство решало, сколько и где нужно специалистов, оно определяло программы ВУЗов именно централизованно, и контролировало их выполнение. Но оно и распределяло всех. Если же сейчас МинОбр распределять и трудоустраивать никого не собирается, как раз тут было бы логично, чтобы он отошел в сторонку, и не лез бы в формирование программ вообще. Ну или формировал бы их для тех случаев, которые предполагают лицензирование или работу на государство, ну там медицина например, или в конце концов, разрешил бы выдавать дипломы, за которые отвечает исключительно ВУЗ. Т.е. перестал бы лицензировать везде и всюду. В конце концов, лицензии на занятие программированием нет, с какой стати диплом должен быть от лицензированного учебного заведения?
>это условные 10 отдельных персональных машин и ПО — MySQL на каждую.
Ну, если бы обратная связь от компаний работала, этой лаборатории сразу бы сказали — не годится. Ну а как еще-то?
akryukov
Тут еще один подводный камень. От каких компаний должна работать эта обратная связь для города за Уралом?
То же самое учебное заведение готовит всяких токарей-фрезеровщиков для заводов в этом же городе сотнями. У них три корпуса со станками. Потому что понятно кому их готовить и есть кому сказать "не годится".
А по направлению бигдаты в лучшем случае работает 10 человек, при этом все на удаленке через аутсорс прокладку.
chersanya
Вопрос абсолютно логичный, но почему вы не считаете адекватным ответом на него "программисту диплом [вуза] не нужен вовсе"?
MichaelProtector Автор
В принципе уже сделали. Они выпустили программу подготовки, в соответствие с которой у вас обязательно должны быть предметы «a,b,c», иначе в выдаваемом дипломе вы не имеете права писать эту специальность.
В этом году в одном из подразделений набрали группу по программе заказчика. Над этим бились около 3 лет, постоянно согласовывая программу подготовки с министерством, главой IT-компании и директором подразделения. Вместо «Техник-программист» получаемая специальность — «Разработчик веб и мультимедийных приложений». Надеюсь, это принесет свои плоды и мы распространим данную практику на всю организацию.
sshikov
>В принципе уже сделали.
Ну, да. Но то что я вижу, выглядит так, как попытка вообще залицензировать образование по самое немогу. В итоге «что нужно» — решает почему-то государство, а не потребитель.
Costic
Через 10 лет эти знания и специальности будут бесполезны. Я, например, изучал в начале 90-х: Basic, Pascal, dBase, Prolog, Lisp, SQL, C, а также кучу разделов математики, основы права, историю и философию. Я не говорю про всякие ИТ-системы (Парус, Clarion, ExSys, GPSS, СВМ, и др./забыл/). Нужен фундамент и кругозор. Остальное человек сам выучит или на коротких курсах.
Философия учит мыслить, показывает развитие мышления у человечества. Основы права нужны любому человеку в условиях капитализма.
Очень многое зависит от преподавателя. Обучать С++ 20 на мой взгляд не верно. Сначала надо изучить основы — процедурное, структурное, функциональное и Об.Ориентированное программирования.
Пишу как человек, который был в ВУЗе в разных ролях.
DaneSoul
Mike_soft
Но мы о чем говорим — о «необходимости предмета» как такового, или о качестве преподавания?
наличие предмета в учебном плане подразумевает, что предмет (философия ли, дискретная ли математика, либо теория автоматов или функциональное программирование) «преподается соответствующим образом».
Kroid
Mike_soft
как раз подразумевает. Вы же ожидаете от дипломированного специалиста некоторых знаний, а не «тупо потраченных часов»?
akryukov
И вы гарантируете, что через 5 лет обучения, студенты по этой специальности смогут устроиться на работу?
sshikov
А щас-то кто вам это гарантирует? Ну вот посмотрите коммент ниже: «Помню выпрашивал у препода, сделать лабу на MS Access» — то есть где-то учат Access. Вот эти вот преподаватели, они куда собрались своих выпускников со знанием Access пристроить?
akryukov
Я не спорю, что сейчас студентам не сильно много гарантий. Однако если собрались как то влезать в эту систему и переделывать ее, то надо сделать ее лучше. Иначе получатся изменения ради изменений.
Вот сделают эти ребята в ВУЗе обязательный курс по условному реакту, а он через пять лет заменится на очередной %frameworkname% и снова будут говорить "куда эти преподаватели собрались трудоустраивать студентов со знанием реакта"?
sshikov
Ну тут может помочь только одно — обратная связь должна быть быстрее. На самом деле, я бы скажем охотно попробовал бы взять студентов после третьего курса, при условии что они допустим изучат то, что мне нужно. Сами, или даже с нашей помощью. В конце концов, я сам с третьего курса работаю.
А пока получается примерно так — есть некие курсы, в Иннополисе скажем, которые теоретически как-бы должны готовить нам специалистов. И там даже преподаватели от компании. Но по факту получается, что готовят они в лучшем случае специалистов массовых, ну примерно как автор тут упоминал: «веб и мультимедиа». А таких, которых нужно десяток в год всего — как-то не очень (в том числе очевидно потому, что кто же их там учить будет?).
Mike_soft
Обратная связь должна быть другого рода. Т.е. «в вузе» изучают некий общий абстрактный курс («веб и мультимедиа», «бигдата», «МЛ»(не тот, который МарксизЪмЛенинизЪм)). а параллельно на на каких-то проектах, делающихся ВУЗом по заказам промышленности, применяют знания на практике. Как вы и говорите — начиная с хотя бы третьего курса (хотя сейчас некоторые предметы по специальности начинают уже на первом курсе). И студенты прекрасно поймут, кому что «заходит». а потенциальный работодатель сможет выбирать/направлять/готовить для себя.
Вроде как это называется «системой физтеха», но у нас в ЧПИ она тоже успешно применялась — правда, в ограниченных масштабах.
Т.е. — повторюсь еще раз — нужно не столько менять само образование, сколько добавить ВУЗам «заказы от промышленности»
StjarnornasFred
Имхо, целесообразно создание компаниями своего рода "школ ФЗО" для собственных нужд. Чтобы выучившиеся разработчики не выбрасывались на рынок труда, а устраивались на работу по месту обучения. Такую схему уже сейчас успешно внедрил Яндекс (Практикум, ШАД, факультет при Вышке), насчёт других компаний не знаю.
Такая схема полезна и компаниям (они сразу готовят кадры под свои нужды и не парят мозги поражающими факторами ядерного взрыва), и студентам (которые мало того что получают качественное — а иное невыгодно организации — образование, так ещё и с гарантией трудоустройства).