Марш энтузиастов
АрхивНынешний вуз — по крайней мере, в части программистских специальностей — нечто вроде пограничной полосы.
«Итак, мы пришли к выводу, что кризис наступает, но природы его мы не знаем и рассчитать не можем».
Айзек Азимов. «Роботы и Империя»
Нынешний вуз — по крайней мере, в части программистских специальностей — нечто вроде пограничной полосы. По одну сторону — мир радужных надежд, энтузиазма, предвкушения Работы; по другую — довольно унылая область рушащихся планов, растущего цинизма и неуверенности в будущем. Это наблюдения не одного дня.
Пусть то, что я скажу, будет жестковато, но, надеюсь, пойдет на пользу. Ребята, приходящие учиться «на программиста», с каждым годом все больше напоминают мне школьников, моющих автомобили — припоминаете, в начале Перестройки? — на городских парковках. Вместо скучной учебы и занудливых училок — живые и совсем не игрушечные (по школярским масштабам) деньги. Ну а потом — разочарование: деньги все же оказались игрушечные, школьных знаний нет, сверстники поступили в институты, при встречах и поговорить-то не о чем…
Некоторое время назад программистами становились, скорее, по предпочтению. В первую очередь они были участниками инженерных проектов, потребность в которых диктовалась госзаказом. Но даже в те времена государству были нужны не программисты! Нужны были решенные задачи. С программистами или без них — не важно. Негосударственным бизнес-структурам тоже не нужны программисты. Им нужны решения!
Если работа требует программирования, программист будет приглашен. Если существует готовый программный продукт, который эту задачу решает, можно не сомневаться — программиста не пригласят. Само собой, понимание таких перспектив не способствует росту энтузиазма. Другое дело, когда есть возможность стать независимым производителем программного продукта. Но что это за продукт?
Анализ современных тенденций говорит о том, что в ближайшее время можно ожидать появления нескольких новых видов массовой продукции: во-первых, процессорных модулей с радиообменом для построения распределенных наращиваемых систем обработки данных и, во-вторых, нейросетевых моделей регуляторной деятельности человека-оператора. В создании этих информационно-технических комплексов роль программиста — ключевая. Отмечу особо: ключевая не в том смысле, что объем программистской работы велик, а в том, что только программист способен грамотно сконструировать систему. Поэтому здесь он имеет замечательную возможность вырваться из оков заказного программирования, возглавить разработку, сформировать бизнес-направление.
Прогресс аппаратной базы для этих систем в настоящее время значительно опережает темпы разработки соответствующего программного обеспечения. В каком-то смысле повторяется история «платформы Wintel». Сегодня не существует ни одной удовлетворительной концепции построения такого массового программного продукта, как распределенная ОС, управляющая выполнением приложений в «микросотовой» вычислительной среде1. С учетом того, что наращивать вычислительную мощность подобной среды предполагается за счет введения все новых и новых аппаратных модулей-ячеек, а в качестве дополнительных рассматриваются возможности решения задач цифровой видео- и телефонии (как альтернатива Интернету и услугам «традиционных» операторов мобильной связи), а также задач создания распределенных систем управления производственными процессами и бытовыми устройствами, — это означает огромный объем рынка соответствующих программных средств, которые еще не созданы. А ведь упомянутые программные средства как раз и составляют костяк, инженерную основу «конструкции» этого сетевого комплекса. Выпуск автоматически конфигурирующейся распределенной ОС для таких систем станет событием, аналогичным появлению MS-DOS в качестве рыночного товара. Думаю, все хорошо понимают, что это означает.
Задача создания распределенной программной начинки нейросетевых систем, способных в ходе самообучения воспринимать и в дальнейшем воспроизводить, моделировать деятельность человека-оператора, когда-то поставленная военными, в настоящее время переживает второе рождение. Именно с решением этой задачи связываются надежды на создание «сверхдружественного» человеко-машинного интерфейса справочных, банковских, торговых и других информационных систем массового пользования. А равно и надежды получить практически пригодный к использованию интерпретатор разговорных языков.
Разбор ошибок
«Но мы не ответили на ключевой вопрос: какова природа этого кризиса? Чем он опасен?»
Айзек Азимов. «Роботы и Империя»
В принципе, говоря о «хороших» программистах и «чайниках», совсем не обязательно рассказывать о перспективных изделиях. Да и не в них, собственно, дело. Заговорил о них потому, что создание новых, невиданных систем — страшно увлекательное занятие! Поводом же к написанию статьи был вопрос: чем отличается хороший программист от, скажем, просто программиста?
В доперестроечную эпоху я бы ответил так: примерно тем, чем отличается механик от инженера-механика. Сейчас ответ будет несколько иным: отличаются они, как ремесленник от бизнесмена. Ремесленник берется за ту работу, которую ему дают. Чем выше его квалификация, тем быстрее и качественнее будет выполнена работа. Если у ремесленника золотые руки, он никогда не останется без заказов. Но для ремесленника — это вершина.
А вот бизнесмен — он другой. Он ставит перед собою цель и предпринимает шаги к ее достижению. Напомню всем молодым людям, что на заре практического программирования существовал лозунг, своего рода программа-максимум: «Задача программиста — сделать так, чтобы он был не нужен». Первые АЛГОЛ-трансляторы воспринимались именно как шаг на пути реализации этой грандиозной программы. Еще бы! В те времена программист работал в кодах процессора; ничего мудреного в этом деле не было, но требовало оно высочайшей аккуратности. Отладка, оптимизация программы по критериям минимума занимаемой памяти и максимума быстродействия… Словом, ни на какую другую работу времени уже не оставалось. Инженеры уходили «в программисты», как когда-то комсомол шел «на самолет». Но они оставались членами команды разработчиков какой-то инженерной системы, добровольно взявшими на себя часть головоломной работы. За это их любили и всегда считали «своими».
В наше время, когда в сферу инженерных интересов кроме традиционного «железа» попали вещи вполне нематериальные, программист в каком-то смысле унаследовал профессию конструктора. Манипулируя формой, связями и свойствами материальных объектов, конструктор создает систему — изделие, обладающее необходимой функциональностью. Все это можно было бы назвать физическим программированием.
Продолжая аналогию, вспомним, что конструктор обязан уметь чертить. Но ведь существуют и просто чертежники, которые тоже умеют чертить, причем в подавляющем большинстве случаев делают это лучше конструкторов! Однако ошибкой будет уравнять конструктора и чертежника. Но самая большая ошибка — если чертежник сам себя начнет считать конструктором, не став им по существу, а лишь в совершенстве овладев чертежным ремеслом. Впрочем, чертежники — профессия вымирающая, если уже не вымершая. Их заменяют разнообразные CAD-системы — тоже, между прочим, плод «конструкторской» деятельности программистов.
Говоря о чертежниках, я имел в виду так называемых кодеров. Когда кодер всерьез начинает считать себя программистом — это, друзья мои, грустно. И в то же время программист, не научившийся удовлетворительно кодировать, — конечно же, не может считаться квалифицированным.
Так вот, возвращаясь к истории с помывкой автомобилей школьниками, скажу: задача мойщика состоит в том, чтобы перестать искать «нуждающиеся в мойке машины», а сосредоточиться на строительстве стационарных «автомоек», оснащенных новейшим оборудованием, современными моющими средствами и квалифицированным персоналом. Короче, задача мойщика — сделать так, чтобы лично он остался без работы. Но не без денег! Вот она — красивая, сто,ящая задача! Разумеется, для ремонта оборудования ему время от времени придется вызывать специалиста (который будет благодарен за предоставленную возможность заработать), время от времени приглашать настройщика бухгалтерской системы или даже — вот! — программиста, чтобы написать какую-нибудь «примочку» к стандартной системе учета, но как только все наладится, никого из них он приглашать не будет (а значит, оставит их без заработка).
Мораль сей притчи такова…
1 (назад) Рекомендую прочесть статью Берда Киви "Умная пыль на сапогах", "КТ" #479 от 11.02.2003 года.-Прим. ред.