好想工作室 iOS Camp 訓練盒挑戰賽

就在上週,工作室內部進行了一場「訓練盒」挑戰賽,而參與者是一群學習時間落在 3~6 個月的 iOS 開發新手

挑戰賽的目的是在 deadline 下體驗「各種壓力」、意識到自己能力的不足。

來工作室絕大多數的學員從來都沒有接觸過 coding, 甚至原本所在的行業也和 IT 完全沒關係。

我自己認為轉型是一件困難的事情,如果不是全力以赴,勢必無法把這條路走的漂亮。

不論在什麼行業「分解問題、解決問題的能力」、「求知慾、快速學習的能力」這兩者都是讓你不斷向前的力量。

而我們強調培訓沒有「課程」,是為了幫助你加強這兩種力量。


訓練盒

背景

「訓練盒」是我學習 iOS 開發大約 3 個月左右的時候用 Objective-C 寫的,其中的 view / animation 都是通過 code 來寫,沒有用 Storyboard, 目前看來有部分畫面跑版,但不影響遊戲進行,而當時我手裡只有 iPhone 4.

我的開始

我在2014年的時候開始轉型做工程師,一開始先學習了 1 個月左右的 PHP 後來因為其他考量轉去學習 iOS 開發。

經過一段時間的學習,準備要找工作,但手裡沒有一個比較完整的應用,於是決定做一個遊戲「訓練盒」。

「訓練盒」是一個小遊戲集合,其中關卡會根據分數的情況拿到不同的徽章(紅黃藍綠),根據徽章的數量可以解鎖其他遊戲。

製作「訓練盒」的過程一開始花了些時間來規劃整個遊戲,後面變成大概半天到一天的時間規劃遊戲,一天到兩天的時間做出遊戲。

這個過程非常有挑戰性,因為第一個階段我只想遊戲,而第二個階段我只想怎麼做出來。

最後我從 10 幾個遊戲裡面挑了比較合適的 8 個做成了「訓練盒」,這是我第一個上架的 App.

我到現在還記得當時每天都很興奮的過程,每一次突破困難都讓我獲得滿滿的成就感,而這一份感受我想要讓周圍的朋友也能體會


iOS Camp 訓練盒挑戰賽

這是一個連續一週的挑戰賽,除了告知每天要準時進工作室以外,沒有透露其他資訊。

每天 9:00 公布當天的任務, 中午 11:30 強制停下手邊的工作去吃午餐,deadline 為 17:00.

Day 0 準備日

App Camp 成員各自提出 10 個與開發相關的問題。

這一天我把所有的時間空出來,和大家討論問題。

Day 1 暖身

從近百個問題中提出 30 個尚未解釋清楚的問題來當作任務,讓學員互相認領,互相解答。

最後我會對提出問題的學員通過「問到底」的方式來進行討論。

Day 2 訓練盒 – 做一個遊戲

Coding challenge 的第一天,確認參與者是否有最基本的開發能力Github 連結與活動說明

這一天從 9:00 開始, deadline 是 16:00.

然而並不會讓你從 9:00 就直接開始做遊戲,而是要先下載「訓練盒」並解鎖 7 關。

因為遊戲有難度,很有可能要先挑戰 30 ~ 60 min, 並且會先消耗你不少精神。

任務

  • 解鎖「訓練盒」七個關卡。
  • 做一個遊戲、要有分數的機制、能夠重新開始遊戲、要有動畫

須知

  • 中午吃飯以前不能討論遊戲內容
  • 專案推上 Github
  • 發現有做一樣規則的遊戲,需要協調換遊戲,否則都算 fail
  • 如果有人勿操作 Git 把別人的專案弄掉了,直接 fail
  • Deadline 16:00
  • Fail 的學員在接下來幾天不用進工作室了

結尾

「發現做一樣規則的遊戲,需要協調換遊戲,否則都算 fail」這一條規則有兩個目的

  • 不希望大家都做剪刀石頭布這樣的遊戲。
  • 感受遇到需求改變,deadline 卻不變的壓力。

Coding Challenge 部分作品

  

Day 3 訓練盒 – 運氣是一種實力

Coding Challenge 的第二天,確認參與者是否有最基本閱讀/修改 code 的能力 – Github 連結與活動說明

我們通過「爬樓梯」的方式來隨機分配今天要整合的遊戲。

任務 – 合併遊戲並開發新功能

  • 增加一個首頁,需要有一張背景圖。
  • 可以選擇你的遊戲和朋友的遊戲。
  • 為你的遊戲和朋友的遊戲取一個名字。
  • 畫面需要顯示「遊戲 icon」、「遊戲名稱」、「玩了幾次」、「歷史最高分」
  • 紀錄整合過程中你碰到的問題,你是如何解決的。
  • deadline 16:00

結尾

  • 除了讀懂別人的 code 以外,我想大家也花了不少時間在將兩個 Project 整合在一起的問題上。
  • 驗收時發現了不少跑版的情況。

Coding Challenge 部分作品

 

Day 4 訓練盒 – 合作

Coding Challenge 的第三天,感受自己能力的不足 Github 連結與活動說明

遊戲規則

  • 8 個人分成以菘駿 / Gavin 為 Team Leader 的兩個隊伍,組員通過「爬樓梯」分配。
  • 需要先為你的隊伍取一個名字,才能開始解任務。
  • 「未完成組」請「完成組」喝星巴克,如果兩隊都完成,我請 8 名挑戰者喝星巴克

需求

  • 整合兩個遊戲。
  • 建立首頁,可以選擇遊戲進入。
  • 引入「代幣」功能,玩遊戲會消耗代幣,通過相機掃描 QRCode 儲值代幣。
  • 首頁顯示 App 開啟次數、玩了多少次遊戲、代幣餘額。

限制

  • 競賽期間只能與團隊成員討論。
  • 可以互相討論但不能直接幫對方寫 Code, 驗收期我會通過隨機詢問來了解每個人做的事情。
  • 如果隊伍討論過程有爭議,由 Team leader 負責拍板。
  • Deadline 16:00

特殊效果

  • 如果你的隊伍同時擁有 Sonny / Morris / Ells 其中兩位,你的隊伍 deadline 延遲一小時。
  • 如果你的隊伍同時擁有 Sonny / Morris / Ells 獲得重新組隊的機會。

結尾

 

這是整個挑戰賽最刺激的一天,隨機組合的隊伍、互相競爭、從頭衝到尾。

雖然兩個隊伍在最後 deadline 上都逾時了,但我仍舊覺得他們都做得非常好。

有一組甚至在這個過程中完全重新寫了兩個新遊戲,我非常欣賞這種願意挑戰的人。

Coding Challenge 部分作品

 

Day 5 訓練盒 – 為了成長

訓練盒挑戰的最後一天,我認為做總結對進步很有幫助。

任務

  • 9:00 ~ 10:30 所有成員總結過去幾天的開發心得,整理成問題集並提出解決方案。
  • 10:30 ~ 11:30 成員開始進行發言,我會對發言內容做紀錄。

規則

  • 時間到則停止發言,在此期間內若沒有提出建設性意見給你一個禮拜的時間不進工作室,好好思考未來。
  • 我手裡會有一副撲克牌,當我翻出黑色時,爭奪桌子中央的道具,如果拿到則可以發言。
  • 如果翻出的是紅色的卡牌,而有人將手伸出,則跳過一次爭取發言的機會。

恭喜完賽的各位,要繼續努力 :D

有興趣玩看看「訓練盒」的朋友可以到這裡下載  App Store.

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *