Як пояснити людині, що таке програмування?
Як пояснити непосвяченому, що таке програмування? Якщо ви коли-небудь задавалися цим питанням, то знаєте, наскільки непросто відповісти на нього. Ну, наприклад, що таке "ефективний алгоритм"? Прочитавши цю статтю, ви вже не будете оброблятися зауваженнями на кшталт "це все дуже складно", А зможете пояснити основні поняття навіть дитині.
Отже, уявіть, що ви докладно описуєте надягання штанів: "взяти штани так, щоб ширінька була спереду, а задню кишеню - ззаду-нагнутися, опустити руки до рівня колін ..." і так далі. Це і є програмування!
Що таке програмування мовою асемблера? Уявіть, що ви описуєте надягання штанів дуже докладно, у вигляді: "скоротити таку-то м'яз, розтягнути таку-то ..."
Що таке тестування програми? Протестувати програму, значить, спробувати надіти штани. Можу гарантувати, що з першого разу у вас нічого не вийде: або ви штани задом наперед надягнете або на голову ...
Чим відрізняються ефективний і неефективний алгоритми? Якщо ви дієте з ефективного алгоритму одягання штанів, то надягаєте їх секунд за 20, в іншому випадку - до вечора.
Що таке помилка в програмі? Якщо, надівши штани за свого опису, ви виявили, що ширінка застебнута у вас на потилиці або що ви не можете її застебнути зовсім, через стягнутих штанами рук, значить, вами була допущена помилка в програмі.
Що таке помилка, що приводить до зависання комп'ютера? Якщо, надівши штани, ви виявили, що задихнулися.
Навіщо потрібно перевіряти вхідні дані на відповідність вимогам програми? Перед тим, як одягти штани, виверніть їх навиворіт. Якщо ви їх і надягнете навиворіт, значить ваша програма не перевіряє вхідні дані.
Що таке оптимізація програми? Спочатку ви читаєте один з варіантів одягання штанів, а потім намагаєтеся зробити його більш ефективним. Наприклад, міняєте послідовність "розпороти штани, прикласти всі шматки куди потрібно і потім зшити по старих швах" на будь-яку іншу, менш трудомістку.
Що таке переносимість? Це коли на вашу алгоритму можна одягти будь-які штани на будь-якої людини.
Що таке крах системи? Зникнення ваших штанів, як результат вашої діяльності.
А тепер уявіть, що професія програміста полягає в тому, щоб кожен день надягати і знімати штани ...