Пост из Блога
Ad_Astra на Хабре под названием "IT-образование моей мечты":
"Нет, этот топик - не провокация и не попытка срубить комментов, "плюсадинов", кармы или ещё чего-нибудь в том же духе. Это, что называется, наболело.
Нет, у меня нет высшего IT-образования. Что мне нисколечко не мешает работать в данной отрасли и получать столько же, если не больше, сколько получают мои ровесники, протиравшие штаны в универах. А всё почему? А потому что в столь стремительно меняющейся отрасли чего-то можно достичь только при постоянном САМОобразовании, изучении технологий, и, что немаловажно, систематизации знаний. Чего люди с "корками" зачастую понять не могут, и в результате, работая в команде, можно насмотреться на такой "быдлокод", что просто диву даёшься.
Сейчас в куче вузов, начиная от профильных технических и заканчивая экономическими и естественнонаучными, есть специальности типа "прикладной информатики в области ...". На одной из таких я даже честно полтора года пыталась учиться - после чего вследствие проблем со здоровьем и тяжести сочетания учёбы и работы забила. О чём нисколько не жалею. Ибо как у нас сейчас учат таких, с позволения сказать, "специалистов"?
Сначала пару лет зверски грузят всей возможной математикой (при этом, даже если трогают вещи вроде аппроксимации функций, в жизни не скажут, как это используется в реальном программировании той же графики). Параллельно с этим сперва кодят наипростейшие алгоритмы на бейсиках-паскалях, потом учатся накидывать кнопочки на форму в Дельфях (что интересно - довелось год пожить по обмену в Штатах и походить на тамошнюю информатику, так вот НИКТО там на подобном не пишет и не собирается). Ещё годик помурыжат теорию баз данных, научатся на тех же Дельфях выписывать простенькие программки для управления, например, складом, а ещё - о, какой эксклюзив! - выучат пару-тройку тэгов HTML в качестве бонуса. А дальше уже пойдёт всякая хрень из той самой области, по отношению к которой информатика является прикладной. Вот и всё. Где систематизация и чёткие знания в голове? А нигде.
Да, я знаю пару вузов-контрпримеров, когда реально разбирается и то же веб-программирование со всеми полагающимися спецификациями, и новейшие разработки, и ещё много чего. Но это всё скорее исключение, чем правило. Большинство из образовательных программ, которые мне доводилось видеть, построены примерно так, как я описала выше.
И я вот, честно говоря, не понимаю - какой кретин вообще решил, что в качестве теоретической базы для программистов должна выступать именно математика в самых сложных для понимания своих областях? Дискретная математика и базовая логика - да, ИМХО нужны однозначно. Линейная алгебра, операции над матрицами - аналогично. А вот всё остальное ИМХО - уже только после более узкой специализации, когда 3dшники отделяются от программистов баз данных, и так далее. Тем же 3d-шникам просто НУЖНО будет понять аппроксимацию функций и всяческие стереометрические приблуды, и никуда они от этого не денутся, да. Но это уже явно не на начальном этапе, чтобы не было забивания головы в ущерб реально базовым вещам вроде той же дискретной математики.
Что бы я ещё зачислила в обязательный теоретический базис? Теорию языков, алгоритмов и парадигм программирования. А то стыд-позор, выпускники вузов не знают, чем функциональный подход отличается от объектно-ориентированного, а также чем префиксная форма записи функции и аргументов в каком-нибудь Лиспе отличается от инфиксной, принятой в большинстве императивных языков. Про то, что языки могут отличаться не только синтаксисом, но и семантикой, большинство тоже не в курсе (а посему крайне плохо приспособлены к выбору технологии под конкретную задачу). Ну и формализация синтаксиса при помощи формул Бэкуса-Наура - полезная штука. Как студенты, для которых это пустой звук, потом смогут написать хотя бы банальный парсер чего-нибудь - я не представляю.
Ещё я не понимаю желания преподавателей так или иначе заставить студентов писать тексты программ и (о, ужас!) рисовать блок-схемы непременно на бумаге. Я помню, как одна мадам, которую и в детский сад-то пускать нельзя было, устроила студентам истерику по поводу того, что те просто распечатали накоденную на Паскале стопку задач. "Нет, всё в тетради, и чтоб к каждой задаче была блок-схема!" Блин. Если это такая защита от списывания - то тот, кому надо, преспокойно спишет и от руки. Так усложняется жизнь как раз наиболее продвинутым ученикам, которые уже научились МЫСЛИТЬ логическими категориями, сразу преобразовывать свои мысли в код, и которым уже не нужны костыли в виде примитивных блок-схем.
Вообще, касаемо этих самых схем - я считаю, что совсем уж примитивные вещи надо давать в школе. Вместе с Бейсиками-Паскалями на начальном уровне, кстати. А всякие Ворды-Эксели и прочую офисную муть при наличии компьютеров почти в каждой семье школьники и сами прекрасно освоят, когда им понадобится напечатать реферат или что-нибудь масштабное посчитать. В ВЫСШИХ учебных заведениях то же схематическое моделирование надо давать на нормальном уровне, то бишь UML и всё такое, как раз и ООП так понять будет легче, и бизнес-логика приложений систематизирована будет.
Собственно, вот. Я вам примерно описала, как вижу первые пару лет нормального обучения программированию. А дальше, только тогда, и не раньше - уже конкретные языки, IDE и real-life задачи. Со всей вытекающей отсюда специализацией, дополнительным математическим фундаментом и тому подобными вещами. Вот тогда с высокой вероятностью вырастет не "индус", а нормальный разработчик, способный написать качественный до последней строчки код.
Другое дело, что я таки реалист, да - и понимаю, что ни убелённые сединами профессора "старой школы", ни молодая преподская поросль, как правило, жадная до взяток, на такое не пойдут. Хотя бы потому, что это надо самим иметь СИСТЕМУ знаний в голове. Кто-то должен начать... но кто? Вот почему людям типа меня и остаётся пока всего лишь мечтать... попутно посылая куда подальше наглецов, пытающихся понтоваться "корками" при отсутствии реальных знаний в голове. А вы что думаете, хабрадамы и хабрагоспода? Каким вы видите идеальное компьютерное образование?
P.S. Никогда не забуду Галину Петровну, свою школьную учительницу по информатике, и всячески благодарна ей за то, что она не стала отбивать у детей охоту как раз к такому саморазвитию (в отличие от многих её коллег, третирующих учеников за попытку что-то сделать по-своему). Пока в качестве выпускного экзамена самые наиботанистые из моих одноклассников писали тесты по физике на Паскале, я то же самое оформила в виде интерактивной веб-страничке не Perl. Думаете, она, взглянув на исходники, хоть строчку в них поняла (особенно учитывая, что это всё же был Perl, а о понятии "культуры кодинга" я узнала уже позже)? Нет, разумеется. Но, к её чести она не стала меня ругать, заставлять рисовать блок-схемы, и так далее. Работает? Ага. Пять, следующий :) Все бы так делали!"
Солидарен.