Игорь Корсар Мастер

Что самое тяжкое для программиста?

Раскрывая эту страницу, сразу усаживайся поудобнее, дорогой читатель. Будешь сдавать экзамен.

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

Вот ты встрепенулся и с радостью посмотрел на меня… точнее, на название статьи. Конечно же, создание сложной программы, и срочной к тому же! Ответ — неправильный. Речь, естественно, не идет о тех, для которых наша работа — каторга. Для них — любой шаг может быть в тягость, кроме получения денег, разумеется. Я говорю об увлеченном программисте, которого сложность завораживает, а сроки будоражат воображение. Он, по сути дела, и является настоящим программистом. С проблемой справится и получит колоссальное удовлетворение вместе с… небольшими деньгами.

Вижу, экзаменуемый задумался. Вторая попытка. Корректировка чужой программы! Лоб разгладился. На лице — понимающая улыбка. И правильно! «Влезать» в чужую программу порой гораздо сложнее, чем с нуля написать свою. Не все на это быстро решаются. Но если надо? Тогда приходится. Чужая мысль, чужое мышление. Вобрать его в себя не всегда удается. Можно исправить одно, а зацепить совсем другое. Так, вот в чем трудность, подытожишь ты. Ни в коем случае! Освоение программы уволившегося сотрудника — процесс все-таки достаточно увлекательный, хотя и очень каверзный. При победе (а куда ж она денется, если со всех сторон насели?) — триумф куда больше. Одним словом — это тяжко, но не смертельно.

Пауза длиннее. Задумчивость глубже. Наконец, озарение! Слово «тяжко» — оно говорит само за себя! Перетаскивать тяжелые вещи. Технику, столы при ремонте помещения или переселении в другую аудиторию. Для этого отрывают от любимого дела, иногда на день или два, а то и больше. Не хочется? Конечно! Посторонняя работа находит не только особей мужского пола. Женщинам приходится подметать, вытирать все от пыли и оберегать горшки с цветами, чтоб «мальчики» их ненароком не задели. Помню, как у нас в бюро делали срочный ремонт к приезду иностранных партнеров. Без нашего участия, конечно, не обошлось. Мы всемерно старались ускорить процесс, тем более что ютиться в «гостях» у соседей было крайне неуютно. Мы даже сами прокладывали сетевой кабель, не дождавшись соответствующей службы. У моего начальника хорошо получалось работать и молотком и дрелью, а я терпеливо держал под ним стул, чтобы эта дрель ненароком не упала… Других мужчин в бюро не было… Не было и чувства невыносимости. В конце концов все закончилось, и мы приступили к своему обычному делу, довольные и радостные.

Непростой экзамен, да? Ответы не проходят, мысли уже путаются, а я навис над душой чуть ли не в материальной оболочке и требую, требую… Ага! Дошло! Работа с заказчиками! Какими противными и неугомонными они бывают! Все соки выжмут и никогда не скажут, что довольны. Просто промолчат. Звонят только тогда, когда что-то не идет. Но и с ними программист может сладить. Выкрутиться, договориться, а если оказать маленькую толику опережающего внимания, то клиент — твой! Звонишь ему немножко раньше, чем он, и спрашиваешь, как ведет себя разработка. А он часто не готов ответить, потому что еще не брал в руки мышку и к клавиатуре со вчерашнего дня не прикасался. Отвечает чуть ли не извиняющимся тоном. А потом, когда столкнется с проблемой, уже не налетит на тебя, как бомбардировщик, а будет мягко просить.

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

Вот и все. Программа создана, доработки сделаны, ремонт в родном помещении тоже, заказчик приручен, внедрение успешно прошло. Так где же настоящая супертяжелая трудность? Молчишь, читатель? Хорошо, помогу. Кроме всего вышеописанного есть одна неотъемлемая часть, без которой никто программу эксплуатировать не будет.

Инструкция! К ней нужна подробная и понятная инструкция! Это и есть камень преткновения для до сих пор не унывавшего программиста. Он может быстро сообразить, что нужно пользователю и с налету добиться результата. Поставленная задача почти моментально переводится в операторы конкретного языка. И этого никто не замечает! Порой даже сам программист. Но несколько папок писанины, которую необходимо сдать, он не заметить не может. Пусть, не писанины, а компьютерного набора текста, пусть не несколько папок, а всего одна. Все равно, для привыкшего летать резкое приземление равносильно крушению.

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

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

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

В творениях асов часто не встретишь не то что комментария, а и логически понятного стиля. Все так своеобразно накручено, что опасно прикасаться, и удивляешься, на каких принципах программа работает? А работает она правильно, пока ее не тронешь. Чем выше уровень программиста, тем меньше тяга к написанию документации. Он готов всегда объяснить на пальцах понятные для себя вещи и искренне удивлен, что они не всегда понятны другим.

Вот мы и ответили на поставленный вопрос. Экзамен окончен. Но куда ты, милый читатель? Давай зачетку. Как зачем? Поставлю отличную оценку. Почему отличную? Ты так старался. Перебрал все варианты, думал. А пока ты размышлял, я и сам окончательно понял, что же самое тяжкое для программиста…

Обновлено 30.08.2010
Статья размещена на сайте 11.08.2010

Комментарии (10):

Чтобы оставить комментарий зарегистрируйтесь или войдите на сайт

