混血文科 02

菜鳥 iOS 工程師冒險之旅:新手村

Ya-Han Chang
8 min readMar 16, 2018

全文共 2551 字,閱讀大約需要 9 分鐘。

啟蒙是從自己招致的受監護狀態中走出來。
受監護狀態是沒有他人指導,就無法使用自己知性的那種無能。
這樣的狀態,如果根本原因不在於人缺乏知性,
而是缺乏使用知性的決心與勇氣的話,那便是自己招致。
要勇於求知!

— — 康德〈答「何謂啟蒙?」之問題〉

異想天開的求職規劃

「轉職成為 iOS 工程師?那是什麼?妳打算怎麼規劃?」已經擔任高中正職國文老師的 W 疑惑問道。

我指指 W 桌上新買的 iPhone X:「 iOS 是蘋果的行動裝置作業系統,這個職業是軟體工程師其中一種,主要從事蘋果手機、平板的 App 軟體開發,英文叫作 iOS Developer。我打算先投入半年全職學習,並兼職一份工作。」

使用蘋果電腦工作

為什麼會這麼規劃?因為按照先前蒐集的資料,如果非本科系出身、完全沒有任何程式基礎,只要願意投入時間學習,大約需要 6 個月的時間養成。在完成一個 App 上架後,就能應徵初階的 iOS 工程師職缺。

iOS 和 MacOS 的 App Store

目前台灣和國外 iOS 的學習資源非常豐沛,分為實體課程、線上課程、入門書籍、實體聚會等很多種形式。

這是因為在 2014 年以前,蘋果的行動裝置作業系統是使用 Objective-C 程式語言進行編程,這套程式語言複雜難懂,做好的專案雖然最後鎖定高端價位,但是開發 App 軟體的成本也相對較高。

看不懂的維基百科 Objective-C 頁面

2014 年蘋果發佈 Swift 程式語言之後,這樣的情況獲得大幅改善。原因是Swift 的語法易學易懂,提供給臺灣非本科系進入軟體產業很明顯的破口。

因此,近幾年來出現許多 iOS 的補習班實體課程,他們通常強調不需要任何程式基礎,就可以做出 10 款以上的App,還附帶提供有效的轉職建議。

看不懂的維基百科Swift頁面

我剛畢業,沒有足夠的預算報名補習班。

如果先選擇入門書籍、線上課程和固定實體聚會學習的話,除了經濟負擔會比較輕外,時間也能按照自己的需求和作息安排。

最重要的是,想測試看看自己歷經一竅不通的混亂後,如果還能從中玩出興味,這或許代表對這塊領域是真正感興趣的吧。

Xcode開發環境首頁

尋找資源:不能裸裝 Play!

「我看看……要成為iOS 工程師,必須學會 Swift 和 Objective-c 兩種程式語言,還有熟悉 Xcode 的開發環境。西門町有家專門販售電腦書籍的店,去看看好了。」我對著自己整理的資料喃喃自語道。

天瓏書局門口

到了天瓏書局,我很快就找到事前作好功課的入門書籍――彼得潘的《 Swift程式設計入門 》,和 Simon Ng 的《 iOS 10 App 程式設計實力超進化實戰攻略 》,又順手拿了李思《 漫畫!圖解程式設計必學基礎 》衝去結帳。

那時心想,總共三本書,看完應該就有基本瞭解了吧!(才怪)

三本書疊一起合照

隔天我很早就到圖書館開始練習。起初因為是第一次使用 Mac ,按鍵位置和基本操作都很不習慣,非常依賴滑鼠,連按照書上程式碼敲英文字都會出錯。不過很快地, Mac 逐漸上手,版本不同的地方也都能自己修正。

Xcode程式碼註釋解說

有次我在 iOS@Taipei 發問時,意外遇見了 O 。 O 和我大學同校,資管所畢業後,從事軟體工程產業,原本寫 Android App,現在成為 iOS Developer。她是位很謙虛可愛的人,總是對我說:不會的我們一起討論學習。

不過,想也知道一定是我向她學習。她無私分享 Apple 官方自學文件該如何尋找 — — 除了我原先就知道的 iOS Human Interface Guideline 外,當需要瞭解某個觀念時,Programming Guideline 能找到相關說明; Xcode 裡的 SDK Documentation 則收錄了所有框架的類別及方法。

