Лететь легко. Часть 1. Глава 1

Владимир Никитюк
Часть первая. Странные сны

Глава первая. Проблемы свои и чужие

Довольный, что успел на работу вовремя, Анатолий не стал зря терять времени. Включив компьютер, он вызвал на экран файл и начал с ним работать. Человек, далёкий от программирования, сказал бы, что на экране полнейшая бессмыслица. Тот, кто, с программированием знаком, сразу понял бы, что перед ним текст компьютерной программы на одном из языков высокого уровня. Может быть, даже узнал бы язык C++.
А сам Анатолий рассказал бы об этом файле много интересного. Что этот файл - модуль программы, которую он уже несколько дней пишет. И не просто модуль, а самый сложный и важный в большой программной системе.
И с которым – самое неприятное – уже несколько дней большие проблемы.
Анатолий как будто в стенку упёрся!
Нет, неудачное сравнение! Скорее в болото забрался! В самую трясину!
А ведь ещё несколько дней назад ничто не предвещало серьёзных трудностей! Он довольно резво принялся разрабатывать упомянутый модуль.
Сначала работа шла легко и просто. А потом программный текст стал запутываться – буквально не по дням, а по часам.
И очень быстро наступил момент, когда модуль буквально рассыпался. То есть с полученным программным кодом ничего сделать было нельзя – только переписать заново.
Анатолий тогда очень расстроился. Такие казусы случались с ним всего несколько раз в жизни – да и то, когда он был начинающим программистом. А сейчас, когда он приобрёл немалый опыт, это было даже как-то неудобно.
Но делать было нечего... Надо было отбрасывать старый вариант и начинать работу заново. А как не хотелось!
Второй вариант Анатолий начал писать очень осторожно, стараясь максимально учесть опыт, полученный при написании первого варианта. Но это не помогло: и второй вариант в конце концов развалился. А это уже не лезло ни в какие ворота!
Теперь Анатолий работал над третьим вариантом. Но с каждой минутой зрело понимание, что и этот вариант придётся выкидывать. Ну что же это такое, спрашивается?
Задумавшись над своими проблемами, Анатолий не заметил, как к его столу неожиданно кто-то подошёл.
А когда поднял голову, в глазах у него буквально помутилось.
«Нет, только не это!» - обречённо подумал он.

Перед ним стоял один из молодых программистов. Звали его Николай.
А знаменит он был тем, что при любых трудностях в работе умучивал окружающих его людей бесконечными вопросами. Конечно, нет ничего плохого в том, чтобы иногда попросить помощи у сослуживцев. Иногда... Но когда это происходит слишком часто...
В общем, Анатолий понял, что минут двадцать его времени сейчас будут безвозвратно потеряны. А, может быть, и больше...
В первый момент он даже хотел резко заявить, что у него совсем нет времени. Резко, потому что мягкие высказывания (и тем более намёки) Николай просто не понимал.
И уже нужные слова были готовы вот-вот сорваться с его языка. Но вдруг Анатолию стало неудобно. Он представил себя в аналогичной ситуации. Вот он оказался в тупике – а кто-то может ему помочь. Может – но не хочет.
В общем, Анатолий вздохнул – и жестом указал Николаю на стул рядом с собой. А потом попросил его рассказать, в чём проблема.
Самое смешное, что что проблема была примерно такая же, как у Анатолия.    Николай тоже зашёл в тупик при написании программы. И тоже не знал, как в этой ситуации поступить.
Правда, его программа была гораздо проще, чем у Анатолия. Но ведь и опыта у него было гораздо меньше...
Но прежде чем кому-то советовать, надо разобраться в том, о чём тебя спрашивают. Так что теперь дело было за Николаем. Он должен был рассказать о том, как устроена его многострадальная программа.
Оказывается, ничего особо сложного в ней не было. Так что за десять минут Анатолий получил исчерпывающую информацию.
Ещё минут десять он задавал дополнительные вопросы. Пять минут думал, что нужно сделать. Пять минут объяснял Николаю, что он должен в своей программе поменять.
И ещё десять минут посидел рядом, наблюдая, как выданные рекомендации воплощаются в жизнь.
Убедившись, что проблема устранена, Анатолий, слушая вполуха восторженную благодарность Николая, вернулся на своё рабочее место.
Только что он потратил сорок минут на чужую работу. Считай, бесполезно. А собственная программа за это время не сдвинулась ни на миллиметр.
Да, грустно…
Впрочем, что случилось, то случилось. Надо было прекращать самоугрызения и вновь приниматься за работу. А если не хочется? Стиснуть зубы и всё равно продолжать работать!
Деваться-то некуда…

Поначалу дело шло очень тяжело. Переход от лёгкой задачи к трудной всегда непрост…
Стоп! А ведь задачи-то похожи! Может быть, и методы их решения тоже могут быть сходными?
Это была свежая и неожиданная идея, и её обязательно надо было проверить.
Так… Напрямую, конечно, ничего не получается. А если изменить тут… и тут… и тут? Вроде какой-то приемлемый вариант начинает вырисовываться…
И Анатолий воодушевлённо застучал по клавишам.
Примерно через два часа модуль был полностью переписан – и, судя по всему, удачно. Теперь его нужно отладить – и всё, работа сделана!
Отладка прошла на удивление быстро – так что к концу рабочего дня всё было готово!

Анатолий ехал домой и думал о жизни.
Ну… не совсем о жизни. Скорее о прошедшем рабочем дне.
Он прошёл явно удачно. Задача, которая фактически не двигалась два дня подряд, сегодня была решена “влёт”. И это несмотря на то, что он отвлёкся на чужую работу.
Несмотря? Да нет, не надо себя обманывать. Именно помощь Николаю дала уму тот импульс, который позволил решить то, что до этого решению не поддавалось.
А если бы Анатолий отказал в помощи, сославшись на занятость? Тогда, скорее всего, так и просидел бы весь день, ничего толком не сделав!
Как интересно получилось! Он потерял сорок минут – а в результате приобрёл гораздо больше!
Прямо как в известной пословице: что отдашь – вернётся снова!