Мы тут в последнее время довольно много обсуждаем сабж.
Вот я и подумал — может кому-то будет интересно.
Была такая статья "Как вырастить армию хороших программистов..."
Автор: Зверёк Харьковский
Дата: 15.03.05

Ниже — мой ответ на нее (он был опубликован в последней Компьютерре, но на computerra.ru еще не выложен):


Привет, Серёга!
Письмо Одногрупнику, Уехавшему в Столицу.

Место действия: Большой Город Маленькой Страны. Время действия: полгода после диплома.

...жить пятьдесят лет, думая, – это, вообще говоря, гораздо утомительнее, чем жить пять тысяч лет, ни о чем не думая.
Харуки Мураками. «Слушай песню ветра»


У нас даже «выпускного бала» не было: институту было уже не до нас – да и нам не до него. Рассовав по карманам свежеполученные корочки, народ разъехался по своим делам. С тех пор мы и не виделись.

А дальше – лишь от случая к случаю, то на случайном форуме узнаешь ник, то в аську стукнет старый знакомый, а то – хлоп – статья в «КТ»(Сергей Науменко, «Как вырастить армию хороших программистов...», КТ №576). Привет, Серёга!

...Оба мы 5 лет промучали собой Самый Большой Компьютерный ВУЗ Небольшой Страны. Оба получили свои (заслуженные?) красные дипломы. Оба учились и работали одновременно. Оба большей частью своих знаний и умений обязаны вовсе не родному ВУЗу. Да только ты – человек сознательный и целеустремленный – подался в науку; и – в Москву. А я – раздолбай и бездельник – остался. Бросил свою унылую работу, сижу вот, пью чай, смотрю как подрастает 10-месячная дочка, немножко пишу в «КТ», немножко рулю своим маленьким, но гордым бизнесом. В конце концов, в отличие от многих других одногрупников, мы оба, кажется, оказались именно там, где хотели оказаться: там, где нам самое место, а не там, где можно срубить сколько-нибудь немножко денежек ((с)Экслер) на хлеб. Ты не стал бы сидеть дома и пить чай, а я – я никуда отсюда не поеду; так что все в порядке. Привет, Серёга!

Да, впрочем, всю эту прикладную мемуаристику все равно редактор вырежет – поскольку не важно. Давайте не будем говорить, о чем мы не будем говорить, и будем – о чем будем.((с) Стругацкие) Важно вот что: нам не понравилось. Ну совсем. В программирование влюбленные со школы, поступившие на «свою» специальность своими силами и по своему желанию, пришедшие на первый курс с радостным ожиданием в глазах – мы последовательно сменили это ожидание на: удивление; недоумение; горестное недоумение; полную безнадежность. Помнишь, с каким аппетитом мы перечитывали расписание в начале каждого семестра? Какие предметы! – от одних названий, кажется, становишься умнее... Ни фига. Привет, Серёга!


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

Заметка на полях
Сапожник без сапог. В хххх году Министерство Образования Небольшой Страны дало Самому Крупному Компьютерному ВУЗу Небольшой Страны амбициозное задание: создать всеобъемлющую Систему Управления ВУЗом (от бухгалтерии до звонков на перемену) – которую впоследствии планировалось внедрить во всех ВУЗах страны. К сожалению, привлечение к этой задаче студентов младших курсов (старшим – не до того), а так же некоторое пренебрежение некоторыми важными стадиями разработки (архитектурное проектирование, координирование разработчиков, тестирование) привело к тому, что Система так никода и не была окончена.


Конечно, можно было плюнуть (по большому счету, так мы и сделали). Кто хотел – тот выучился, а кто не хотел – и шут с ним. Но я – не такой, и ты тоже не такой. Нам, чтобы жить, надо обо всем думать. От завтрашней погоды – и до размера затычки в ванной. Правильно? ((с) Тоже Мураками) – и мы не могли хотя бы не попытаться понять, что здесь не так, и что надо сделать, чтобы было «так». Ведь наверное же, где-нибудь умеют учить программистов? И конечно же, эта твоя статья про «армию программистов» – она оттуда, из тех наших разговоров под пиво, из той безнадежности и недоумения; я словно вернулся на пару лет назад и вживую услышал твой голос. Привет, Серёга!

Да, так, собственно, о чем это я? Вот о чем: интересно, что из настолько одинаковых (по крайней мере, близких) посылок мы сделали настолько различные – почти противоположные – выводы (Я здесь не стану останавливаться на том, что сама цель – поднять уровень экспорта страны, куда ты сам уехал полгода назад, до уровня страны, известной своими отвратительными, но продуктивными программистами – кажется мне сомнительной. Важен сам принцип – ведь мысли эти ты вывез из Большого Города Небольшой Страны).

Заметка на полях
Индусский код. Жаргонное нарицательное название для программного кода крайне низкого качества, использующего простые, но порочные принципы «copy-paste», «главное завалить – а там запинаем», «шапкозакидательство». Так же известен как «write only», или (в пику принципу «написано однажы – читается везде») – «написанное однажды – лучше не читать».


