Чему не учат в школе

Недели три назад мы разместили несколько объявлений в местных компьютерных изданиях. Ищем программиста. Требования - ничего сверхъестественного. Знание Windows на уровне API, базы данных в архитектуре клиент/сервер, SQL, Delphi. Минимум на сегодняшний день. Ни тебе локальных и распределенных сетей, ни глубокого знания и умения программировать железо (модемы, джойстики и проч.), ни владения специфическими API (MAPI, TAPI и т.п.). Я уже не говорю про основательное знание объектно-ориентированной идеологии. Все эти RTTI, исключения и проч...

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

Выходит, что наша хваленая система высшего образования не способна подготовить тривиального программиста. Хорошо, если человек знает, к чему стремится, и в процессе учебы самостоятельно будет приобретать знания, которых ему не дадут. Другое дело, если при поступлении абитуриентом двигали иные мотивы: это, мол, модно, на этот факультет пошли мои друзья, там будут компьютеры... Конкурс на специальности, так или иначе связанные с программированием, уже лет десять один из самых высоких (8 (!) человек на место на ФПМ БГУ в этом году). Уверен, что большинство нынче испытывающих фортуну на вступительных экзаменах мыслят о компьютере, в первую очередь, как о классном игральном автомате и только потом - как о мощном инструменте, на котором можно делать что-либо иное, кроме как гонять бедных монстров по коридорам DOOM. Отучится такой студент пять лет, а что дальше? - Вопрос риторический и ответа не требует. Ответ нужен на другой вопрос. Почему у нас не могут подготовить стоящего программиста?


Некому учить

Помните лозунг: "Кадры решают все". Причина первая, на мой взгляд, кроется в том, что этих самых кадров у нас нет. Программирование преподают все, кто угодно, но только не программисты. Паскаль по книгам незабвенных Вальвачева-Крисевича-Бородича-кто-у-них-там-еще и умение составить программку сортировки массива методом пузырька - уже достаточный уровень, чтобы читать курс лекций. Собственно, кто такой программист? Человек, умеющий составить и запрограммировать простенький алгоритм, или специалист, способный разработать, написать и отладить настоящую программу, на которую найдется хотя бы один покупатель? Мне больше импонирует вторая формулировка. Она из жизни. Именно такие специалисты подразумеваются, когда работодатели ищут программистов.

В Национальной хоккейной лиге, что в Северной Америке, есть одно золотое правило: тренером может стать только игрок, сам бывший звездой. Иначе чему он научит своих подопечных? Здесь у нас не Америка, к тому же далеко не хоккей и, тем не менее, как может обучать преподаватель, сам в своей жизни не написавший ни одной реальной программы? Да никак...


Не на чем учить

Всадник без лошади, автомобилист без машины... Попробуйте продолжить ряд.., - правильно: программист без компьютера. Укомплектованность учебных заведений компьютерами (язык не поворачивается называть их персональными) ниже всякой критики. Хорошо хоть, что отправили на покой вечно жужжащие, дрожащие и гремящие ЕС'ки, машины нашей молодости, серо-коричневый кошмар моей памяти. Впрочем, если четверка с восемью мегами ОЗУ, этакое подобие современного компьютера, стала достаточно обычным обитателем учебных лабораторий, то о периферии можно сказать достаточно емко и коротко: ее нет. Нет сканеров, плоттеров, модемов, струйных и лазерных принтеров. И если бы не сверхнадежность матричных принтеров фирмы Epson, переживших не одну волну компьютеризации и способных печатать, кажется, на чем угодно и чем угодно (до сих пор храню листинги программ, буквально выбитых безо всякой там красящей ленты на тетрадных листках. Смотреть надо только под определенным углом к освещению, иначе ничего не видно. Что-то типа писем молоком дедушки Ленина)... Так вот, если бы не Epson - вряд ли увидели бы нынешние студенты результаты своей работы на бумаге.

Но даже если вдруг произойдет невозможное, и системе высшего образования будет придан высокий приоритет и выделяться деньги (и тогда появится в лабораториях достойная техника), это не решит всей проблемы. Студенту мало слушать лекции и выполнять практические и лабораторные работы - необходимо еще и заниматься самостоятельно (если студент, конечно, хочет стать классным специалистом), а чтобы заниматься самостоятельно, необходимо иметь компьютер дома. Вот с этим в стране, где на официальную минимальную зарплату не купишь и коробки дискет, туго. И пока такое положение вещей сохранится, ждать волны качественных программистов не приходится. Пусть даже ВУЗы будут работать в две смены.


Нечему учить

Еще одна проблема заключается в том, что науки, изучающей компьютеры, у нас нет как таковой. На Западе есть, у нас нет. То, что у них называется Computer Science, у нас долгие годы пытались подменить прикладной математикой, кибернетикой, информатикой. В результате чего стены ВУЗов покидали хорошие математики, кибернетики и информатики, но, увы, посредственные программисты. Там, где нет науки, нет строго очерченных границ, не может идти речи о методике обучения. Нужна дисциплина, в рамках которой изучалось бы устройство компьютера на уровне, необходимом программисту. То есть не так глубоко, как, скажем, изучается устройство интегральных схем в курсах электроники, но и не так поверхностно, как обучают этому нынешних программистов. Нужно изучение программного обеспечения. Принципов его построения. Приемов его создания. Изучение современных технологий и систем программирования...

Вот три причины, по которым, на мой взгляд, у нас не могут подготовить программиста, которого не надо было бы доучивать и переучивать прежде, чем он смог бы написать качественную программу. Иногда можно слышать еще и такой довод: учить программированию невозможно потому, что технология меняется слишком быстро. Постойте, но то, что новые версии программ появляются чуть ли не каждые полгода, еще не значит, что само программирование эволюционирует с той же быстротой. Истоки ООП лежат в далеких шестидесятых, C++ был разработан в 1982г., SQL в семидесятых... Согласитесь, фундаментальные изменения происходят не так уж и часто, чтобы не успевать разрабатывать методики и писать учебники.

Андрей КИРЕЕВ,
(017) 263-89-71

Версия для печатиВерсия для печати

Номер: 

31 за 1997 год

Рубрика: 

Компьютер и образование
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!