Мне послышалось «Гарвард», потому что я отреагировал на Стэнфорд, и, пока продумывал аргумент, подзабыл название университета. Но сути это не меняет.
Речь идёт о том, что если я сравню ежедневную жизнь в своей альма матер (университет Торонто) и Гарвардом, то я найду больше отличий, чем общих мест; и если я начну сравнивать тот же Торонто с киевскими ВУЗами (КПИ/Шевченко), то я, на самом деле, найду довольно много общего. В качестве примера «университета штата» я возьму Торонто, так как, хотя он формально находится не в США, но многие вещи там практически параллельны хорошим американским университетам, поэтому разницей, как мне кажется, можно принебречь.
Первое: хотя Торонто является хорошим университетом, элитным он не является. Если вы посмотрите, например, на Стэнфорд, то обнаружие, что в нём учится примерно 6 тысяч бакалавров и 8 тысяч магистров и аспирантов. Если вы посмотрите, что предлагает Торонто, то вы увидете, что в нём учится 33 тысячи студентов в бакалавратуре и 12 тысяч магистров и аспирантов — причём эту разницу им забили законодательно, чтобы они не становились чисто исследовательским университетом. За счёт этого получается, что ореол избранности не окружает его выпускников, и поэтому ВУЗу и самим выпускникам приходится побегать намного больше, чтобы найти работу. Все это прекрасно понимают. За счёт этого, если Стэнфорд живёт в своём мире — он может хоть завтра перевести все курсы на Фортран и никто этого не заметит — то Торонто многие вещи согласует с индустрией: например, история о том, как Сан пролоббировал Джаву как язык обучения первокурсников, является полулегендарной. Стэнфорд же может продолжать заниматься своими исследованиями, выпуская бакалавров как побочный продукт своей деятельности. И, опять же, поскольку Стэнфорд является элитой, то у него относительно низкая конкуренция за студентов; он всегда может рассчитывать на очень сильных аппликантов (без которых компании не будут набирать его выпускников). Торонто же такого себе позволить не может, и ему приходится ориентироваться на то, чтобы привлечь сильных студентов (Торонто в этом плане ещё плохой пример: лучше взять какую-нибудь глубинку, типа Iowa State).
Второе: элитарные университеты могут позволить себе собрать элитарных студентов и иметь очень мотивированную аудиторию, компенсируя нередкий подход к инструктажу со стороны преподов по остаточному принципу в свободное от работы время. Университеты средней руки себе такого часто позволить не могут, ибо количество слабых студентов в аудитории довольно значительно, и что-то делать нужно и с ними. Это приводит к тому, что, собственно говоря, программа строится совсем по-другому, так как многие вещи из элиты не прокатят.
Третье: у Стэнфорда тупо слишком много денег. Он может делать многие вещи, не задумываясь о том, сколько это будет стоить. За пределами элитных ВУЗов (это, наверное, в том или ином виде верхние
Поэтому с моей точки зрения, за мою жизнь ничего в Украине сравнивать со Стэнфордом смысла иметь не будет. Нужно сравнивать с университетами более низкого уровня. Если же начать сравнивать тот же Шевченко с Торонто, то уже будет веселее и реалистичнее. И, повторюсь, именно при этом сравнении выяснится, что основная разница в IT приходится как раз на семинары. А об этом совсем ничего не говорится.
С моей точки зрения, очень много предложений относительно образования программистов пытаются полностью перекроить систему и поэтому малореалистичны.
Поскольку в настоящий момент на сайте все комментарии, по сути, подписываются собственным именем, то всё нижесказанное является моим личным мнением и основывается на знании украинской системы образования по реалиям первой половины нулевых. Но это то мнение, которое я в том или ином виде готов повторить.
Первое. Статья с самого начала выбирает неверный ориентир в виде Гарварда. Если брать ориентиры украинской системы, то Гарвард является в той или иной степени клоном КИМО — местом, где учатся дети людей с деньгами и властью, и те дети, с которыми родители (с деньгами и властью) хотят, чтобы учились их дети. Перед Гарвардом как перед университетом не стоят многие из задач, которые стоят перед простым украинским ВУЗом — например, где будут работать их выпускники и как нужно продавать свою программу работадателем («Дядя, не берите этого человека из Национального Аграрного университета, там плохо учат, возмите нашего, из МАУП!»). Выпускники КИМО без работы не остаются — потому что они выпускники КИМО. Хорошим ориентиром для всех разговоров про украинскую систему образования являются, например, университеты штатов, особенно хорошие. Им-то нужно учить всех, а не только детей элиты и допущенных к телу.
Второе. Мне кажется, что в настоящий момент акценты в дискуссии об образовании расставлены несколько неверно. С моей точки зрения, из-за того, что в качестве ориентира выбирается Гарвард, то приоритет получают исследования, хотя, по большому счёту, если абстрагироваться от публикаций и аспирантуры как таковой, то программы бакалаврата отличаются в Украине и в тех же США незначительно — по своему фактическому наполнению. Отличается очень сильно другое: семинары. Грубо говоря, если от студентов потребовать реализовать, скажем, сортировку пузырьком на РНР или Лиспе, то они её таки-реализуют. Вопрос состоит в том, на чём её реализовывать. Ситуация, при которой в прошлом тот же Шевченко плотно сидел на Паскале/Дельфи, при том, что в индустрии проектов ни на одном из этих языков не было — это то, чего стараются изо всех сил избегать университеты средней руки в тех же США. Грубо говоря, лекторы — это ладно, понятное дело, что многие люди старой закалки могут отстать от жизни, но в тех же США семинаристы — это обычно студенты-аспиранты, или просто студенты старших курсов, и, с одной стороны, во многих случаях они действительно знают разницу между теорией и практикой, и, с другой, не стесняются иметь студентов. То, что сдавалось (и особенно — как оно сдавалось) на лабораторных — мы, по-моему, все знаем, и ожидания качества от студенческого кода обычно очень низкие. А это неверно. Студентов нужно иметь, из нужно заставлять писать разными стилями, их нужно учить приличным манерам в комментариях и наименовании переменных, их нужно заставлять документировать проект — в общем, сдача лаб должна максимально напоминать реальный проект. Это не так сложно сделать — если, конечно, этим занимаются реально боевые люди — и эффект от этого будет куда больше, чем от изменений в академическую программу.
Строго говоря, проблема украинских ВУЗов состоит не в академической «базе» (хотя, конечно, сейчас многие вещи оставляют желать лучшего, но в целом это не является проблемой). Проблема украинских ВУЗов состоит в том, что они очень часто воспринимаются скорее как помеха на пути деятельности в IT, чем ступенька. Проблема в том, что университетский опыт не расценивается как опыт работы (а это работа — препод, по сути, формулирует требования, зачастую намного более сложные, чем реальные, к программному продукту, и ожидает, что студент сможит их выполнить), а скорее как эдакая полоса препятствий, которую нужно преодолеть как обряд инициации. Справедливости ради стоит отметить, что это почти везде так, но американские ВУЗы намного сильнее заботятся о том, чтобы эта полоса препятствий как можно больше напоминала реальную жизнь — ибо им выпускникам ещё нужно найти работу. Задержка между индустрией и академией в IT существовала практически везде, и стесняться её исправлять не стоит — но не нужно и забывать, что каким бы хорошим не был лектор и сколь бы актуальным не был курс лекций, в конце концов, студент напрямую общается в первую очередь с семинаристами. И большинство внимания должно быть направлено именно туда.
Define хреновый. Define хороший.
Если серьёзно, то именно критерии, по которым «хреновый» код отличается от «хорошего» кода и являются знанием предметной области.
Да нет, в том-то и дело, что не всё равно.
Понимаете, если мы начинаем сравнивать КПИ с буржуйским ВУЗом средней руки, то выясняется масса интереснейших вещей, которые не видны, если его сравнивать с Гарвардом. Во-первых, разрыв между академией и индустрией, повторюсь, есть всегда — вопрос только в величине этого разрыва. Фактически, по очень многим параметрам эти ВУЗы будут близнецами-братьями: есть предметы, которые никто не использует, но которые нужно учить, есть ситуации, когда программные продукты, которые используются при подготовке студентов сильно отличаются от стандарта в индустрии, есть преподы, которые застряли в прошлом, есть откровенно плохие преподы, есть массы не очень мотивированных студентов и многое другое. Такие проблемы есть у всех. Плюс, я повторюсь, поступил тот, кто поступил — и с этим всем мы пытаемся взлететь на часто ограниченном бюджете.
При таком подходе выясняется, что часть часто идентифицируемых проблем не является проблемами. Точнее, они характерны для системы образования как таковой и не являются чисто украинским бичём — например, что делать, если появился новый часто применяемый подход, который нужно дать студентам? Пока университет разберётся, чего он хочет (а часто ещё пока индустрия разберётся, чего она сама хочет, так как и здесь не всё гладко), пока утвердит программу, пока напишет учебники, несколько выпусков студентов будет кушать кактус, грубо говоря. Когда я учился, это было просто хронической проблемой, так как, например, ДОСовский код (ещё и с ассемблерными вставками) давал не так уж много знаний, которые работали на тех проектах, за которые платили. И я с вами не соглашусь относительно того, что украинские ВУЗы движутся в неправильном направлении — большинство таких очевидных косяков в конце концов закрыли. Причём что там, что здесь — там чуть раньше и лучше, но я точно так же в Канаде учился программировать низкоуровневые файловые операции из-под С, которые сейчас никто таким образом реализовывать не будет. По большому счёту, меня по нынешним временам учили писать взрывоопасный код.
Да, и при этом по многим параметрам программа повторяла ту, что была на тот момент в Шевченко. Всё равно студентам дают более серьёзную теорию, чем то, что понадобится 90% из них, так как одна из задач современного бакалаврата — найти и подготовить оставшиеся 10%.
Другое дело, что при этом (при одном и том же теоретическом курсе) в Северной Америке сами семинаристы держат большую фигу в кармане. Курс по структурам данных? Хорошо, мы будем писать на С++ со всеми комментариями и с жёстким комментированием и с придерживанием конвенции наименования переменных. Почему? Потому что я так сказал, и всё равно на работе с вас потребуют то же самое. Социология? Отличненько, в классе 200 человек, мы в этом году набрали 20 студентов в магистратуру, поэтому большинство из вас пойдёт продавать страховки через сетевой маркетинг. Для этого большинства я специально требую, чтобы вы писали мне свои работы не больше чем на три страницы, так как умение кратко излагать мысли пригодится всем. Файловые системы? В этом курсе вы обязаны отработать в команде минимум по два человека, чтобы приобрести навыки координации — какой угодно код в реальном мире вам писать никто не даст. И так везде.
То есть, грубо говоря, именно когда проходят семинары, их устроители специально думают в режиме «что это даст моим студентам в условиях, которые отличные от чистой академии». Таким образом, лёгким движением руки курс превращается из, например, формальных логик, в «формальные логики и написание кода как API». Ну, скажем. Причём для этого нужно как хорошо знать, за что же сейчас платят деньги, так и знать, как (пусть даже относительно простой) код должен выглядить правильно. Плюс, прошу пардону, не стесняться дрючить студентов за несоблюдение требований «правильноси» кода.
По большому счёту, это не требует никаких глобальных реформ в образовании — это требует только, чтобы семинаристы выполняли свою работу. Но при этом нужно иметь правильную систему поощрений и наказаний — да и, просто, понять, что для Украины, где основная подготовка для большинства работ в IT идёт на уровне бакалаварата, опыт, которые студенты получают конкретно от взаимодействия именно с семинаристами, намного важнее что теоретической базы, что содержания самого курса. Можно говорить про высокую науку, но мы — будем надеяться, пока — не на том уровне.