Войти через социальные сети:

  • да, статья что надо)

  • Сергей Бабич Читатель 15 сентября 2010 в 04:48 отредактирован 24 мая 2018 в 12:24
    От прогера

    Да! Инструкции писать - это труд неподъёмный.
    Но автор не прав - у нормального программиста код написан внятно. Коментарии - обязательны. Это для того, чтобы изменения и дополнения можно было легко вносить. Видел я таких кульхацкеров, у которых усё работало, но стоило ему хоть что-то поменять - всё рушиться. И сидит бедняга в отладчике днями, капая солёным потом на клавиатуру...

  • Каролина Д.
    ПО ЗАКАЗУ:
    • Звонит чайник своему приятелю:
    - Я тебе из магазина звоню, хочу дискет купить. Тут их много разных фирм, скажи у какой фирмы на дискетах объем больше?

    • Чайник у хакера спрашивает, что такое Windows´95, OS/2 и DOS? Hу представь себе аэропорт. Hа взлетной полосе стоит навороченный красивый самолет. Пассажиры в него заходят - там ковры везде, все классно. Запускают двигатели - и самолет медленно объезжает вокруг аэропорта, после чего пассажиры выходят. Вот это полуось. Hа другой полосе стоит еще один самолет - тоже весь из себя, внутри ковры. Садятся в него пассажиры, самолет разгоняется, взлетает, и тут же разваливается на куски - это виндоза. А в стороне на поле стоит старый, помятый, грязный кукурузник - пассажиры подходят, кладут вещи, потом толкают самолет, разгоняют его и сами запрыгивают - потом с трудом летят. Это дос.

    • Приходят в кунсткамеру Чайник, Квакер и програмёр. Видят: банка с заспиртованным двухголовым малышом. Чайник:
    - Программа совершила недопустимую ошибку...
    Квакер:
    - Это просто монстр из квака, из которого полигоны вылезли!
    Програмёр:
    - Видать ошибка в коде.
    Тут видят, знакомый интернетчик идет. Спрашивают его: "чё это мол такое?".
    Интернетчик посмотрел-посмотрел, и говорит:
    - Ааа! Так это два жлоба одновременно и под одним логином подсоединились!

    • Чукча пошел в тайгу, на медведя охотится. Неделю бродил, потом видит – большая берлога, темно, глубокая значит. Ну он взял шашку тротиловую и кинул в берлогу – авось медведь не убьется, так выскочит. Из берлоги, дико гудя вылетает поезд и сбивает чукчу. Месяца через три чукчу из больницы домой выписали. Приезжает он, а жена на кухне чайник поставила, да не простой чайник, а со свистком. Чайник засвистел, чукча ружье и разнес чайник с двух стволов выстрелив. – Убивать этих зверей нужно, пока маленькие.


    • Приходит мужичок в компьютерную лавку и спрашивает: - У вас есть спирали для чайников? Продавец: - Спирали? Для... чайников???

    Оценка статьи: 5

    • Каролина Динкелакер Каролина Динкелакер Читатель 31 августа 2010 в 17:43 отредактирован 31 августа 2010 в 17:43

      Василий Россихин, ой не могу, умираю... Ну, думаю, нам с вами спирали-то всё же не нужны. Уж коли сюда захаживаем, значит не всё так безнадежно (в плане пользования компом)
      От меня тоже (может, и с бородой, но всё же рискну)
      Сын пoдxoдит к отцу, сидящему глyбoкo в отладчике ужe нe один чac:
      - Пaпa, пoчeмy Солнце вocxoдит нa вocтoкe, a caдитcя нa зaпaдe?
      - A ты прoвeрял?
      - Дa.
      - Хорошо прoвeрял?
      - Дa.
      - И чтo, кaждый дeнь вoт тaк - вocxoдит нa вocтoкe, a caдитcя нa зaпaдe?
      - Дa, кaждый дeнь.
      - Сынoк, только ничeгo нe трoгaй, ничeгo нe мeняй!!!

      *"Ну и запросы у вас ..."- сказала база данных и повисла.

      Оценка статьи: 5

  • Каролина Динкелакер
    Cвой коммент отредактировал – это я себя в ЧАЙНИКАХ видел.
    А вот ЗАКАЗ на "фирменное" почему-то сегодня комп не грузит, хотя околотемная подборки есть.

    Оценка статьи: 5

  • не согласен

    Я по своему опыту убедился, что самое сложное в работе программиста - понять, что от тебя хочет заказчик, особенно, если он сам не очень это понимает. А инструкция - тоже творческая работа. При желании ее можно сделать даже увлекательной!

    • Виктор Губерниев, у автора - "самое тяжелое", а не "самое сложное" . Подозреваю, самое тяжелое - пережить состояние, когда мучился над системой больше полугода и когда все готово и начинаешь раскручиваться среди заказчиков, вдруг один из них присылает ссылку на аналогичный продукт, но лучшую по функционалу, интерфейсу и т.д. Есть второй вариант - заставляют доработать чужую систему, зная, что она через месяц будет заменена другой, т.е. - работа на корзину, в то время, как другие усиленно работают над чем-то перспективным.

  • Василий Россихин Читатель 31 августа 2010 в 10:49 отредактирован 31 августа 2010 в 12:32

    Игорь Корсар,

    Коммент как частичный, но искренний плагиат:
    "Хоть сам я в компьютерных программах ЧАЙНИК, но статья понравилась, увлекательно написано".

    Оценка статьи: 5

    • Каролина Динкелакер Каролина Динкелакер Читатель 31 августа 2010 в 12:24 отредактирован 31 августа 2010 в 12:26

      Василий Россихин, да чайник, чайник. Согласна. Хотела компьютерным сленгом выразиться
      Василий, давайте уж анекдот на эту тему, ходячая вы наша энциклопедия анекдотов Как это вы так, не отметились вашей фирменной визиткой? ;)

      Оценка статьи: 5

  • Хоть сама я в компьютерных программах лузер (или юзер , в общем, не знаю точно), но статья понравилась, увлекательно написано.

    Оценка статьи: 5