balagurov.com > Разные полезности и бесполезности > Программисты завтрашнего дня
 

Наша консультация
Беседы с теми, кто выбирает профессию

Раздел ведет кандидат психологических наук, старший научный сотрудник Научно-исследовательского института общей и педагогической психологии АПН СССР Николай Иванович КРЫЛОВ.

Профессии живут своею сложной жизнью: рождаются, завоевывают и теряют популярность, исчезают... Землекоп и возчик, без которых еще недавно не обходилась ни одна стройка, ныне встречаются все реже, а вот учитель и врач будут всегда нужны людям. Совсем недавно появилась новая профессия — программист — и уже стала массовой: в ближайшем будущем народному хозяйству страны программистов понадобится не меньше, чем поваров, бухгалтеров или закройщиков. А начать подготовку себя к этой профессии, оказывается, можно еще в школе.

Тихий московский переулок, круто падающий к берегу Яузы, залит утренним солнцем. Во дворе за огромными кленами прячутся два здания. Одно — красного кирпича, с высокими окнами — школа № 401. Другое — приземистое, почти невидное за деревьями — Главный информационно-вычислительный центр Миннефтегазстроя СССР. Или сокращенно ГИВЦ. Именно здесь ребята из 401-й школы вот уже несколько лет проходят производственное обучение по специальности «Вычислительная техника и программирование».

В помещении ГИВЦа обычный рабочий день. Новая ЭВМ ЕС-1033, заменившая недавно две машины устаревших моделей, обычно выполняет задания отраслевой автоматизированной системы управления: готовит сводки о ходе строительства нефтепроводов и газопроводов, рассчитывает календарные планы работ, выбирает оптимальные варианты технологических процессов... Но сейчас, судя по сообщениям на экране операторского пульта, машина получила сразу несколько заданий иного рода: это начали работу школьники.

А вот и они сами — бригада девятиклассников-практикантов. Если бы не синяя школьная форма, ребят можно было бы принять за сотрудников ГИВЦа — программистов и операторов ЭВМ. Каждый из членов бригады работает над своей собственной задачей, подчас не очень похожей на те, что вы решаете в школе. Лена Самсонова. например, занята сортировкой набора чисел в памяти ЭВМ: чтобы первым шло наибольшее число в наборе, затем второе по величине и так далее. Задача эта известна каждому — всем ведь приходилось строиться по росту или составлять список фамилий по алфавиту. Но знать — одно, а передать свои знания машине — другое. Попробуйте-ка составить список необходимых для этого действий — всех, которые могут понадобиться при сортировке любого набора! Такой список, записанный на специальном языке, и есть программа для ЭВМ. Наука и искусство программирования состоят как раз в том, чтобы четко, детально и безошибочно превращать знания человека в действия машины.

Программа уже готова; Лена набрала ее на клавиатуре пульта и вывела на экран, чтобы внести последние изменения. Пальцы бегают по клавишам, и послушные буквы то раздвигаются, освобождая место для вставок, то исчезают, то появляются вновь в другой части экрана. Не надо зачеркивать, стирать, переписывать набело... Такие же редакторы текста, но только действующие на простых и дешевых персональных микро-ЭВМ, скоро станут незаменимыми помощниками служащих.

С пульта подана команда, и программа Лены поступает во входную очередь заданий (к крупной ЭВМ подключается сразу несколько пультов, и она одновременно или по очереди выполняет приходящие от них задания). Машина проверяет, грамотно ли написана программа (то есть соблюдены ли в ней грамматические правила языка), переводит ее на свой, внутренний язык—язык управления электронными схемами, присоединяет к ней необходимые вспомогательные программы, переписывает с магнитного диска в память и, наконец, выполняет ее... Впрочем, все это происходит намного быстрее, чем об этом можно рассказать! Вот уже печатающее устройство выдает Лене результат.

Над распечаткой стоит призадуматься. Первое число — 127 — самое большое в наборе, как ему и полагается. А дальше вместо 97 почему-то напечатан 0, потом — снова 0... А вот сообщение о том, что машина столкнулась с непреодолимой трудностью — обращением к несуществующей области памяти. Выполнение программы прервано. Нужно искать ошибку.

Выходит, написать программу — это не конец, а только начало серьезной, кропотливой работы по ее отладке, то есть по устранению ошибок и внесению изменений. И вовсе не потому лишь, что «человеку свойственно ошибаться»; очень многие неясности и тонкости выявляются только после пробного выполнения первоначального варианта программы. Отладка сложных программных комплексов, таких, как система управления доменным процессом или система продажи билетов на самолеты, может продолжаться месяц за месяцем.

Я хотел помочь Лене найти ошибку в программе: ведь это иной раз очень непростое дело! Но преподаватель, Евгений Александрович Фридман, сделал мне замечание: все необходимые теоретические познания ребята уже приобрели, теперь они должны научиться применять их на практике.

— Пусть хоть на минуту почувствуют себя настоящими программистами, — прибавил он. — Пусть поговорят с машиной один на один!

Конечно, Евгений Александрович несколько сгустил краски. В любой момент ребята могут рассчитывать на помощь преподавателя. Сотрудник ГИВЦа. сам опытный программист, он уже не первый год обучает ребят из 401-й школы азам своей профессии. И уж кому, как не ему, прекрасно известно, что без взаимной выручки, без доброго совета и помощи коллег не обходится ни один программист. Но что поделаешь: тяжело в ученье — легко в бою.

