Эта история имеет не только ознакомительный характер, но и содержит решение проблемы «неотвечающего современным реалиям» 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 и собеседованиях, я узнал больше об ИТ, чем обучаясь на профильном направлении в университете. Единственное доступное решение — это начать первое время хотя бы просто знакомиться самостоятельно с темами, которые интересуют, ибо ждать, что университет как-то в этом поможет безнадежно. Какие-то вузы может, конечно, серьезно подходят к образовательному процессу, но их единицы на всю страну, на всех не хватит.
Много советчиков, для которых очевидно, что лучший путь — это начать работать сразу как поступил в вуз. Якобы много организаций готовых обговорить и совмещение с университетом и корпоративное обучение. Ну может и много, но недостаточно. По крайней мере в моем городе если и готовы были обучать первое время, то только при условии полного рабочего дня.
Об итогах
Разумеется, можно говорить, что в образовательной системе много проблем, что она несовершенна, что надо что-то менять, и когда-нибудь все изменится (а может и нет), что преподаватели не виноваты, ни зарплаты, ни перспектив, что спасение утопающих — дело рук самих студентов, якобы если кто хочет — тот научится. Много искренних мнений, много правдивых слов, но а делать то студентам что? Большинство советов сводятся к тому, что все в руках студентов, крутись-вертись и все получится, жизнь такая, выживает сильнейший и около того. То есть шанс чего-то добиться только у людей с горящими глазами, у тех кто фанатично увлечен своим делом, изучит все самостоятельно, схватит на лету, или успеет все подряд: и работу, и учебу, и поспать, и пожить? А просто людям что делать? Не все могут самостоятельно во всем разобраться, все понять и стать специалистом. Они как раз и надеются на вуз, что там расскажут об основах, укажут направление, помогут освоить.
Какая схема на мой взгляд самая действенная и «может прокатить»:
- поступить в вуз, ибо, чтобы кто ни говорил, а в большинстве организаций нужно, чтоб был диплом;
- за первое время прикинуть/присмотреться какая область интересна, к чему есть готовность приложить усилия, чтоб самостоятельно изучать выбранную тему;
- начать самостоятельное изучение, совмещая с университетскими заданиями (курсовыми,
дипломами), чтобы было куда все это применить, а потом и при случае показать работодателям, как символ того, что с тобой стоит иметь дело, и корпоративное обучение не пройдет даром; - непрерывно совершенствоваться, самообучаясь, ища возможные способы изучить новое.
В итоге на очередном собеседовании наступит момент, когда Ваших знаний, которые Вы получили любым доступным способом, будет достаточно, чтобы приступить к работе, а где-то еще и будут готовы предложить обучение.
Честь и хвала тем, кто без особых затруднений стал специалистом самоучкой, будучи талантливым и целеустремленным человеком, а всем остальным — терпения, упорства и удачи в стране, где проще получить образование из статей на Хабре, чем в вузе.
Комментарии (37)
andrewzhuk
05.10.2017 19:28Я особо и не надеялся на университет в свое время. Да, по профильным предметам тянули, но до определенного уровня. Хочешь что-то выше базового — нужно самому в любом случае все изучать. Кстати, еще в 2011-2012 хорошо помогали онлайн-учебники по тому же ccna и ccnp, поэтому здесь уже на 100% от связки онлайн и оффлайн образования нужно добиваться результатов
Harr
05.10.2017 19:50+1Автор описывает оптимальный метод. Как бы это странно не звучало, но очень важно уметь учиться. Я не про ВУЗ, а вообще имею ввиду. То есть уметь увеличивать скорость освоения необходимого для деятельности материала. Находить в любой среде «надуровни», которые позволяют глядеть на изучаемую отрасль со стороны, выбирая оптимальный маршрут.
Улучшая саму способность познания, вы будете всё меньше зависеть от узкой специализации и сможете выбирать.
Также настоятельно, категорически, рекомендую изучить (в ВУЗе или самостоятельно) дисциплину «Системный анализ».
rokobungi
05.10.2017 21:09+3На установочной лекции по структурам и организации хранения данных профессор пришёл, написал адрес электронной почты на доске, часы приёма на кафедре, дал список литературы и отправился восвояси. А поток остался сидеть в ожидании следующей лекции через 4 часа.
ВУЗ не подразумевает вкладывание знаний в головы. ВУЗ подразумевает развитие навыка «Обучение». Умение работать с литературой, нормативной документацией и т.д. В этом вся суть. Универ даёт направление, а следовать ему или нет — дело уже студента. Большинство, видимо, приходит с надеждой на то, что их научат. Нет, не научат. Учат в школе учителя. В ВУЗах — преподаватели, они преподают. В школах заставляют учиться — в ВУЗах никто заставлять не будет. Если бы не «указания свыше», то поток бы регулярно очищался от ненужного балласта. Но тянут всех. Отчисляют уже если ну совсем никак. Но и то, спустя некоторое время, восстанавливают и выпихивают из стен ВУЗа с заветной книжечкой в руках. Потому что это деньги. В большинстве своём высшее образование сейчас — покупка диплома в рассрочку, не более.AGhostik
05.10.2017 22:18+2Большинство, видимо, приходит с надеждой на то, что их научат. Нет, не научат.
Я как-то будучи еще школьников 10-11 класса, хоть и понимал что мне очень нравится программирование, был глуп и не особо думал о том чтобы серьезно заняться самообучением. Так ведь и думал, что меня научат, смешно сейчас :D
Но хотя бы такие вот незаинтересованные преподаватели, которые читают лекции с википедии, повернули мои мозги в нужное русло. «Что же я делаю, зачем я тут трачу время? Какой из меня программист выйдет?» — так и начал самообучаться.
JekaMas
06.10.2017 10:03+5Жили-были Женя и Дима. Женя пошел учиться в техвуз из первой десятки по России на профильную специальность Разработки ПО. А Диму отправили на обучение в США также по специальности.
Женя учился и развивал навык Обучение, а после не мог найти работу программистом, потому что почему-то обучился математике, физике и электротехнике в своем ВУЗе, и самостоятельно и не системно PHP.
А Диму почему-то не учили Обучаться, а с первого курса давали Python, после методики разработки ПО, много практики, в том числе и в составе рабочих групп студентов, после уже более продвинутые темы об ОС, языках программирования, компиляторов по Драконьей книге, была и математика, но она быстро перешла в ML и NLP.
Женя после ВУЗа переучивался, старательно забывая тот ужасный подход к программированию, что дали во время обучения. И все получилось, но еще заняло несколько лет.
А Дима имел достаточные для работы новичком или стажером навыки на Python с первого курса, а после к этому присоединилась еще Java. Почему-то ВУЗ предпочел популярные языки программирования. И Дима быстро нашел хорошую работу как в России (да-да, на несколько лет он возвращался), так и не в ней.
Вот такая правдивая история о том, что почему-то ВУЗы «не должны вкладывать знания в головы».Idot
06.10.2017 10:15Вопрос из соседней темы:
https://habrahabr.ru/post/339458/#comment_10457338
Ndochp Какой фреймворк будет актуален через 6,5 лет?JekaMas
06.10.2017 10:25+1Если у тебя есть 2 и более популярных языка, опыт разработки в группе, хорошие фундаментальные знания, понимание, что программа решает задачу, то уже не важно, что будет за фреймворк.
Ndochp
06.10.2017 11:29Не знаю, где как, а на Прикладной математике и физике (после 2 курса специализация на программирование) в МАИ 98-03 давали в части программирования:
1. Машина тьюринга планов плавно переходящая в нормальные алгоритмы Маркова.
2. Алгоритмы всякие — на паскале
3. ООП — C++
4. Базы данных — оракл под капотом курса
5. Java — факультативно, семестр.
6. Разработка крупных систем — местами про водопад, местами опыт из жизни преподавателя.
Пятый курс был уже по большей части халявой, туда запихнули все «для общего развития», включая базовую комп графику (без шейдеров к сожалинию) и программирование игр (логика уровней интереса игрока и все такое).
На фону все это поддерживалось естественно:
1. матаном, переходящим в функциональный анализ и комплексными числами (не пригодилось).
2. Дискретная математика (комбинаторика, графы и др) — пригодилось.
3. Теория вероятности и случайных процессов, теория игр — кажется скорее изменили меня, чем нашли применение в работе
4. Автоматическое управление и оптимизации всяких видов. Не пригодились, но могли бы, если я выбрал бы другую область программирования.
Ну конечно была куча ненужного в профессии (психология, право, английский, защита труда) и полного мусора (экология), но если курсы из этой категории заменить питоном, то на него все равно сил не хватит.
Ну и с 4 курса все кто хотел имели выход на подработку по специальности через преподавателей кафедры. То есть полу деньги/полу практика.UnclShura
06.10.2017 13:12+1Вы-же понимаете что все это — азы где-то уровня курсов типа 101. Где еще 2-3 языка? Где машинное обучение, программирование на видеокартах (не игры), мат модели в финансах, grid computing, картография и гео-алгоритмы, моделирование сред? И т.д.
Универ это то место, где можно (и нужно) получить знания обо всем. И поскольку мы говорим об IT — обо всем в приложении к программированию (не скажу про админов, но видимо нечто похожее там тоже есть).
Вот была у нас теория вероятности, у всех видимо была… а на курсе программирования примеры реализации метода монте-карло давали? Не на математике (!), а на программировании: как параллелить, как балансировать, как, наконец, на кластер раскидать и т.д.? И так со всем — математика есть, но на вроде программистской специальности ничего сложнее условного нахождения максимума в массиве.
Ведь на работе работу работать прийдется. Надо монте-карло? Не до гео-алгоритмов уже! И наооборот.
Я не говорю изучать каждую область до уровня эксперта, да только условно раз в 10 надо углублять уровень изучения программирования.Ndochp
06.10.2017 13:18Вот помнится мне, что весь ваш первый абзац в 1998 только зарождался в лабах, если вообще был. Вуду 3 в 1996 выпустили, какое программирование на видеокартах?
Сети массово на хабах были, а не свичах. Коаксиал еще не отмер до конца. А вы про кластеры.
Кстати, отличный пример актуальности ваш комментарий. Всего то чуть больше 10 лет прошло с моего выпуска, а на момент поступления большинство актуальных тем тупо не существовало. А актуальные тогда — уже выброшены на задворки.
А ведь еще нужно время преподавателю на подготовку курса. Ну и предсказательная сила, что будет нужно, а что мода на пару лет.UnclShura
06.10.2017 15:17А я как раз учился в 1987. Да не было видеокарт, зато были «матричные модули» для ЕС ЭВМ. Разумеется нам про них никто даже не упоминал (я видел один на практике).
Про актуальность я не согласен. Дело-же не в том что видеокарт нет (сейчас вот квантовых компьютеров нет, да и ML процессоров толком тоже), а в том, что даже в далеком 1987 знали про параллельные вычисления и даже архитектуры тогдашних суперкомпьютеров обзорно давали. Проблема именно в том что обзорно.
Вот пример из 80х: был у нас один препод по языкам программирования. Так он засадил нам, тем, кто PL/1 худо бедно «смотрел», лекции и *лабы* по непроцедурным языкам программирования. Я впервые вообще узнал, что такие есть. Так вот GPSS (general purpose simulation system) настолько мне мозг сломал, что я языками увлекся и писал потом парсеры для всяких хитрых форматов как интерпретаторы простеньких языков (да со всеми пирогами в виде lex/yacc/pccts). Это между прочим в 90е под ДОС и OS/2!
Откуда-бы я такое узнал на работе (времена FIDO и написания бухгалтерского софта каждой маленькой конторкой)?
А знания про паралельные вычисления как раз из института. Сейчас применяю. Не знания разумеется — принципы. Теория была. Практика — нет.
Сейчас студентов надо ML да квантовым вычислениям учить. Да чтобы с лабами. А их Word да Joomla. Стыд это.Ndochp
06.10.2017 16:03Так, я кажется окончательно запутался о чем спорим.
У вас какая позиция? что зря дают теорию вместо практики? (тогда я с вами спорю)
Или что зря дают практику в ущерб теории, так как она не актуальна? (тогда я с вами согласен)
Или что надо давать актуальную практику? (тогда я с вами снова не согласен. 3 года на понимание актуальности предмета для обучения — от создания до признания, год-два на подготовку курса, 5 лет на институт — вот вам обучение предмету минимум с 10 летней историей)
Под «программирование на видеокартах (не игры)» я думал вы имели в виду что-то типа CUDA, которая вышла 23 июня 2007. До того подобные вещи были тупо не возможны за отсутствием видео ускорителей.
Но были другие.
Однако давать на общепрограмистком курсе креевские векторные архитектуры странно и бесполезно. Слишком маленькая ниша на тот момент, и, кажется, умершая архитектура на сегодня.
И, на мой взгляд, ML студентам сейчас давать «ради знаний» бесполезно. Там слишком быстро все скачет. Его ниша — от аспирантуры и выше. То есть сразу применение серьёзными ребятами.
А все, чему вы научите первокурсника может будет поставить в один ряд с моделью атома водорода от Бора к моменту выпуска.
А совсем базовые принципы это персептрон 1957 года рождения. О нем кажется еще в школе на факультативах рассказывали.
PS А мозги нам в непроцедурную сторону прологом ломали. Жаль ничего функционального не подсунули.
PPS ML это имелся в виду язык или машин лернинг?UnclShura
06.10.2017 17:03ML — machine learning.
Да мы и не спорим вобщем. Я в основном говорил про то, что дают и недостаточно теории и очень отсталую практику. Пример с креевскими архитектурами как раз показателен. Надо было их давать! Нам кстати давали и именно о них я говорил «Сейчас применяю». Это-же не детали архитектуры — эту плату сюдя тыкать, а эту туда, а самые основы современного большого компьютинга — SIMD/MIMD/data driven computing и т.д.
Итого: очень мало программистской теории и катастрофический недостаток практики. Теория очень нужна. И именно cutting edge. Теория того что только в проекте сегодня, но по выходу из универа будет самый мэйнстрим. Практика как раз наоборот — самая база. Но база не уровня max(array), а уровня «напишите и отладьте модуль ядра Линукса» (условно). Только хардкор!
Зато философия, теория науки, библиотечное дело… да…
snuk182
06.10.2017 11:21Как-то утрированно. Если отечественный университет это не глушь мира, где вокруг нет ни одной интересуюшейся интернами конторы, то главный поворотный момент тут — вовремя понять, что учеба дает навык усидчивости, решения проблем и быстрой перестройки между неизвестными задачами, плюс базовая база в виде устройства компа, программы, базы данных (+ корочка, которая внезапно может котироваться зарубежом), а на практике требуются знания конкретного языка-фреймворка-методологии. Понимается это походом по потенциальным работодателям, даже если в планах нет в данный момент работать. Работодатель, даже если он наглухо закрытая контора с пинкодами на всех дверях, в любом случае открыт до какой-то степени, чтобы рассказать, чем и с чем здесь занимаются.
JekaMas
06.10.2017 11:33Но так оно и было. Университет — МИЭТ, специализация Разработка ПО. Вроде не глушь, в рейтинге до сих пор около 7-8 места.
Базы данных давали, но откровенно плохо, в итоге взял в руки sql-ex и курс от Стенфорда — это дало внятные прикладные навыки.
Программирование? У нас его традиционно дают в плохом процедурном стиле. Пишу «плохом», потому что и процедурный стиль может быть достаточно неплох для определенных программ.
Алгоритмы и структуры данных были, но после пришлось взять и прорешать Кормена в течение года + вновь курсы от Стенфорда. Это дало достаточные знания для прохождения собеседований на уровне senior.
Ну и традиционное полное непонимание ВУЗа, зачем учить разработке в составе команды.
Тут нет утрированного. Просто вот такая история.snuk182
06.10.2017 13:00Хорошо, если есть возможность получить современный навык извне, вроде Udemy, Stanford или Coursera. Я учился в начале 2000х, где ими не пахло, и приходилось учить, что дают. Интересно, реагируют ли сейчас советские вузы на такую конкуренцию?
JekaMas
07.10.2017 11:00Ну я также был студентом в 2002году. Многие вещи уже появлялись к концу обучения.
rokobungi
08.10.2017 08:51Женя — случайный человек в профессии. Нечего ему там делать, если он за срок обучения в ВУЗе только и сумел, что несистемно выучить PHP.
А Дима — молодец. В то время, когда Женя после учёбы гонял в дотан в общаге и лайкал мемасики в ВэКашечке, Дима применял полученные теоретические навыки на практике и развивался.JekaMas
08.10.2017 12:12Однако, Женя взяв не русское образование, сдал с ZCE для PHP, и после освоил другие языки, и сейчас работает в топовых компаниях с условиями выше Московских.
Что-то видимо не так просто.rokobungi
08.10.2017 19:37+1Начинают выясняться интересные подробности… Оказывается, Женя после окончания универа окунулся в суровую реальность жизни и ВНЕЗАПНО осознал, что его несистемные знания PHP на рынке мало кого интересуют, что конкуренция огромная, поэтому нужно знать и уметь немного больше. Он пришёл к выводу, что просидел штаны в универе зря, спохватился и давай учиться, систематизировать свои знания, ходить на курсы, применять умения на практике, работать за еду, получать сертификат и устраиваться на работу с хорошей зарплатой. Таких мифических «Женей» хватает везде, не только в IT. Но это уже совсем другая история. Что мешало этому Жене систематизировать знания, повышать квалификацию, тренироваться во время учёбы? Возможно, именно уверенность в том, что ему, как в школе, будут разжёвывать и вкладывать в голову. Нет, Жене нужно было при поступлении в ВУЗ понимать, что ему дадут лишь отправную точку, а вот куда направить вектор он уже должен будет решить сам.
JekaMas
09.10.2017 04:05+1А что мешало ВУЗу отрабатывать свои деньги бюджета? Шутка, сразу говорю, а то еще накормитесь…
В 2002году мало что было слышно про международные курсы, на самом деле. Это вопрос раз. Вопрос два — время. То, что знания в наших ВУЗах неактуальные и ненужные, не говорит о том, что студента не нагружают. В случае, МИЭТ — это физика, электроника и математика, которых нормально так.
В общем-то, вы сейчас предлагаете сделать с обучением в ВУЗе то же, что случилось со школой после введения ЕГЭ и деградации: в обязательном порядке сейчас школа совмешается с репетиторами, если хочешь хорошее образование. Но тогда вопрос: а зачем такое образование? Тем боле, зачем оно, если в других системах образование работает за свои деньги. Это, пожалуй, главный вопрос — мне лично на такое образование своих налогов жаль, ибо они пойдут большей частью на содержание бюрократии и пожилых преподавателей, которых ни уволить, ни переучить.
chuchelo_myauchelo
05.10.2017 22:18+2Большинство советов сводятся к тому, что все в руках студентов, крутись-вертись и все получится, жизнь такая, выживает сильнейший и около того.
Автор сделал именно то, что советуют, и это сработало! Этот же алгоритм он рекомендует использовать для «простых людей», потому что он на себе убедился в его работоспособности — и это правильно!
А просто людям что делать? Не все могут самостоятельно во всем разобраться, все понять и стать специалистом.
А таким не место в IT. Если они уже сейчас не могут самоорганизоваться и разобраться в незнакомой области, то что им делать через 5-10 лет, когда их знания устареют? Чем раньше человек не просто поймёт, а осознает, что «всё фигня и надо начинать вертеться», тем лучше. Именно из таких людей и вырастают высококлассные специалисты.
Не до всех эта «простая» истина доходит сразу. Мне вот, например, понадобилось сначала пару лет поработать после универа.
Очень многие поступают на IT специальности совершенно не понимая, что там вообще происходит. Они идут туда просто потому что «прикольно, гы-гы, я за кампуктером круглые сутки в дотку\кс шпилю, значит буду ай-тишником». Слабые и ненужные отсеиваются, сильные остаются — естественный отбор в действии. А если бы в ВУЗах «учили как надо», то слабых стало бы меньше, а сильные стали бы ещё сильнее.Int47 Автор
05.10.2017 23:19+1Согласен во многом, «таким не место в IT, если они уже сейчас не могут самоорганизоваться и разобраться» — это обосновано. Тем не менее, есть ситуации-исключения. Поясню на примере.
Я знал несколько студентов (наверняка они не единственные в стране), которые проявляли интерес к различным ИТ-темам, кого-то привлекал веб-дизайн и разработка сайтов, кого-то анализ данных и т.д. Но слыша на парах мутные лекции, откровенно говоря, ни о чем, или заглядывая в список лабораторных, где задания и технологии либо безнадежно устарели, либо абсолютно несодержательные, т.е. знаний из них не почерпнуть (тупо скопировать все по инструкции, например), люди не знали даже за что зацепиться чтоб «загуглить», с чего начать, что с чем связано.
То есть немало людей, для которых сфера ИТ покрыта завесой неопределенности и туманности. Они бы может и рады бы начать что-то самостоятельно изучать/вникать, но когда в универе ни разу не было упомянуто что-нибудь дельное, то у них даже идей не появляется, о чем писать в поиске, как сформулировать. А если вдруг кто-то и решался начать поиски, то в выдаче превалировали по большей части платные курсы или сухие тексты с вики, где всё сразу в терминах и понятиях.
Конечно, кто ищет — тот всегда найдет, но лично я бы не отказался, если в универе хотя бы просто озвучивали что-то типа «хотите изучить веб-разработку — начните с этого, почитайте о том, далее следует разобраться с тем-то; интересует разработка программ — ознакомьтесь с этим, с тем, вот такие языки, вот такие технологии, а после про то-то прочтите...». Насколько это сложно сделать хотя бы так? Не надо ничего разжевывать, ни с кем возиться. Действительно, как Вы говорите, слабые отсеются, все равно ничего не поймут, а для кого-то IT перестанет быть сферическим конем в вакууме, и станет ясно с чего начать и какой план действий.Harr
05.10.2017 23:27Ваши слова доказывает хотя бы тот факт, что работники из IT сферы (т.е. бывшие студенты) тоже бывают разные. Одни — лидеры в своих командах, первопроходцы и просто умеющие быстро разобраться и решить любой вопрос. Другие — вполне неплохие, но требующие точной постановки задачи и комфортных условий её выполнения, без инициативы и т.д.
Это, конечно, утрировано. Градаций много больше. Но суть, думаю, ясна. В IT пригодятся и те, и другие. Но в разных ролях.
sshmakov
06.10.2017 10:20Чтобы совместить это увлечение с учебой в универе и личным временем я решил в качестве очередной курсовой сделать программу на C#.
Именно в процессе работы над ним я начал узнавать немало разных вещей из программирования. Просто подойдя к реализации какой-то функции, писал в поиске как это реализовывается, как это выглядит в примерах, читал справочную информацию на MSDN, статьи на Хабре, туториалы.
Все правильно сделал ©
"Значение диплома о высшем образовании", написано давно, но вроде еще актуально.Всё переменчивоНичто не меняется в этом мире.
Здесь не публикую, потому правилами запрещен копипаст, даже себя, любимого.
Amffore
06.10.2017 13:16Эх, а я вот довольно таки поздно спохватился. 4 года ждал, когда научат в колледже. Да, дали фундаментальные знания, но какого то четкого понимания, как их применять дальше, нет. Приходиться наверстывать упущенное.
rebuilt
06.10.2017 13:16Заголовок спойлераУж случаем это не ДВФУ, ШЭМ, Бизнес информатика?intfox
06.10.2017 13:17Перешел на второй курс университета, который студенты ласково называют «шарага».
Из предметов по связанных с ит это «Структуры и алгоритмы обработки данных», «Технология разработки программного обеспечения»(в основном про Git и немного про методы разработки scram и т. д.), и «ООП». Что с моим универом не так? Да, все дисциплины на устаревших технологиях, но с нынешней скоростью развития языков, фреймворков и технологий: пытаться подогнать программу не только опасно, но и не реально.
На вопрос «А нам это где нибудь пригодиться?», наш преподаватель по алгебре ответил: «Нет, после сессии вы это забудете и никогда больше не вспомните. Но в университете вас учат не знаниям, а учат учиться(простите за тавтологию)».
Rayslava
06.10.2017 14:16Я увлекся программированием ещё классе в шестом, наверное, занимался самообучением, потому что в моей деревне негде было достать не то, что кружков, даже подходящей литературы. Спасибо родителям, что честно купили мне книжки, через каких-то дальних знакомых доставали софт (ну и что, что turbo pascal, ну и что, что хелп был на второй дискете, которую не дали) и даже подключили дайл-ап!
И потом я очень-очень порадовался, что не пошёл на какую-то «программистскую» специальность в институт, а пошёл на вполне железячную, но с первого курса устроился на погромистскую работу (на полдня в госконтору с маленькой зарплатой и 2.5 часа добираться в одну сторону от дома), но в результате моего самообучения на реальных задачах у меня получилось более консистентное и полезное образование, чем у того, что дают в ВУЗе.
Ну да, нам тоже рассказывали великие тайны про устройство и работу КР580ВМ80А, а также электронно-лучевой трубки (справедливости ради, про LCD-экран тоже пару лекций прочли). Но по крайней мере это не провоцировало отвращение к тому, чем я хотел заниматься, ну а то, что принудительная попытка чему-то «обучить» только прививает отвращение, было понятно ещё со школы.
В итоге, к шестому курсу у меня был диплом, обложку которого можно показать, если работодатель попросит и был опыт, достаточный, чтобы предъявить на собеседовании на не слишком крутую позицию.
Но я даже не знаю, норма это, или нет.
domix32
06.10.2017 20:05Без пояснений/разъяснений, просто читали, а мы записывали.
традиционно не считают нужным поведать для чего и зачем
А вопросы задавать не пробовали?
«Бизнес-информатику»
Неудивительно, что было больше про экономику, чем про программирование — направление вроде как нацелено на прикладные нужды бизнеса, а не на разработку чего бы то не было.
Int47 Автор
06.10.2017 21:25Что касается вопросов, то ситуация, кому-то может показаться смехотворной, но по мне так она за гранью добра и зла.
Когда просили пояснить что-то у преподавателей, которые читали тексты с вики, они, задумавшись на мгновение, начинали пересказывать то же, что только что прочли немного другими словами или перефразируя. Толка никакого короче. Либо читали, сами не зная что, либо витали в своих мыслях, либо просто не было желания заморачиваться над ответом. Короче как готовили лекции (просто зайдя на википедию), также «качественно» и отвечали.
Преподаватели же разбирающиеся в математических науках на вопросы «где это может пригодиться», заданные после того как они испещряли доску формулами, доказательствами, графиками и прочим, давали ответ в том же «математическом стиле» без конкретных примеров, аналогий, практических применений в жизни. Ну например, если бы спросили про регрессию, ответ был бы — «это один из основных инструментов эконометрики, ее модели можно использовать для изучения зависимости целевой переменной от ряда факторов», ну или типа того. Может это конечно и содержательный ответ, но на Хабре и то подробнее описывают на примерах в некоторых статьях, как применяются разные формулы и для анализа данных, или для ML, и для прочего.
Конечно, мы не спрашивали всех подряд, после пары таких случаев в первое время забили этим заниматься, потом уже никакого энтузиазма не было.
Направление несомненно «нацелено на прикладные нужды бизнеса», и никто не против, что немало экономики, просто то, что было по разработке и тому, что ее касалось, было, вкратце говоря, неадекватным (описано в статье). Да и в описании специальности фигурируют слова «изучение информации и получение навыков разработки, эксплуатации информационных систем и веб-ресурсов».
VM390
07.10.2017 11:26Если спросить студента — какие знания он хотел бы получить в институте, то его ответ свёлся бы к монументальному «чтоб взяли в хорошую компанию на хорошую зп, дабы заниматься интересным делом». Такой ответ ничего не прибавляет к пониманию проблемы образования ИТ-наук в вузе. Рискую предположить, что обучение конкретным языкам программирования (кроме системных) — недальновидная трата времени. Так а что надо изучать в вузе? Примерный ответ таков: 1-курс >> теория: — Алгоритмы, структуры данных, языки, CУБД, ассемблер, компилятор, интерпретатор, ОС, аппаратура, ЭВМ, криптошифрование, Защита информации и т.д.; 2-ой курс >> создание учебного интерпретатора и компилятора; 3-й курс >> создание учебной ОС или ОС РВ; 4-ый курс >> Технологии создания индустриального ПО; 5-ый курс >> практическая стажировка в гос или коммерческом секторе, «специальные темы» ( разработка высокопроизводительных систем/систем РВ, подробно Архитектура ЭВМ, Перспективные ЭВМ, ИИ ), знакомство с устаревающими темами (типа реляционные СУБД, ООП, и т.д.) По ряду специальностей можно добавить темы: программируемые матрицы, Аналоговое программирование, Сети, Управление проектами ПО. Как-то так… Главное, чего никогда не было ни в СССР, не в «демократии» — это подготовленных кадров для ВУЗов. Причем эти кадры есть! Может ввести налоговые послабления для фирм, специалисты которых смогут читать лекции в ВУЗах?
san-smith
Астрологи объявили неделю «необразованной молодежи». Количество статей увеличилось вдвое. Видимо день учителя оказывает влияние.
PavelMSTU
И в самом конце будет пост
«подборка статей по теме „необразованная молодёжь“...»
в стиле этого поста. :-D