Uploaded avatar of iHiD

軌道解剖計畫

@iHiD
7年多前

去年九月,我們悄悄展開了Exercism的Track Anatomy Project。從那之後,我們不斷向更多人提起這件事,現在我們認為時機成熟了,可以正式公開我們為了改善 Exercism 上的軌道與練習所投入的具體工作。

要了解 Track Anatomy Project 的目的與必要性,我們得回顧 Exercism 的起源。Exercism 最初由各種語言軌道組成,每個軌道都有一組彼此重疊的練習。當時並沒有所謂的順序或結構,任何人都可以挑選自己覺得看起來有趣的練習,解完之後上傳程式碼,再盼望有人看到並留下評論。我們在 2018 年重新推出時,核心目標就是讓 Exercism 回歸更有結構的做法,無論是軌道本身,還是隨之而來的學習過程。我們決定改造語言軌道,讓它由必修的「核心練習」組成固定主幹,完成後再解鎖選修的「附屬練習」。我們請維護者把核心主幹設計成難度循序漸進,同時規劃出與所練習技巧相關的解鎖順序。不同的維護者採用了不同做法,成效也各不相同。有些人就是撥不出時間,遇到這種情況,我們只好隨機挑選十個練習來組成最初的核心。

很快我們就發現,軌道的設計對這個軌道的成功與否有極大的影響。在重新推出後的頭幾個月裡,我們有了一連串關鍵的觀察:

  • 如果一個語言軌道的第一個練習太難,會讓人感到挫折,導致使用者迅速流失。
  • 引導一個練習有多困難,與練習本身的複雜度直接相關,而不是與練習的難度相關。
  • 只能用一種典型方式解決的練習(例如「acronym」),或是學習目標明確的練習,引導起來比變化多端的練習(例如「bob」)快得多。
  • 概念介紹的順序很重要,在最初幾個練習裡涵蓋關鍵的慣用語,能讓後續練習對學習者和導師都更容易上手。

基於這些觀察,我們體認到 Exercism 上引導工作的成敗,很大一部分取決於各軌道「課程大綱」的品質,也就是要有正確的主題、在正確的練習中明確涵蓋,並以合適的順序呈現。我們決定必須發展出一套正式框架,作為維護者的指引,並打造一個能當作其他軌道黃金標準的軌道。

在這些事情發生的同時,我們的一位導師 Maud de Vries 開始定期發表關於如何改善 Ruby 軌道的建議。她從事專業教練工作已有 20 年。她的想法與我們當時的體悟驚人地一致。Maud 默默地逐一分析每個 Ruby 練習,並繪製出一張地圖,說明這些練習如何彼此連結、包含哪些概念,以及該怎麼重新安排,才能構成一個對學習者來說結構良好、對導師來說有趣又有吸引力的軌道。當她向我們展示部分成果時,我們認定她正是發展軌道框架的合適人選,也能以 Ruby 軌道作為我們的典範。從那之後,Maud 便以兼職身分為 Exercism 工作,重新設計 Ruby 軌道,並發展出一套多階段的框架,讓維護者可以依序操作,快速把她的經驗複製到其他語言。從十月起,Erik Schierboom 利用空閒時間擔任 Maud 的白老鼠,測試並運用這套框架來改善 C# 軌道,這也回過頭來對框架本身的發展帶來巨大的影響。

現在我們即將邁入下一階段,可以帶著下一批維護者走過這套框架的流程,並更嚴謹地測試與調整它。等這一輪完成後,我們希望能發布框架的第一版,讓更廣泛的社群進一步檢視。我們非常期待達到那個階段喔,也很想展示所有在幕後默默進行的工作。我們認為這是 Exercism 向前邁進的一大步,將同時大幅改善學習體驗與導師的體驗。

最後,我想向 Maud 致上最誠摯的感謝,她不辭辛勞地帶領這個計畫;也要感謝 Erik,他撥出好多空閒時間來幫忙喔。

2019年02月03日 · 覺得有幫助嗎?