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

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

Что такое программирование?

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

Что такое программирование на языке ассемблера?

Представьте, что вы описываете надевание штанов очень подробно, в виде: "сократить такую-то мышцу, растянуть такую-то..."

Что такое тестирование программы?

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

Чем отличаются эффективный и неэффективный алгоритмы?

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

Что такое ошибка впрограмме?

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

Что такое ошибка, приводящая к зависанию компьютера (мегаклоп)?

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

Что такое оптимизация программы?

Сначала вы читаете один из вариантов надевания штанов, а потом пытаетесь сделать его более эффективным. Hапример, меняете последовательность: "распороть штаны, приложить все куски куда нужно и затем сшить по старым швам" на любую другую, менее трудоемкую.

Что такое переносимость?

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

Что такое крах системы?

Исчезновение ваших штанов — как результат вашей деятельности.

Кто такие хакеры?

Сами штанов не носят и норовят порвать их всем другим.

Что такое Apple?

Это джинсы. И чтобы их надеть придется купить патентованную задницу той же фирмы, что и джинсы.

Что такое Linux?

Трико (с пузырями на коленках).

Что такое Windows?

Скафандр.

© Марк Шевченко