轉職IOS Developer心得文

本文來說說轉職過程,前前後後也花了一年多的時間進行這件事情,我想我應該算是轉職條件最困難的那一種人(大學肄業、過去無任何程式、設計相關經驗),如果連我也可以,相信想轉職的你也可以。

轉職經歷

2021.3 決定轉職為IOS Developer,並開始找資源自學
2021.7 加入彼得潘課程並開始上課並學習
2021.9 結束課程,開始撰寫自己的作品
2021.11完成彼得潘期末作業-訂飲料
2021.12 開始進行三人SideProject,從無到有開始製作
2022.4 完成自己的獨立開發作品-獨立開發的To do list App
2022.5 開始投遞履歷
2022.7 進入新公司開始試用
2022.8 拿到新Offer開始工作

為什麼是IOS?

關於這個問題,每個人都有一個自己的理由。對我來說那就是“希望將腦中的Idea可以毫無阻攔的實際實現出來”,為此必須暸解設計、工程端的想法,所以其實在決定轉職IOS Developer前我曾花費過一段時間進修設計相關知識。
而為什麼不是其他語言而是Swift?最主要的原因是因為在剛開始自學時我可以很簡單的就看到我寫Code之後可以做到什麼樣子的東西。不像其他程式語言沒有辦法在第一時間看到成果,而這種細微的成就感一直都是支持我不斷持續寫Code的動力(關於這個說法,網路上有很多相關的文章解釋原因,值得想寫程式的你去看看)

彼得潘課程

在開始自學之後,其實開始之初的挫折感是非常強烈的,原因是太多不熟悉的語法以外,Swift容許以純Code、Storyboard、Xib+Code方式開發也為我帶來強烈的困惑感,那時候不理解身為一個新手的我,該如何去開始我的Coding之路。

累積一段時間的強烈挫折感之後,發覺這樣學習進度太慢同時也會喪失對於程式的熱情,因此轉而開始尋求一些入門課程,在查找課程時,就因此看到網路上很多Base on beginner的文章都是出自Peter大的Medium上,而同時也看到了Peter大的課程快截止了,於是就果斷的報名下去!

我是帶著些許基礎參加進修班,在過程中Peter大會針對UIkit、SwiftUI的內容去進行程式說明以及教學,完善對於Swift語言的基礎知識(這在實際開發上非常重要),並且藉由大量的實做習題讓學員自行練習以熟悉Swift,這對於學習Swift語言非常有幫助,因為要學會就是動手做是最快的。因此在約莫兩個月的上課時間中,基本上讓我理解了最基礎的Swift語言環境,並且會帶到一些進階的進階知識內容。

課程結束以後,如果足夠認真是可以在上課期間變成一個可以初步理解Swift Coding方式的菜鳥工程師!但同時你也會很痛苦,因為對於一個想轉職或是想學好Code的人這只是開始(詳細可以參考這篇文章),因此9月之後上完課程後你會得到從Peter大那邊滿滿的可進修方向,然後必須花費時間去進修這些知識,小至UI Component、大至Design Pattern都必須一一去細細理解。

如果學習得夠扎實至少你文件裡應該會有超過N份這樣的文章內容
或是像這樣的文件內容,也方便自己忘記時快速查詢

花費一段時間進修相關知識,像是CRUD、URLSession、Combine、Design Pattern、MVVM MVC….之後,就會開始做作品集,這時候會發現從書上、文章理解的知識沒有辦法直接應用在作品上,又會需要一些轉換或調整,於是我又花費一段時間將知識與實際開發做結合並做出作品集。

作品集小提醒

而在做作品集的時候,有些點是我現在細想並沒有處理但我該處理好的事情,像是做作品時最好每到一個階段就寫文章總結,幫助你總結知識以外也將你的開發做一個檢討(這很重要),並且文章有脈絡或是連貫性是非常重要的(詳情可參考前輩轉職文範例),會比較讓看你文章的人能理解你的程度。
並且在Coding的時候,盡可能的遵循MVC、MVVM之類的開發模式(重要),並且也盡可能運用Design Pattern去Coding,對於之後非常有幫助。

求職

完成作品集之後,就開始轉職!轉職時對於基礎的知識是很重要的,TableView、CollectionView、ScrollView必須非常熟悉、Call API的方式也盡可能熟悉是最好的,若能運用URLSession、URLComponents等不同方式去時做你的Code會更好,因為可以讓面試的公司知道你對於Swift的理解有多廣,若對於新創有興趣可以多學一些SwiftUI、目標是老牌公司的話可以多理解一下Objective-C。

而我在投遞約10多間履歷後,很剛好的碰上一間我是忠實用戶也在創業展上遇過並且我下一款開發的APP也跟他們APP有一定程度的相關的新創公司開出職缺徵求IOS Developer,面試後就開始我的試用期啦~

適用期心得

進新公司之後其實壓力還蠻大的,一方式是因為過去都以UIKit、MVC模式開發,而轉職後一開始就要以SwiftUI+UIKit以MVVM的模式進行開發,在適用期的第一個月裡就花費很多時間在惡補SwiftUI以及MVVM的概念以及實際開發方式(這就是為什麼我上面一直說很重要)。
開始有初步理解並開始工作後,依然會被資深工程師叮!為什麼呢?因為在轉寫過程中需要遵循一定的Code Style、或者是開發規則(Design Pattern),這時候就會發現,若是過去開發時沒有遵從開發規則或是對於架構上理解不夠,你寫的Code會瘋狂被打槍,因為寫的位置不對、方式不對、概念不對都會需要你重寫(不可以留技術債QQ),因此對於一個轉職工程師來說能越早練習到這些事情是越好的。

而或許是因為我待的是新創,挺講求開發速度的,因此過去自學期間若沒有大量嘗試自我解決問題或是自學,就很容易在這個階段卡住(因為你根本來不及學或者是根本搞不懂)並且就放棄,所以在過去Coding的時候大量思考自學、理解概念或是查詢Stackflow也是非常重要的!

回歸正題

因為這是一篇轉職+推薦文,因此要說明一下Peter大的課程非常適合有興趣自學、轉職的人,因為這堂課程可以帶來的是足夠的基礎知識量,讓你可以透過這些知識去慢慢Update你的知識直到轉職成為工程師。而既然想轉職工程師不妨就從彼得潘課程入門!

心得

最後想來說說一些轉職心得。
轉職後,我依然覺得轉職其實不是最難的,最難的是過程中如何克服自我懷疑持續堅持下去,我認為轉職工程師的過程中,你的邏輯、知識會不斷的被訓練並強化,因此無論過去是什麼身份都是可以轉職成功工程師的,只是如何堅持到成功為止。

過去陷入自我懷疑的時候,總會看看前輩們的轉職成功文幫自己打打氣!現在我做到了,也希望這篇文章能鼓勵看到這邊的你!

--

--