Thoughts on Girls in Tech X CodePath – Android Bootcamp

Girls in TechCodePath 合作的國際計畫 – 培育Android 開發中高階人才,台灣 (Girls in Tech – Taiwan) 是全球第一個開始執行的組織。在2017/4/10(一) 結束了第一期Demo Day。為期八週,超過30小時的實體課程指導,與線上教材的搭配,培育出17位中階開發者完成所有指定作業及團體專案。

全程教材是由美國 CodePath 公司提供。在課程確定時CodePath已提出執行方式,希望該地必須至少有 1:4 的助教與學員比才願意開班,且助教皆需通過CodePath訓練與作業繳交。在課程執行過程,當地的組織與助教,也必須固定開會回報學員狀況及指導過程的反饋等。CodePath在美國,則藉由遠端方式,掌握學員學習狀況,也傳達此課程目的與理念。
在GIT開始宣傳此課程後,所有報名者透過CodePath內部系統進行報名。除了需回答基本資料(包含是否為已有程式開發經驗)也須通過「程式基本能力測驗」。此測驗主要要了解是否能:
  1. 讀懂Android(英文)技術文件
  2. 具備解決問題的能力
  3. 寫程式的邏輯性
  4. 安裝也準備好Android開發環境
  5. 英文閱讀無障礙
將近80位的申請者在最後篩選出10位正取生及10位備取生。原符合CodePath初選條件僅有10位,但在Girls in Tech Taiwan 會長 – Jane 的建議與爭取下,希望能夠讓備取生一併進入課程,最終有20位學員於2月中開始課程。
課程是每週一和四晚上七點至九點固定在三創生活園區 11 樓 (註:本活動場地由三創育成中心贊助)。每週一是助教輪流講解本週的觀念與作業分析;每週四則是固定會有一個現場Lab要完成,可能是做一個與本週作業有關的練習(例如:Google地圖、Camera、排版練習),或者是拿既有的程式碼做調整,試驗Android的相關功能。也會利用此堂課時間,做分組專案的事先準備。包含學員認識(這也是課程規劃的一部分),專案Brianstorming 還有需求規劃等。
再來則是學員投入最多的時間 – 每週作業。作業的需求、實作與分數條件,都會在CodePath 提供給學員的線上後台裡詳細敘述。而不單單只是出作業,後台給學員的「參考資料」也非常豐富。這些連結大多是CodePath 累積撰寫的Android觀念筆記 (包含圖、文、原始碼),也有許多外部的相關補充說明(Android官方文件、Youtube、stackoverflow等等),就像是武功秘笈般讓學員省去搜尋相關文章說明的時間。每週的作業大約平均每人需要花的時間是15-20小時。前面四週的作業其實都有關聯性,包含如何使用與呼叫第三方 API、運用他人開發的Android Libaries等等。作業內容主要分成兩大部分:
  1. 基本與必要功能需求:此部分是每位學員一定要在本週作業內完成,否則視同沒有完成
  2. 優化需求採加分制,分數的計分都在每項需求上,根據完成度加分。
繳交作業的方式也有明確的規範,一定得把程式碼放到Github,錄製操作影片並放到 .README檔案上。CodePath 是非常看重與嚴格執行作業審核,待你完成並線上繳交作業後,CodePath 美國會有人「專門審核」每位學員的程式碼,打分數(分數只有個人及助教們看得到),且分數會細分成 UI 介面設計、各項需求完成度、其他功能加分等。
後四週是「分組專案」,為了第八週最後一次的 Demo Day ,每組皆須做出一個簡單的App。每組皆會有一位助教帶領,透過CodePath 的系統讓2-3人分成一組。組員討論出Idea,決定App名稱和方向,分析基本需求,安排實作時程與分工後就開始實作。透過分組專案,除了增加程式能力之外,還有以下目的:
  1. 學習多人合作
  2. 練習思考自己與觀察別人的Coding Style
  3. 運用Github做版本控管
  4. App開發優先權思考(包含UI面與功能面)
  5. 專案管理