Ты пишешь: программистов надо учить быстрее, ведь после третьего курса им уже интереснее работать, а не учиться. Но: может быть, их стоит учить интереснее – чтобы они все же учились? Спроси себя: отчего и почему мы забили на лекции и практики? Оттого ли, что так хотелось найти хоть какую завалящую работу – или оттого, что уже не ждали от этого института ничего нового? И неужели – будь эти спецкурсы такими же шикарными, как их названия – мы бы не нашли возможность все это изучить? Будь это обучение настоящим, систематическим, с постоянным повышением уровня проектов, с опорой последующих курсов на предыдущие?

Ты пишешь: сделать обучение более «утилитарным» – основные понятия, спецкурс по выбранному направление – и вперед на мины. Но: ведь это нормальная, десятилетиями отработанная схема. Профессионально-техническое училище (ПТУ) называется. Таким образом здорово готовить строителей – но не инженеров. А программист (даже тот, который решает задачу «сделать синим квадратик 8 при нажатии на кнопку ОК») – это все-таки инженер; это человек, нормальная повседневная деятельность которого – как минимум творческая адаптация известных методов, а как максимум – создание новых методов и даже принципов проектирования/программирования. Инженер немыслим без фундаментальной подготовки – как знания общих «законов природы» (математики, теории вероятности и далее со всеми остановками), так и прочной основы в своей области: алгоритмики и паттернов; не только выборочных языков программирования (одного? двух?), но и их общих принципов; не только «модной» обьектно-ориентированной парадигмы, но и прочих, хоть в общих чертах. Важнейшая, но вообще никем здесь неосвоенная область – история компьютерных наук; вовсе не ради интереса – просто потому, что решая задачу, нужно знать, как ее решали раньше и что из этого вышло. Ну с какой ёлки в МТИ, в Беркли этим фундаментальным курсам уже больше 30 лет (!) – а у нас! У нас только – привет, Серёга!

Заметка на полях
Повышение плотности программистов на душу населения. В 1999 году студенты, поступившие на специальность «Программное Обеспечение» Крупного ВУЗа составили 3 группы по 20-25 человек. В 2004 – 8 групп, из них 5 – полностью контрактных. Впрочем, перенасыщенность программистами Большому Городу пока не грозит: из каждой группы по специальности идут работать в среднем 3-5 человек.


Ты пишешь: всех посадить за компьютеры, компьютерные занятия – главные, никаких домашних занятий. Но: зачем? Известно же (ты это видел – и я это видел), что в условиях ограниченного времени и «насильственного» программирования (делай сию секунду, а то не успеешь сдать) – какое программирование? Да никакое практически. И вот фундамент – историю, теорию, метод – можно (и нужно! нужно!) прочитать на лекции; а вот средство – язык, IDE, БД – насколько приятнее и полезнее освоить пусть и на институтском компьютере, но в свободное от рамок (1 пара от звонка и до оного) время.

Туда же – в лес – отправить «олимпиады»; фарс несусветный, соревнования по некачественному решению абстрактных задач за жестко ограниченное время: заведомо известно, что за победы на олимпиадах и за создание работающих, практических проектов отвечают совсем-совсем разные полушария. Тем бы людям, что затевают эти нешуточные игрушечные войны – встретиться в мирной обстановке, на конференции поспорить до хрипоты о любимых методах решения общих задач; о странных – малоизвестных, но кем-то любимых языках; о путях развития наших с тобой информационных технологий.

И, может быть, это и чересчур самоуверенно (...но мы ведь оба этим грешим, а?) – но мне очень хочется верить, что «народ за тобой не пойдет»; что все же перекосы нашей образовательной системы выправятся в сторону создания специалистов с правом выбора и «роста» – не «армию исполнителей», а, пардон, «креативщиков», способных решать новые задачи нетривиальными методами, а может и – чем черт не шутит? – эдак плечиком хоть чуть-чуть, но подтолкнет музыку (то есть программирование – В.Ш.) ... куда?.. вперед?.. выше?.. Что значит – вперед, выше, дальше?.. куда-то, он еще и не ведает куда, на новое место.. Мне ведь тоже где-то «за державу обидно» – да только не за Большую Страну, и не за Небольшую Страну – а за наш «программистский интернационал» – который все пытается скатиться из инженерной науки в «бери больше, кидай дальше...» И мечтается лет через ...надцать посмотреть ласково на подрастающее поколение, вспомнить с горечью «армию программистов» и спросить строго:

Если вы такие умные, то почему строем не ходите?

А в остальном – привет, Серёга!


ЗЫ aka PS: У дихотомии ВУЗ/ПТУ, на самом деле, есть еще и «третья голова», то бишь третья альтернатива: армейская система. Там рядовой, малоподготовленное «пушечное мясо» (Ахтунг! Все несущественное сильно упрощено!), когда его амбиции и способности вплотную подводят его к офицерскому званию, отправляется в академию – где и получает необходимое в/о к уже имеющемуся о/р. Заметим, что по этой же системе часто работают «постсоветские бухгалтеры»: двухмесячные бухгалтерские курсы (пройденные в начале девяностых), с возрастанием амбиций требуют фундамент высшего экономического образования. А вот программисту с о/р ВУЗовское образование уже не даст ничего. Ноль. И сие прескорбно весьма.
это мы, Зверьки!
Автор: Зверёк Харьковский    Оценить