Часті запитання про наставництво

Добірка найпоширеніших запитань про наставництво


Хто може бути наставником?

Чи можу я наставляти з мови, яку ще вивчаю?

Чи можу я наставляти з кількох мов?

Чи варто намагатися наставляти з кожним рішенням у черзі?

Що робити, якщо рішення лежить у черзі днями, а то й тижнями?

Що робити, якщо мені нічого порадити щодо рішення?

Чи варто наставляти з вправи, якої я ніколи не розвʼязував?

Чи варто наставляти з вправи, яку я розвʼязував, але іншою мовою?

Чи зобовʼязаний я наставляти з рішення, щойно його побачив?

Що робити, якщо учень не розуміє після кількох моїх пояснень?

Як відповідати, якщо учень починає захищатися від моїх порад?

Чи має учень останнє слово, навіть якщо я вважаю, що він помиляється?

Як найкраще сформулювати пораду?

Чи варто вимагати дотримання форматування, коментування та правил найменування?

Хто може бути наставником?

Не потрібно бути експертом із мови, щоб наставляти з неї. Достатньо бути лише трохи меншим новачком, ніж людина, яку ми наставляємо. Якщо в рішенні є щось, що, на нашу думку, можна зробити інакше, це можна запропонувати. Це не обовʼязково має бути кращий спосіб, достатньо лише ідіоматичної альтернативи. Так вибір, скористатися порадою чи ні, залишається за учнем, але принаймні в учня буде більший вибір.

Чи можу я наставляти з мови, яку ще вивчаю?

Ідеально, ми ніколи не припиняємо вивчати мову, навіть ту, яку вже знаємо. Деякі мови випускають оновлену версію кожні кілька тижнів або місяців. Можуть зʼявлятися не лише нові можливості мови, які варто вивчити, а й уже наявні, про які ми не знали. Іноді учень може скористатися якоюсь можливістю, і ми побачимо її вперше. Тож наставництво може бути добрим способом дізнатися більше про мову.

Чи можу я наставляти з кількох мов?

Можна наставляти з будь-якої кількості мов, якщо почуваємося з ними впевнено. Цілком нормально наставляти з кількох мов, у яких почуваємося впевнено, а також із мови, яку ще вивчаємо.

Чи варто намагатися наставляти з кожним рішенням у черзі?

Якщо наразі не спадає на думку нічого змістовного чи конструктивного щодо рішення, для учня може бути краще, якщо ми залишимо запит на наставництво іншому наставнику, навіть якщо тоді учневі доведеться чекати на відповідь довше.

Що робити, якщо рішення лежить у черзі днями, а то й тижнями?

Якщо учень поставив конкретне запитання, на яке ми не можемо відповісти, запит усе одно краще залишити тому, хто зможе відповісти на його запитання.

Інакше рішення може стосуватися вправи, яка була складною для нас: можливо, ми її взагалі не розвʼязували, або розвʼязали, але відчуваємо, що не дуже добре. У такому разі варто переглянути рішення й подивитися, чи можна з нього щось винести для себе. Якщо так, можна подякувати учневі за те, чого ми конкретно навчилися з його рішення.

Або можна попросити учня пояснити нам своє рішення. Це свого роду «зворотне наставництво», але деякі учні із задоволенням пояснять своє рішення, якщо попросити ввічливо й шанобливо. Після цього можна запитати, чи учень розглядав інший підхід і чому обрав саме той, який обрав.

Або рішення загалом усе ще незрозуміле, але дещо в ньому все ж можна прокоментувати. Наприклад, можна порадити використати змістовні назви для параметрів функції, якщо учень узяв просто n чи m.

Якщо жоден із цих варіантів не викликає комфорту, цілком нормально залишити запит без відповіді. Наставництво є добровільним. Те, що ми наставляємо з якоїсь мови, не означає, що ми маємо опрацювати кожну вправу з цієї мови.

Що робити, якщо мені нічого порадити щодо рішення?

Цілком нормально сказати, що нам подобається в рішенні. Більше того, почати будь-яку наставницьку розмову найкраще з розповіді про те, що саме подобається в рішенні. Після цього, якщо немає порад щодо інших підходів до вправи, цілком достатньо просто сказати учневі: «Молодець!» Якщо учень надіслав більше ніж одну ітерацію, можна вказати, у чому остання ітерація є покращенням.

Чи варто наставляти з вправи, якої я ніколи не розвʼязував?

Іноді погляд на рішення учня надихає розвʼязати вправу самостійно, особливо якщо застосований у рішенні підхід робить вправу простішою, ніж підходи, які ми вже могли розглядати. Розвʼязавши вправу, ми принаймні будемо готові до наступного разу, навіть якщо запит на наставництво, який нас надихнув, уже зник.

Чи варто наставляти з вправи, яку я розвʼязував, але іншою мовою?

Оскільки те, що ідіоматично в одній мові, може бути неідіоматичним в іншій, найкраще, ймовірно, розвʼязати вправу тією мовою, з якої ми наставляємо. Якщо рішення двома мовами дуже схожі, і ми знаємо обидві мови достатньо добре, щоб розуміти, що ідіоматично в кожній, перенести рішення з однієї мови на іншу не забере багато часу. Якщо після перенесення рішення запит на наставництво вже недоступний, ми принаймні будемо готові до наступного разу.

Чи зобовʼязаний я наставляти з рішення, щойно його побачив?