Пока Лена разбирается со своей распечаткой, место у пульта заняла Ира Боброва. Она работает над более сложной задачей: надо заставить шахматного коня «проскакать» всю доску, проходя через каждую клетку ровно один раз. Нелегко найти решение среди несметного множества путей — ведь из каждой клетки конь может сделать до восьми различных ходов! И если заставить машину просто перепробовать все варианты подряд, мощь ее окажется бессильной: она проработает минуту, пять, десять... И задачу придется снять, чтобы уступить место другим заданиям.

Вам может показаться, что эти задачи какие-то «несерьезные», оторванные от действительности. Ничего подобного! Ведь в современных АСУ до 70% машинного времени расходуется на всякого рода сортировки, а на примере «скачек», иначе называемых «Гамильтоновым циклом на графе», отрабатываются методы направленного перебора вариантов, необходимых для оптимального планирования экономики, составления расписаний, маршрутизации перевозок.

— Мы учим ребят не только программированию, — рассказывает Евгений Александрович. — Осваивают они и ремесло оператора ЭВМ. Работают за главным операторским пультом машины, на устройствах подготовки данных для нашей АСУ. К окончанию школы они приобретут достаточную квалификацию, чтобы успешно трудиться в качестве оператора. И должен сказать, что среди молодых сотрудников ГИВЦа немало недавних выпускников 401-й школы. Другие пошли в институты и техникумы, на специальности «электронные вычислительные машины», «автоматизированные системы управления», «робототехника», «прикладная математика»...

Кстати, о математике. Еще недавно программирование ЭВМ считалось математической дисциплиной, да и сами вычислительные машины назывались математическими. И недаром: первые компьютеры были созданы математиками специально для задач, требовавших сложнейших вычислений. Но сейчас положение изменилось, и «бухгалтер-программист» или «химик-программист» звучит ничуть не менее естественно, чем «математик-программист». Сегодня программировать приходится не только вычисления, но такие «нематематические» процессы, как черчение и поиск данных на магнитном диске или ленте, редактирование текста, работу металлорежущего станка или газовой турбины...

Конечно, программист должен разбираться в математических методах, которые он использует в своей работе, но не в меньшей мере должен он понимать практический смысл решаемой задачи, знать возможности машины, которую он программирует, обладать предельной ясностью мысли и слова, спокойствием и настойчивостью, критическим отношением к самому себе. И хотя далеко не все станут профессиональными программистами, работа в ГИВЦе пойдет на пользу каждому. Ведь не зря считается, что программирование в наше время сродни грамотности: если грамотность необходима людям, чтобы передавать друг другу знания, то программирование позволяет нам превращать знание в действие.

...Прощаюсь с уютным ГИВЦем, с его сосредоточенными, немногословными сотрудниками, с зеркальной чистотой машинного зала, с прохладой кондиционированного воздуха. Теперь мой путь лежит в школу. Конечно, идут занятия, и ребята вряд ли будут склонны к разговорам на посторонние темы. Но я все же рискнул подойти к одному из них — к Алеше Соболькову. Узнаю, что Алеша решил стать химиком и готовиться к поступлению на химический факультет МГУ.

— Повлияли как-нибудь на твой выбор двухлетние занятия программированием? — спросил я Алешу.

— Пожалуй, нет, — ответил он, подумав, — на химфак я собирался уже давно.

— А твоим занятиям химией не мешала работа в ГИВЦе?

— Что вы?! Мы изучили язык программирования ФОРТРАН, язык управления заданиями ОС ЕС ЭВМ, научились работать по собственной программе! Я думаю, такое умение пригодится мне в скором будущем. Сейчас ведь студенты начиная с первых курсов используют ЭВМ для всяких расчетов...

...Последний на сегодня разговор — в кабинете завуча Людмилы Григорьевны Савкиной.

— С этого учебного года, — рассказала она, — наша 401-я школа становится специализированной, с углубленным изучением программирования. Старшеклассники теперь будут больше заниматься не только программированием, но и математикой. Предстоит серьезная перестройка учебных планов.

— А как на ваш взгляд, велико ли взаимное влияние программирования и других школьных предметов?

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

— Выходит, те, кто изучает программирование, должны быть сильней в математике, физике?

— Не могу пожаловаться. С контрольными работами они справляются отлично. Такие ребята, как Юра Попов и Алеша Собольков, вполне готовы к конкурсным экзаменам по самому строгому счету.

— Так что, получается, вы на верном пути?

— Пожалуй, так. Ведь недаром в Основных направлениях реформы общеобразовательной и профессиональной школы немалая роль отводится ЭВМ: предполагается в каждой школе создать класс вычислительной техники. Вполне возможно, когда придут в школу младшие братья и сестры сегодняшних выпускников, программирование станет такой же полноправной дисциплиной, как физика или история.

...Я выхожу из школы, а навстречу мне из дверей ГИВЦа выбегают мои знакомые — практиканты. На вид обычные мальчишки и девчонки: не скажешь, что несколько минут назад они вели диалог с электронным мозгом. Но есть в них одна особенность: какой бы жизненный путь они ни избрали, уверен, что они навсегда запомнят бегущие по темному экрану строки своих первых программ, они всегда будут в ладах с нашими электронными помощниками — вычислительными машинами.

М. КУЗНЕЦОВ

«Юный техник», N 12 за 1984 год, стр.36-40