26 декабря 2007

IT-образование моей мечты

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

Нет, у меня нет высшего IT-образования. Что мне нисколечко не мешает работать в данной отрасли и получать столько же, если не больше, сколько получают мои ровесники, протиравшие штаны в универах. А всё почему? А потому что в столь стремительно меняющейся отрасли чего-то можно достичь только при постоянном САМОобразовании, изучении технологий, и, что немаловажно, систематизации знаний. Чего люди с «корками» зачастую понять не могут, и в результате, работая в команде, можно насмотреться на такой «быдлокод», что просто диву даёшься.

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

Сначала пару лет зверски грузят всей возможной математикой (при этом, даже если трогают вещи вроде аппроксимации функций, в жизни не скажут, как это используется в реальном программировании той же графики). Параллельно с этим сперва кодят наипростейшие алгоритмы на бейсиках-паскалях, потом учатся накидывать кнопочки на форму в Дельфях (что интересно — довелось год пожить по обмену в Штатах и походить на тамошнюю информатику, так вот НИКТО там на подобном не пишет и не собирается). Ещё годик помурыжат теорию баз данных, научатся на тех же Дельфях выписывать простенькие программки для управления, например, складом, а ещё — о, какой эксклюзив! — выучат пару-тройку тэгов HTML в качестве бонуса. А дальше уже пойдёт всякая хрень из той самой области, по отношению к которой информатика является прикладной. Вот и всё. Где систематизация и чёткие знания в голове? А нигде.

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

И я вот, честно говоря, не понимаю — какой кретин вообще решил, что в качестве теоретической базы для программистов должна выступать именно математика в самых сложных для понимания своих областях? Дискретная математика и базовая логика — да, ИМХО нужны однозначно. Линейная алгебра, операции над матрицами — аналогично. А вот всё остальное ИМХО — уже только после более узкой специализации, когда 3dшники отделяются от программистов баз данных, и так далее. Тем же 3d-шникам просто НУЖНО будет понять аппроксимацию функций и всяческие стереометрические приблуды, и никуда они от этого не денутся, да. Но это уже явно не на начальном этапе, чтобы не было забивания головы в ущерб реально базовым вещам вроде той же дискретной математики.

Что бы я ещё зачислила в обязательный теоретический базис? Теорию языков, алгоритмов и парадигм программирования. А то стыд-позор, выпускники вузов не знают, чем функциональный подход отличается от объектно-ориентированного, а также чем префиксная форма записи функции и аргументов в каком-нибудь Лиспе отличается от инфиксной, принятой в большинстве императивных языков. Про то, что языки могут отличаться не только синтаксисом, но и семантикой, большинство тоже не в курсе (а посему крайне плохо приспособлены к выбору технологии под конкретную задачу). Ну и формализация синтаксиса при помощи формул Бэкуса-Наура — полезная штука. Как студенты, для которых это пустой звук, потом смогут написать хотя бы банальный парсер чего-нибудь — я не представляю.

Ещё я не понимаю желания преподавателей так или иначе заставить студентов писать тексты программ и (о, ужас!) рисовать блок-схемы непременно на бумаге. Я помню, как одна мадам, которую и в детский сад-то пускать нельзя было, устроила студентам истерику по поводу того, что те просто распечатали накоденную на Паскале стопку задач. «Нет, всё в тетради, и чтоб к каждой задаче была блок-схема!» Блин. Если это такая защита от списывания — то тот, кому надо, преспокойно спишет и от руки. Так усложняется жизнь как раз наиболее продвинутым ученикам, которые уже научились МЫСЛИТЬ логическими категориями, сразу преобразовывать свои мысли в код, и которым уже не нужны костыли в виде примитивных блок-схем.

Вообще, касаемо этих самых схем — я считаю, что совсем уж примитивные вещи надо давать в школе. Вместе с Бейсиками-Паскалями на начальном уровне, кстати. А всякие Ворды-Эксели и прочую офисную муть при наличии компьютеров почти в каждой семье школьники и сами прекрасно освоят, когда им понадобится напечатать реферат или что-нибудь масштабное посчитать. В ВЫСШИХ учебных заведениях то же схематическое моделирование надо давать на нормальном уровне, то бишь UML и всё такое, как раз и ООП так понять будет легче, и бизнес-логика приложений систематизирована будет.

Собственно, вот. Я вам примерно описала, как вижу первые пару лет нормального обучения программированию. А дальше, только тогда, и не раньше — уже конкретные языки, IDE и real-life задачи. Со всей вытекающей отсюда специализацией, дополнительным математическим фундаментом и тому подобными вещами. Вот тогда с высокой вероятностью вырастет не «индус», а нормальный разработчик, способный написать качественный до последней строчки код.

Другое дело, что я таки реалист, да — и понимаю, что ни убелённые сединами профессора «старой школы», ни молодая преподская поросль, как правило, жадная до взяток, на такое не пойдут. Хотя бы потому, что это надо самим иметь СИСТЕМУ знаний в голове. Кто-то должен начать… но кто? Вот почему людям типа меня и остаётся пока всего лишь мечтать… попутно посылая куда подальше наглецов, пытающихся понтоваться «корками» при отсутствии реальных знаний в голове. А вы что думаете, хабрадамы и хабрагоспода? Каким вы видите идеальное компьютерное образование?

P.S. Никогда не забуду Галину Петровну, свою школьную учительницу по информатике, и всячески благодарна ей за то, что она не стала отбивать у детей охоту как раз к такому саморазвитию (в отличие от многих её коллег, третирующих учеников за попытку что-то сделать по-своему). Пока в качестве выпускного экзамена самые наиботанистые из моих одноклассников писали тесты по физике на Паскале, я то же самое оформила в виде интерактивной веб-страничке не Perl. Думаете, она, взглянув на исходники, хоть строчку в них поняла (особенно учитывая, что это всё же был Perl, а о понятии «культуры кодинга» я узнала уже позже)? Нет, разумеется. Но, к её чести она не стала меня ругать, заставлять рисовать блок-схемы, и так далее. Работает? Ага. Пять, следующий :) Все бы так делали!

P.P.S. Тут в комментах в перерывах между смачным выяснением крутизны различных видов образования поступило достаточно дельное предложение — составить для айтишника что-то типа диабловского «дерева технологий». То есть мануал по тому, что, как и вслед за чем изучать. Возьмёмся? Даже внесу так сказать, стартовое предложение — начать с дискретной математики :) Продолжаем!
Теги:образованиешколатеория
Хабы: Учебный процесс в IT
+75
910 53
Комментарии 411
Похожие публикации
Рекрутмент в мессенджерах
30 ноября 2020БесплатноOTUS
Введение в цифровой дизайн
30 ноября 202032 340 ₽Нетология
IT-Recruiter
22 декабря 202040 000 ₽OTUS
Product Manager IT-проектов
17 января 202160 000 ₽OTUS
Лучшие публикации за сутки