Можна глянути на рішення й зрозуміти, що наставляти з нього не хочеться з кількох причин, зокрема:

  • Учень міг поставити запитання, відповіді на яке ми не знаємо.
  • Код може бути настільки багатослівним та/або заплутаним, що незрозуміло, з чого почати розбір.
  • Код може свідчити, що учень цілком початківець і потребуватиме багато базових пояснень, на які в нас немає ні часу, ні терпіння.
  • Коментар учня може свідчити про те, що взаємодія з ним може бути неприємною або виснажливою.

Ніщо не зобовʼязує натискати кнопку «Почати наставництво», якщо конкретний запит на наставництво нам не підходить.

Що робити, якщо учень не розуміє після кількох моїх пояснень?

Буває, що учень майже навмисно не хоче розуміти наших пояснень. Якщо здається, що ми вичерпали всі відомі способи щось пояснити, можна вирішити завершити обговорення порадою учневі надіслати запит на наставництво заново, щоб ним зайнявся інший наставник, якому вдасться краще пояснити складні моменти.

Як відповідати, якщо учень починає захищатися від моїх порад?

Іноді учень каже, що свідомо застосував складніший підхід, ніж потрібно, щоб краще вивчити якусь можливість мови, навіть якщо ця можливість не найкраще підходить для вправи. Оскільки Exercism є платформою для навчання, а не сайтом для змагань із програмування, це цілком виправдана причина не використовувати найелегантніший чи найефективніший підхід. Можна дати кілька порад щодо того, як учень застосував свій підхід, якщо видно, що його можна було реалізувати ідіоматичніше. У будь-якому разі можна запропонувати учневі надіслати ще одну ітерацію на основі відгуку, або завершити обговорення, щоб звільнити місце для наставництва.

Учень може дотримуватися парадигми програмування, яка не найкраще підходить для мови чи вправи. Наприклад, він може завжди прагнути до обʼєктно-орієнтованої парадигми й розбивати відносно просте й прямолінійне рішення на цілий вибух класів із лабіринтовим потоком керування крізь безліч методів. Тією мірою, якою учень догматично відданий парадигмі, переконувати його в іншому підході зазвичай марно. Спробувати можна, і учень може відгукнутися на нашу пораду, але якщо він упирається, краще рухатися далі.

Учень може взагалі відкинути пораду. Наприклад, ми можемо порадити використати reduce замість map і join, адже reduce - це лише одна ітерація замість ітерації для map та ще однієї для join. Але учень може відкинути це, бо вважає map і join читабельнішими. Цілком нормально погодитися з учнем, що map і join можуть бути читабельнішими за reduce. Можна порадити, що до reduce з часом звикнеться легше, і що в map та join немає нічого поганого.

Цілком нормально погоджуватися з учнем тією мірою, якою він правий, і так само нормально спробувати виправити будь-яке хибне уявлення чи перебільшення, яке учень міг висловити.

Чи має учень останнє слово, навіть якщо я вважаю, що він помиляється?

Наприклад, можна порадити учневі не використовувати магічні числа, як-от 60 і 24, розвʼязуючи вправу Clock, а натомість визначити їх як константи зі змістовними назвами. Учень може відповісти, що з огляду на контекст цілком очевидно, що означають 60 і 24. Пораду вже висловлено, і учень її відкинув. Сперечатися про це, мабуть, нічого не дасть, а доброзичливість може й постраждати.

Як найкраще сформулювати пораду?

Щоб запропонувати щось як альтернативу, яка не обовʼязково краща, можна почати зі слів «Інший підхід міг би полягати в тому, щоб...». Наприклад: «Інший підхід міг би полягати в тому, щоб використати every разом з includes».

Note

Якщо ми знайомимо учня з можливістю мови, якої він не застосував у рішенні (як-от every чи includes), варто дати посилання на документацію, де її пояснено.

Інший спосіб почати пораду: «Можливо, варто розглянути...» Наприклад: «Можливо, варто розглянути використання синтаксису розгортання замість split()». Якщо є тверде переконання, що учневі варто скористатися альтернативою, можна прибрати «Можливо» й почати зі слова «Розгляньмо...» Наприклад: «Розгляньмо використання типового аргументу».

Для серії порад варто урізноманітнити їхні вступи.

Марковані списки - це ефективний спосіб перелічити, що подобається в рішенні. Але в переліку порад вони можуть сприйматися менш привітно. Якщо подавати поради невимушено, у розмовному стилі, учневі буде легше їх обміркувати й прийняти.

Одне слово, яке, ймовірно, краще не використовувати, даючи пораду, це «повинен». Наприклад: «Типовий аргумент повинен бути використаний». Слова на кшталт «повинен» чи «мусить» можуть звучати владно.

Чи варто вимагати дотримання форматування, коментування та правил найменування?

Наставники, ймовірно, не будуть погоджуватися щодо того, коли і як наполегливо порушувати такі теми, як форматування коду, коментування та правила найменування. З одного боку, хочеться, щоб учень замислювався про такі речі якомога раніше, на вправах на кшталт Two Fer, поки не набув поганих звичок. Або ж не хочеться лякати початківця всіма міркуваннями про те, як належить писати код. З іншого боку, учні, які розвʼязують складніші вправи, можуть уже знати ці правила, але свідомо їх ігнорувати, зосередившись на самій задачі. Вони можуть сприймати постійну увагу до правил як педантизм. Якщо в мові є один чи кілька форматувальників або лінтерів, варто вибрати вправу, де з ними й познайомити. Інакше, якщо порушення якогось правила справді кричуще, варто вказати на нього, де б воно не трапилося. Розбіжність між наставниками може бути в тому, що вважати «справді кричущим».