2015年1月17日 星期六

練習程式的道場-Coding Dojo

2015/1/17
15:31-15:39, 8 minutes
18:51-19:13, 22 minutes
19:15-19:22, 7 minutes
20:13-20:47, 34 minutes

Dojo從日文翻譯而來,是道場的意思,Coding Dojo的活動,由Dave Thomas最先提出。

Dave Thomas 說:「In software we do our practicing on the job, and that's why we make mistakes on the job. We need to find ways of splitting the practice from the profession. We need practice sessions.」

中文意思:「我們都在工作的時候練習軟體,這就是我們為什麼在工作犯錯的原因,我們需要找到把練習環境和工作環境切開的方法,我們需要一個練習軟體的會議。」

Coding Dojo有一個wiki網站在這裡,裡面有介紹舉辦Coding Dojo須注意的事項,在Coding Dojo之中依活動的流程分成兩種Kata(Kata也是日文,是『形』或『套路』的意思,就像練習功夫的人,有詠春拳或螳螂拳,每一種拳法,都可以算是一種Kata):

***

1. Prepared Kata

準備式套路,指說一個人已經準備好問題和答案,在活動進行中,要讓在場的觀眾體驗解決問題的過程,報告者解題的每個步驟要非常小(Baby Steps),如果觀眾對於正在進行的步驟有疑問,可以馬上中斷台上的報告者,報告者講解清楚後,才能繼續下一個解題步驟。

要注意的是,在活動進行時,觀眾所提出的問題,不能與報告者所進行的步驟無關,舉例來說,觀眾不得要求重構某項功能,這些與功能性無關的要求只有在報告者帶完整個活動後,才可以提出。

2. Rendori Kata

亂鬥式套路,不用做任何的事前準備,只須將所要練習的問題帶來,活動開始的時候,會有一個主駕駛和副駕駛,一次只有兩個人在寫程式(Pair-Programming),每一組限制一段時間(Time-boxing),當限制時間到了,主駕駛回觀眾席,一個觀眾變成副駕駛,台上的副駕駛變成主駕駛,開始計時,時間到了之後,繼續換位,現場全部的觀眾的輪過一次駕駛和副駕駛時,活動才算結束,台上的人也要遵循Babay Steps,把自己的每一步,盡量表達給台下的觀眾知道。
活動過程中,觀眾只有在台上寫程式的人達綠條(Green bar)的時候才能提出問題或提供更好的建議,如果台上寫程式者遇到紅條(Red bar),觀眾就不能提問,因為台上的人必須要專注排除問題。
但因為大家都是臨時Coding,多少都會產生一種競爭的心態,想要在自己寫程式的回合中產生出最多且功能正確的程式碼,或者是時間到了還賴著不走,這時候叫就靠帶活動的人維持秩序啦!

***

其實在帶Coding Dojo活動的時候,大部分的人都容易犯一個錯誤,就是帶活動的人想要讓活動都在預期的時間結束,而在這預期的時間之中,會先事先做好一些準備,在活動開始的時候,希望把所準備的東西全部表達出來,但往往會無法預測台下會提出怎樣的問題。
要切記,Dojo活動志不在呈現結果或完成任務,活動的初衷是希望創造一個練習Coding的環境,大家可以在活動過程中彼此學習到Coding的技巧,寧願活動前進步驟緩慢,也不要因為想把活動帶完而跳步驟,即使當次活動沒有完成任務也沒有關係。

目前在網路上,可以找到許多的Kata題目,只要照著他們的步驟完成程式,就能學到不少東西哦!

這是一個保齡球遊戲,網站有PPT供下載,遊戲很簡單,只須按照PPT描述的步驟就能完成任務,大家可以來玩玩看。



與你分享的快樂勝過獨自擁有→愛唱歌的人都知道的那些事

沒有留言:

張貼留言