分組專案的目的,其實也在學習實際到公司以後必須和其他開發者共事的情境。因為只有四週做專案,所以並非是要做出功能齊全、包山包海的App (實際上,App本身設計就需要聚焦)。而是希望將個人已有的開發能力,學習「合作開發」,練習溝通與協作。這四週,幾乎每組都是在假日約出來討論與團體實作,有問題互相支援、討論,我想,這也有達到原來課程規劃的分組專案預期的效果!

Demo Day 當天,最佳App是由 LastWord 獲得,他們(中間兩位)也是當天唯一一組將APP放在Play Store: https://goo.gl/0ey1f3
市面上有許多程式開發課程和教學方式,但大多忽略了「成效」這件事。課程的目的到底是什麼?是否真的能夠培育出能獨力解決問題的人才?能直接進入企業裡面工作的能力是什麼?真的有把企業主的需求和人才的能力配對到嗎?
我看到CodePath 持續回歸到一個主軸去思考:「培育人才的目的是能進入公司直接擔任中階以上(Senior)的角色。」所以課程執行的方式與內容,強度很高,要求很多。不光是自己的教材內容,對於助教的要求也很嚴謹。這次課程最後是17位學員畢業,7位助教留到最後(註:1位助教是身體不適離開),7個App專案產出。就數字來看,學員人數或許沒有比外面課程來的亮麗,但是「重質不驅向衝量」才彰顯出本課程的特色。另外,也可以看出,國際間對於程式相關人才需求仍然很高,特別是有經驗的中高階人才,這些人不是進入公司才累積經驗,是需要能立即上線、解決問題甚至會需要領導團隊的人。
這八週的密集課程,我觀察到幾個特色:
  1. 把資源放在對的人身上:沒有符合每次考核的學員,立即drop out。讓真正願意付出時間的學員得到寶貴的資源。CodePath 不吝於讓學員學習,但這些經驗和時間累積的精華,是不希望被濫用。我很喜歡這樣的教學主導風格,讓資源效益最大化。(我想這也是「美式作風」?!),而程式學習有大多時間是需要「自學」和「動手」,不僅是閱讀教材內容,更多時間是要在 Try/Error中增加功力。
  2. 線上是必要,但是不可忽略實體互動與教授的重要性:錄製線上影音、有好的教材與學員管理制度是必要的,因為每位學員背景與進度不一樣。但是實體聚會才能將 pair-programming 的氣氛凝聚,特別是在「學習階段」,面對面才能讓學習動機增加並延續。學員的互動、互相協助與討論是影響個人的學習成效很重要的關鍵。CodePath的後台系統很直覺,學員在做和繳交作業時,非常依賴後台提供的所有資源;CodePath製作的Android重點文件,也很清楚易懂,且持續更新,讓整體的課程體驗很完美。而助教也能透過系統了解語掌握學員的狀況。每週的作業都會有自評,花了多少時間?勾選自己完成度,不把評分列為CodePath首重目的,反而拉回要求自我檢視個人的每週學習狀況。
  3. 回到企業主本身的人才需求上去設計課程:CodePath 做了很多企業內訓的課程,無論是協助公司內部人才在程式技能上的提升,或是讓公司能透過課程執行時,找到對的人才。這也是為何許多美國公司願意贊助課程讓更多人接受CodePath訓練。而CodePath也有使命在密集課程中將表現不錯的學員引入企業(已有許多美國大型科技公司皆有CodePath的畢業生,如: Google, Facebook, Uber, Airbnb…)成為學長姐後可推薦一樣優秀的人才進入該公司 (別忘了,Bass說過,美國企業大多靠的是 Referral)。因為目標很明確,所以課程的設計偏重實作,減少過多的copy/paste。
  4. 重視助教培訓:不只學員受益,經過CodePath篩選出的助教雖然不一定有教學經驗,但是透過這次課程與CodePath在流程上的嚴謹要求,讓擔任助教們也能在程式脈絡上更為清晰。除了比學員早一個月開始準備,每位助教皆須負責一週的觀念講解與帶領 Lab,甚至也要安排試教,從練習、修正、熟悉、有自信。自己理解與「讓別人理解」,是兩個不同的等級,從學員身上學習,也從其他助教身上獲得很多。而這些助教一定也是喜歡貢獻的人,他們必定能創造更多程式經驗給學員。
  5. 建立健康的 Ecosystem才能帶動良性循環:好的循環才有機會讓一個龐大的體制轉動。從培訓前準備、課程過程執行、到最後成果的呈現,這黃金三角(企業、助教、學員) 是整個計畫運作的關鍵。加上外部資源到位,齒輪就能很快轉動。而循環所能產生的影響,是很難預測的,相信從這個計畫畢業的每個人,都能把獲得的學習經驗,帶動自己甚至影響其他人。

 

