之前論壇上看過一些組隊學習的帖子,大多數帖子更多的只是提出一種訴求,這篇文章將談談本人對組隊學習的一些理解。
為什麼需要組隊學習
網際網路提供了一種方式,連線不同城市的異類。組隊學習讓異類遇到異類。人要可持續成長,需要滿足自主、勝任、歸屬的需求。小隊帶給成員歸屬感,這種歸屬感是建立在個人投資和相互依賴的基礎上的。小隊裡的每個成員都是具有欣賞能力的受眾,在必要的時候也能夠給其他成員帶來技術支援和情感支援。
什麼是組隊學習
《劍橋學習科學手冊》這本書將組隊學習稱之為「學習共同體」。學習共同體的目標是 提高集體知識並以此帶動個體知識的增長。關鍵特徵在於 存在一種可以讓每個人參與到為增進理解而努力的學習文化中。學習共同體必須具備以下四個特徵
- 成員各有不同的專家知識,樂於貢獻,同時共同體支援他們的發展;
- 旨在持續提高集體知識和技能的共同目標;
- 重視學習方法的學習;
- 共享所學知識。
對於程式設計學習公共體而言,目標應當具體且單一,比如 PHP,或者是高度相關的幾個目標,比如 PHP 和 MySQL。人數應當控制在 20 ~ 50 人之間,人數太少的話彼此之間會因為過於熟悉導致說話有所顧慮,而人數太多的話則不利於團隊的維持和保持向心力,任何技術群人數超過一定數量都會變成灌水群。
組隊學習的案例
組隊學習存在以下幾種典型:
- 實踐共同體
- 知識構建共同體
- 桑巴舞學校。與程式設計的學習共同體關聯不大,省略。
實踐共同體也稱為「認知學徒制」。大神建立專案後,小白們以學徒的身份直接參與進來,從合法的邊緣性參與逐漸進入核心圈。典型案例可參考 技術團隊的學習方法:每天學習 100 分鐘,成功寫出 2 本書這篇文章,裡面的學習共同體就是一種實踐共同體。實踐共同體少之又少,即使是收費的導師,也未必能夠勝任。
知識構建共同體,是指通過共享發現、建構彼此的觀點,學習者在學習共同體中活動時構建自己的知識。Laravel 社群雖然不是學習共同體,但是在某種程度上來講就是基於知識構建的社群。在社群裡,成員可以分享理論成果,也可以分享個人觀點,而其他成員則進行「批判」,在批判的過程中將建構的知識轉化為深層的個人知識。
如何實踐
大家對組隊學習的初衷往往是想利用同儕壓力來強迫自己學習。但是卻忽視了更為重要的一點,那就是用作品說話,利用輸出來倒逼自己成長。對於成員來說,輸出大於一切。
因此,不推薦使用 QQ 和微信等具有強烈社交屬性的工具,Github 或知識星球等工具則更適合作為學習小隊的工具交流工具使用。
那麼,如何用作品說話呢?推薦以卡片為單位來進行輸出,這樣能保證成員每天都有輸出,更容易控制成員的數量和質量。舉一個 PHP 的例子,卡片名為 「PHP 的序列化與反序列化」
PHP 可使用 serialize
方法對值進行序列化,使其在儲存的時候不會丟失型別及結構。其中,物件序列化時,結果會多出一個指向物件所屬類的指標。與 serialize
對應的是 unserialize
方法。
此外,在對物件進行序列化或反序列化時,會呼叫物件的 __sleep
以及 __wakeup
魔術方法。舉一個常見的應用場景,在反序列化資料庫連結類時,需要重新建立與資料庫的連線
public function __wakeup()
{
$this->connect();
}
總結
本人並未發起過或真正參與過學習公共體,對於組對學習的理解,本人也只是停留在表面。為了驗證自己的想法,專門建立了一個知識星球,主題暫定為 Laravel 和 PHP,如果你感興趣的話,可以加入與我一起探討組隊學習 : )