Ось я сприйняв це після пари невдалих та декількох непоганих спроб:
Програмування - це вирішення проблем.
Почніть з конкретних речей, запрограмованих якими вони користуються щодня - Інтернет-браузер (facebook), мобільний телефон, касовий апарат тощо. Отримайте їх, щоб навести безліч прикладів. Встановіть, що всі ці речі мають у них своєрідний комп’ютер. Серцем комп’ютера є процесор.
Процесор - це дуже швидкий, але дуже німий працівник. Якщо ви дасте йому кілька вказівок, він виконає їх саме так, як ви кажете. Це не зробить нічого зайвого, і воно не скаже вам, якщо щось, що ви йому сказали, було не так. Цей процесор робить все, хоча - якщо ви точно скажете, як це зробити, він може здійснити телефонний дзвінок або розмістити зображення в електронній пошті.
Запитайте її, як вона скаже дуже швидкому, але дуже тупому працівникові купити банку соди у содової машини. Коли вона починає описувати кроки ("Покладіть гроші в машину і натисніть кнопку"), починайте її розбирати як програму ("Що таке гроші? Як я вкладаю її в машину? Коли я кладу гроші в машину і натискаю кнопка при цьому нічого не відбувається. "). Якщо у вас є дошка, почніть ліворуч з її першого набору інструкцій. Коли вона їх переглядає, розмістіть новий більший список праворуч. Коли у вас є гарний набір інструкцій, починайте узагальнювати шматки («Вийміть гроші з кишені та вийміть соду з звуку лотка подібним - які частини однакові / різні?») Візьміть узагальнення і поставте їх посередині і перекреслити шматки, які вони зараз містять. Спробуйте врешті-решт зв’язати шматки, щоб відповідати її оригінальним інструкціям, на зразок функціональних дзвінків. Інші хороші вправи: надішліть листа, пройдіть через двері, намалюйте коло / квадрат / трикутник.
Тож програмування вирішує проблеми: розбиття проблем на частини, визначення частин, які є загальними, та групування цих частин для вирішення проблем. Незабаром ви дізнаєтесь, що деякі частини є загальними для багатьох проблем, а потім починаєте складати частини, щоб вирішити проблеми, які ви навіть не знали, що у вас є.
Гаразд, до цього моменту вона може зрозуміти, але їй, мабуть, нудно. Слідкуйте за цим набором крутих прикладів програмування. Шейдери та пов’язаний із ними візуальний код легко демонструвати - ви можете створити зображення і почати вносити зміни до нього з дуже невеликими змінами коду. Якщо вона виявила інтерес до Facebook, покажіть розмову з Facebook через REST, щоб побачити дані друзів (6-градусні її). Якщо їй подобаються відеоігри, покажіть пару демонстрацій ігор із відкритим кодом, а також кілька фрагментів їх коду та те, як вони допомагають грі працювати. Закінчіть це, показавши пару безкоштовних інструментів та ресурсів, які вона могла б вивчити вдома. (Python, C # тощо)
Мої невдалі спроби: спроба пояснити пі-обчислення (вони запитували), настільна гра на C-Jump http://c-jump.com/ (вони цього не отримали, і інструкції були помилковими), і кодування в реальному часі 2d гра (просто не могла зацікавити, незалежно від того, наскільки мало кроків я робив між демонстраціями).
Удачі!