• Мнения
  • |
  • Обсуждения
Подготовка материала: Аксакал

Как объяснить человеку, что такое программирование?

Как объяснить непосвященному, что такое программирование? Если вы когда-нибудь задавались этим вопросом, то знаете, насколько непросто ответить на него. Ну, например, что такое «эффективный алгоритм»? Прочитав эту статью, вы уже не будете отделываться замечаниями вроде «это все слишком сложно», а сможете объяснить основные понятия даже ребенку.

Итак, представьте, что вы подробно описываете надевание штанов: «взять штаны так, чтобы ширинка была спереди, а задний карман — сзади; нагнуться, опустить руки до уровня коленок…» и так далее. Это и есть программирование!

Что такое программирование на языке ассемблера? Представьте, что вы описываете надевание штанов очень подробно, в виде: «сократить такую-то мышцу, растянуть такую-то…»

Что такое тестирование программы? Протестировать программу, значит, попробовать надеть штаны. Могу гарантировать, что с первого раза у вас ничего не получится: или вы штаны задом наперед наденете или на голову…

Чем отличаются эффективный и неэффективный алгоритмы? Если вы действуете по эффективному алгоритму надевания штанов, то надеваете их секунд за 20, в ином случае — до вечера.

Что такое ошибка в программе? Если, надев штаны по своему описанию, вы обнаружили, что ширинка застегнута у вас на затылке или что вы не можете ее застегнуть совсем, из-за стянутых штанами рук, значит, вами была допущена ошибка в программе.

Что такое ошибка, приводящая к зависанию компьютера? Если, надев штаны, вы обнаружили, что задохнулись.

Зачем нужно проверять входные данные на соответствие требованиям программы? Перед тем, как надеть штаны, выверните их наизнанку. Если вы их и наденете наизнанку, значит ваша программа не проверяет входные данные.

Что такое оптимизация программы? Сначала вы читаете один из вариантов надевания штанов, а потом пытаетесь сделать его более эффективным. Например, меняете последовательность «распороть штаны, приложить все куски куда нужно и затем сшить по старым швам» на любую другую, менее трудоемкую.

Что такое переносимость? Это когда по вашему алгоритму можно надеть любые штаны на любого человека.

Что такое крах системы? Исчезновение ваших штанов, как результат вашей деятельности.

А теперь представьте, что профессия программиста заключается в том, чтобы каждый день надевать и снимать штаны…

Статья опубликована в выпуске 11.11.2006

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

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

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

  • Да, очень веселенькая и нестандартная статья.

  • Довольно интресно и доходчиво написано. Приятно было почитать и вспомнить свою молодость

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

  • Как говорил один из моих преподов, "программер - это не тот, кто взгглядом маньяка смотрит в экран и стучит по клавишам; программер - тот, кто лежит на диване и плюёт в потолок, и время от времени что-то пишет на бумажке; а потом все эти бумажки собирает вместе, и получается программа". Не скажу, что это идеальный способ писать программы, но иногда помогает- пробовала...

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

  • как программист отвечу что шутки-шутками, но к правде это близко
    ещё вспомнилось по теме:

    Благодаря этому уникальному упражнению, вы, совершенно не зная ни одного языка программирования, сможете почувствовать себя настоящим программистом-профессионалом!

    Для упражнения потребуются:
    — два участника;
    — часы (желательно с секундомером);
    — листок чистой бумаги;
    — ручка (шариковая или гелевая, но именно ручка,- это важно).

    Один из участников будет "Заказчиком" (Работодателем), другой — "Исполнителем" (Программистом).
    "Заказчику" выдаются часы и право голоса, "Исполнителю" — бумага и ручка.

    Начало упражнения:
    "Заказчик" засекает 10 минут и дает задание "Исполнителю":
    "Нарисуйте мне, пожалуйста, красивую девушку."
    Далее, пока "Исполнитель" рисует, стоя у него "над душой", высказывать следующие пожеллания к рисунку:

    0:30 — Пусть у нее в руке будет меч.
    1:00 — Двуручный меч, который она держит обоими руками!
    1:30 — А в другую руку ей дайте УЗИ.
    2:00 — Пусть она будет уставшей путешественницей,
    присевшей отдохнуть.
    2:30 — На меч она опирается, отдыхает, значит.
    3:00 — Пусть на ней будет развивающийся по ветру плащ!
    3:30 — ...И купальник.
    4:00 — А лучше доспех!
    4:30 — Не... униформа!
    5:00 — Уберите плащ, он не идет к униформе.
    5:30 — Пусть она смело стоит на мостике космического крейсера!
    6:00 — Почему у нее меч? Уберите это старье. А УЗИ переделайте в бластер!
    6:30 — Ее волосы развиваются по ветру... для красоты, значит.
    7:00 — Бастер не смотрится... уберите его.
    Она вообще капитан этого корабля, ей не нужен бластер!
    7:30 — Ей нужна фуражка капитана! И аккуратно собранные на голове волосы!
    8:00 — И сидеть она должна в кресле капитана!
    8:30 — Красивая, суровая и необычайно смелая капитанша корабля пиратов...
    9:00 — Нет, эскадры боевого флота Галлактической Федерации!
    9:30 -... Вытягивая палец, отдающая приказ о смене курса...

    По истечению 10 минут "Заказчик" берет работу "Исполнителя", критически ее осматривает и высказывает свое впечатление:
    "Ну это же совсем не то, что я хотел! А где ее верный советник? А почему у нее нет табельного оружия? И вообще, почему она такая некрасивая и суровая? Я же просил КРАСИВУЮ девушку! И вообще на рисунке столько каракулей... Плохой вы программист, зря я к вам обратился... Не буду платить за такую халтуру!"

    Для большей остроты ощущений, можно взять целую "Комаду Разрабоотчиков", и пусть они вместе рисуют "большой и красивый пейзаж" за 10 минут

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

  • Да... Сам занимаюсь программированием и неоднократно был в затруднении с таким вопросом. Теперь смогу объяснить все доходчиво и просто на Вашем примере.

    Отлично!

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

  • Здорово! Действительно все "на пальцах" объясняется. Когда в следующий раз шеф спросит чем, собственно, я занимаюсь - попробую воспользоваться.

  • Статья отличная, только сделайте выравнивание влево.

    Ладно, сама сделала.

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

  • Отличная статья! Посмеялась

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