學習程式 Pair Learning 也是很重要
「人」是串起這次Girls In Tech Taiwan 成功完成CodePath計畫的要素。謝謝 Ann LinJane 花了非常多的時間與 CodePath 及 GIT 總部討論、修正每個細節,才能開啟這個計畫的扉頁。而Ann也在台灣Android的相關社群找到一群非常願意付出時間、精力與開發經驗的超強助教陣容。因為他們的無私,才能成就整個課程的內容與目標。
謝謝 Po-Yu Cheng, 謝恩平, Tobey Yang, Yi-Teng Wang, @信宏, @逸鈞, @佳彣 擔任此次的助教。在最後的 Demo Day,重頭戲除了是每組的專案外,整個現場在最後每位助教分享心得時是很感性的。大家幾乎都一致認為,擔任助教雖然辛苦,但是對於自己開發能力上也有很大的幫助。這種同甘共苦的回憶是很特別的,因為花了不少時間在這上面,那種動手做出成品的成就感也特別大。
默默付出也學到很多的辛苦助教群!

回到 Girls In Tech Taiwan 的理念:「連結國際,讓台灣的人才被世界看到。」畢業的17位學員和8位助教,相信你們會繼續在開發的路上精進學習。希望「拔尖計畫」能真正讓台灣的開發者走出國際,回饋土地。最後,套用 Jane 在 Demo Day 的致詞:「希望你們真的有機會到國際優秀的公司工作,然後別忘了像我一樣,回來鼓勵、幫助更多台灣人,特別是女生。」

CodePath 的兩位共同創辦人 – Tim & Nathan 特地在最後 Demo Day前夕,在美國錄製了一段鼓勵與祝賀的影片給所有在台灣的學員與助教

 

 

Jane 分享這次與 CodePath 合作的心得

 

Jane 在 Girls in Tech-Taiwan/Taipei Women in Tech 的一段文字:「今天,敬好多個堅持不懈的你/妳 – Girls in Tech x CodePath Android program有近80位報名,大家都要交prework及履歷篩選,本來 CodePath 只挑了10個人夠 qualified 來上課。而我硬是將 waiting list上10人(交了 prework,但開發經驗不夠)弄進到 program研習。CodePath 怕他們會覺得課程太嚴太難,挫了學習的初衷,但 Everyone deserves a chance to start. They will drop out eventually if this is not the place for them. (我想)。今天聽完每組Demo,及看到CodePath 的Tim 跟 Nathan(Co-Founders)特別說這些學員的程度不但不輸矽谷的工程師,有些甚至超越了。以你們爲傲,努力是有代價的,互助與助教的引導也是研習成效很好的關鍵。

 

Demo Day 結束,也宣告著這系列課程劃上句點。所有學員、助教互相交換聯絡方式的「盛況」:)

 

文字心得來源: Joannie Huang https://goo.gl/15iZIb

 

Leave a Reply

Your email address will not be published. Required fields are marked *