SDK Documentation網頁螢幕截圖

我不是唯一走在這條路上的女生!

一個半月後,我報名參加 Swift Girls 舉辦的 iOS 新手工作坊,在那裡認識了 Y 、 S 和 H 三位核心成員,也與同樣前來學習的 N 成為朋友。那次工作坊的研習主題是學習相機功能、聊天室和第三方套件的製作。

當時女人迷「新手工作坊」報名頁面

這次的實體聚會得到非常大的收穫,不過也有令自己感到汗顏的地方 — — 那就是回家練習時,不斷發生失敗閃退的情況!整整持續了問天問大地(?)和對自己翻白眼的三天,還是想不起來到底遺漏哪個步驟,或哪個步驟操作錯誤……。

到了第四天,驚覺一直這樣下去,好像不是辦法……。

不行不行,想學會就不能害羞,要請人幫忙才行!我鼓起勇氣,整理之前寫得非常凌亂的筆記,小心翼翼地私訊給當天只有簡短交流的 H 看,並盡量注意禮貌,拜託 H 能不能教教我?

之前整理的筆記螢幕截圖

H 已讀後淡淡地丟回訊息,説當面講解比較清楚。

那天,我很早就到約定地點立正等她,內心卻不斷上演孟克的吶喊: OMG 要是等下還是聽不懂怎麼辦?這會不會是程式麻瓜認證無誤的徵兆?(嚇!)都已經跟朋友誇下海口了,不想回家吃自己啊啊啊。

捷運口

驚訝的是, H 與我碰面後,廢話不多說,立刻找地方坐下從頭說明(被教的在旁邊開啟瘋狂學習狀態),還提醒許多開發要注意的細節:像是要向別人請教已經執行的 App 哪裡出問題時,要記得將除錯區打開(連這個都不知道囧),還有如果不小心手殘按到程式行列數字時,執行中斷點該如何移除。

最重要的是,從她教好教滿的講解與操作中,我貼身觀察到一位專業的 iOS工程師,對於開發的熟練與累積,和不吝於與人分享的職業性格。

除錯區和執行中斷點

聽完 H 的教學後,到家已經十一點半,而 H 告訴我,她住在桃園,我住臺北,想必比我更晚回家……。除了有些擔心她是否平安到家外,也想到剛剛「好像」終於學會的興奮!

很想知道,如果現在只靠自己操作,能不能成功?

後來完成的筆記螢幕截圖

為了不辜負她的心意,我坐在書桌前,將剛剛她教過的反覆複習。

再抬起頭時,竟然已經四個小時過去了!看著窗外即將變亮的清晨,身體雖然疲憊,但是因爲自己終於學會、知道是哪裡出錯修正後,內心感到前所未有的滿足及喜悅!:)

甚至入睡前,還是止不住笑意,一直傻笑個不停。

桌椅休息中

Is that my turn? 機會或命運

投入全職學習的時間,不知不覺已經六個月。

自從知道 AppWorks 近年培養許多自學並轉職成功的 iOS 工程師後,我一直持續關注他們的開課訊息,內心不斷想像著:如果自己接獲錄取通知、跟大家一起自主學習的話,那麼也許距離成功轉職的目標,就沒有那麼遙遠吧?

AppWorks School申請連結

當 AppWorks School 第一時間釋出 iOS Class # 6 開課訊息時,我立刻著手準備申請的資料,包括量身打造適合的履歷自傳、附上這段時間以來累積的筆記作品集,申請表單甚至用英文撰寫回應後,還拜託專業人士潤飾校正。

(這算開外掛嗎?可是我真的真的好想去啊!)

用英文撰寫的申請表單

一週後審核資料全部準備妥當,我小心謹慎地按下 — — 「送出」!

等待回覆的期間,每天都惴惴不安地想著:我能得到進一步訪談通知的機會嗎?我有機會距離成為 iOS 工程師的目標再靠近一些嗎?我能轉職成功嗎?

終於,我收到了 AppWorks School iOS Class # 6 寄來的訪談通知!

--

--

Ya-Han Chang

軟體工程師,遊走寫作與技術之間。 相信人文混血價值,持續鍛鍊理科思維, 希望按照自己的 tempo,邁向 mid-level developer 之路。💬 facebook: https://www.facebook.com/yahan.chang.165/