Шрифт:
Достаточно неудобная схема, особенно если учесть, что инженерные и программистские мозги работают совершенно по-разному. Программисту нужно все подать на уровне алгоритма: берешь это, умножаешь на то и получаешь, что нужно. Что означает «то», «это» и «что нужно», ему знать не интересно. Получил на вводе «это» и «то», обозначил их идентификаторами «А» и «В», перемножил «А» на «В», присвоил полученное значение идентификатору «С» и вывел его значение на печать. Вот и все.
У инженера все иначе. Нет у него никаких идентификаторов (он и само слово-то с трудом выговаривает), а есть у него внешние нагрузки и перемещения узлов, напряжения и деформации, в общем, «всякая-разная» физико-техническая дребедень. И всю эту дребедень хороший инженер чувствует буквально на уровне подсознания.
Однажды (к тому времени я уже защитился и мне казалось, что я вполне разбираюсь в инженерных расчетах) мой дядя показал мне фокус. Увидев огромный рулон с распечаткой машинного расчета целого здания (я этим расчетом очень гордился, так как часть программы, по которой считали это сооружение, делал я), он ухмыльнулся и достал из ящика логарифмическую линейку.
– Ну и сколько машинного времени вы потратили на этот замечательный расчет? – ухмыляясь, спросил меня дядя.
– Пару недель, наверное. Каждую стену по отдельности насчитывали методом суперэлементов и результаты записывали на диск. Это делали операторы по ночам. По две-три стены за ночь. Потом делали «сшивку», в которой «соединяли» все стены вместе. Затем, получив общие перемещения системы, возвращались назад и считали перемещения и усилия в каждом элементе каждой стены.
– А сколько времени вы разрабатывали программу для расчета этим самым вашим «методом суперэлементов»?
– Смеешься? Ты же сам делал рисунки с этими суперэлементами для моей диссертации. Лет пять делали. Чего спрашиваешь, ты же все сам знаешь!
– Да, смеюсь.
– Над чем?
– Над тобой. А чтобы ты понял, покажу тебе фокус: сделаю расчет этого здания минут за пять. С помощью вот этой самой логарифмической линейки. – И он помахал линейкой у меня перед носом.
В том, что он это может, у меня сомнений не было. Я вполне представлял, что умеет инженер такого класса, как он или мой папа. Но чтобы за пять минут, да такое сложное промышленное здание… Невозможно.
– Да ладно, за пять минут. За вечер, вдвоем с папой, может, и сделаете прикидочный расчет. А за пять минут – нет. Здесь же одних нагрузок десятки. И часть из них динамические – станки, мостовые краны.
– Статические, динамические… Ты время засекай.
Ровно через пять минут передо мной лежал листок, исписанный четким инженерным почерком: перемещения и напряжения в основных узлах системы.
Я развернул рулон с расчетом. Все совпадало, с точностью до 5 %. Стандартная инженерная погрешность!
– Может, тебе сказать, какую арматуру вы насчитали в колоннах и балках? – продолжал насмехаться дядя. – Так для этого мне и пяти минут не надо. Без логарифмической линейки, заметь. Даже считать не придется, и так знаю.
Слов у меня не нашлось. Это и было то самое Гун-Фу, высшее мастерство, которое могло присутствовать во всем: умении строить, лечить, учить, подметать, убирать мусор, мыть посуду. Тут дело было не в том, что человек делает, а в том, как он это делает.
Разумеется, такого Гун-Фу у программиста, который разрабатывает программу, в принципе быть не могло (у него свое Гун-Фу, он чувствует не инженерную конструкцию, а программу). Он действует совершенно иначе – запускает тестовый пример и торжественно приносит результаты инженеру: «смотри, работает». И не удивляет его, что балка под воздействием собственного веса прогибается не вниз, а вверх. Программа же функционирует, результат выдает, а что знак перепутал, ну так это дело «житейское».
В проектном институте, где я работал, в те времена при власти находились умные люди (такое нечасто, но случается), которые решили, что математики и программисты в штате тоже будут, но основная работа по созданию программ ляжет на инженеров.
Вышло все на диво легко. Обучить инженера языку программирования оказалось совсем просто (кстати, попытки решить обратную задачу – сделать из программиста инженера – оказались безуспешными), так как для этой цели брали самых молодых, сразу после института или после армии, как меня. Так что устроившись на работу, я сразу начал «работать на машине». Иностранное слово «компьютер» тогда было не в ходу, и «работать на машине» на нашем языке означало не перевозить пассажиров и грузы, а идти в машинный зал отлаживать программу.
Машзал помещался на первом этаже. Это было вполне логично, потому что все устройства машины весили сотни килограммов. У нас даже была самодельная тележка с колесиками из больших подшипников, на которой мы перевозили всякие тяжести. Тяжестей было много, так как все было из настоящего железа и огромных размеров. Сколько весили дисководы лентопротяжки, я не помню, помню только, что рулон бумаги для АЦПУ (алфавитно-цифровое печатное устройство, которое потом облегчилось в сотни раз и стало называться принтером) весил семьсот килограммов.