Що варто врахувати, перш ніж пропонувати покращення вправ
Отже, ми знайшли щось, що хотілося б покращити у вправі. Передусім дякуємо, що це не байдуже і що нам знайшли час про це написати! 💙
Коли ми змінюємо вправу, варто врахувати кілька речей, і для навчальних вправ (тих, що вивчають теми із силабусу) вони трохи інші, ніж для практичних вправ (решти). Про ці відмінності йтиметься нижче.
Але спершу є кілька загальних речей, які варто взяти до уваги.
Зміна вправи має чимало наслідків:
Через усе це ми зважуємо кожну зміну і змінюємо вправи лише тоді, коли є очевидна й вагома користь.
Мета наборів тестів у вправах - не охопити всі можливі випадки. Наші вправи - не промислове програмне забезпечення, і вони не покликані імітувати реальні сценарії використання. Вони створені як навчальні задачі, щоб допомогти набути вільного володіння мовою програмування. Тому ми свідомо не намагаємося охопити кожен крайній випадок, примусити до маси перевірок вхідних даних чи інших подібних речей із реального світу. Якщо запропоноване покращення має на меті впіймати крайній випадок або перевірити вхідні дані, його навряд чи приймуть, хіба що воно суттєво змінює вправу.
Навчальні вправи мають одну мету: навчати концепцій. Усі зміни у вправі ми передусім оцінюємо з огляду на те, чи покращують вони викладання концепцій.
Навчальні вправи (особливо) не покликані бути вичерпними у своїх тестах. Вони також часто бувають трохи штучними чи заплутаними, щоб не використовувати концепції, яких студент ще не вивчив, і не перевантажувати його.
Якщо запропонована зміна може відволікати від вивчення концепції, її, найімовірніше, відхилять. Якщо зміна полегшує навчання, її серйозно розглянуть. Якщо вона десь посередині, її можуть прийняти, але навряд чи дадуть їй пріоритет.
Головне, що варто розуміти про практичні вправи: майже всі вони живуть у центральному репозиторії (відомому як «Problem Specifications»). Тож зміна у вправі позначається на всіх треках одразу. Це означає, що вдала зміна особливо потужна, бо допоможе всім мовам. Але це також збільшує тягар зміни: щоб її прийняли, з нею мають погодитися кілька мейнтейнерів із різних треків, а потім мейнтейнери кожної мови мають підтягнути зміни у свої треки.
Зміни у вправах також можуть означати, що концепції, з якими їх повʼязано в силабусах, стають розмитішими, або що для розвʼязання вправ потрібні додаткові можливості, а це змінює те, коли вправи розблоковуються. Це теж потрібно враховувати в усіх треках, перш ніж зміни приймуть.
Хоча в нас є механізми, які дозволяють мати певні тести лише в деяких треках, ми радше не радимо цього робити, бо таке розгалуження заплутує і мейнтейнерів, і студентів. Тож, пропонуючи зміни до практичних вправ, зважаймо на ширшу картину в усіх треках.
Хоча є багато причин, чому ми не приймаємо пропозиції, дуже часто люди приходять із чудовими ідеями, які ми таки приймаємо!
Ми також майже завжди відкриті до змін у формулюваннях, які додають ясності, особливо в навчальних вправах.
Щоб у пропозиції був якнайкращий шанс на схвалення, виписуймо її так, щоб було видно, що ми врахували таке:
І памʼятаймо, що думки варто подавати як думки, а факти - як факти. Це зазвичай веде до найпродуктивніших розмов.
Ще раз дякуємо за час, витрачений на пропозицію, і за те, що дочитали цей документ!