我的學經歷背景跟Coding完全無關,但我現在成為了iOS工程師。
一直在版上潛水並看了許多前輩分享的好文,
我想或許有許多人,本身並沒有理工或是程式相關的背景,
但持續在努力學習Coding當中,並期望有天能夠轉換跑道成功。
身為過來人,一直在思考著是否應該寫篇分享文章,
總覺得自己也沒什麼了不起的成就,所以一直沒提筆。
不過直到工作了一段時間後,發現其實自己走了不少冤枉路,
如果能夠歸納一些自己在學習Coding上所使用的方法以及學習的心態,
或許也能幫助同好,也能回饋給一直幫助我的版上。
我的背景非常單純,就是普通台灣的文組學生努力考上國立大學後,
玩了4年再去申請研究所繼續玩,然後在研究所畢業後,
就出來丟履歷找工作,而履歷上能寫的專長只有英文和日文,完完全全的文組學生。
一開始,我學的是PHP。由於PHP的資源非常豐富,
加上找到一本從原理到實際範例都包含的書,
因此很快就能做出一個簡單的網站,並包含會員系統,購物車等等的基本功能。
當我第一次看到成果在我面前展現的時候,那個感動的感覺是不言而喻的,
這樣一個能動的網站也讓我想要學習更多,把網站建的更完善。
當然那時候對於程式運作的基礎並不了解,很多code都是直接複製貼上,
雖然我知道有哪些功能,但是實際上我並不知道細節及原理,
也只能把code貼來貼去,出錯了不知道哪裡出錯,改對了我也不知道哪裡改對,
反正能動就好,但這就是我接觸coding的開始。
網頁程式應該可以算是最容易入門的,雖然聽過有些人覺得網頁不算真正的程式,
但它就是進入門檻最低的,而且可以輕易看到成果,會讓人精神大振。
學習Coding到現在體認最深的是,如果能夠在各個學習階段都取得部分成果,
學習的動力就會越來越強,即使遇到挫折也能盡力去突破。
但如果一直看不到成果,即使一開始有興趣學,但只會感受到一堵巨大的牆在前面,
因此我很慶幸自己一開始接觸的是網頁程式,
因為我馬上就感受到了它的神奇,並也激發了我的動力。
當然在網頁程式學習的過程中,不免俗的就要接觸
包含HTML, CSS, Javascript, jQuery等等,
這些還都不包含框架framework,光是每天學習新東西都快要累死了。
那時正值2013~2014年間吧,我每天就6點準時下班回家寫code,一直寫到半夜,
然後不斷的重複這樣的生活。遇到不懂的或是想了解新的技術,
就去看國外的技術文章或是網站學習,當時是內心覺得未來是行動的世界,
網站現在已經有很多的工程師在寫了,即使我正在學,也無法很快地追上他們,
求職也會受到比較大的挑戰及競爭,因此我決定要做就要找新的去挑戰,
最後選澤了iOS 平台開始深入研究。
一個沒有理工背景,想要馬上跳進去這個坑談何容易,獨學是一件很累的是,
沒有資源及背景和人脈,遇到困難只能上網找或是去找書看,
但是書有些寫得很基本,也不一定寫得很完整,
看書照著做也會遇到明明步驟都一樣,卻完全不會動的結果,
上網路社群問也不一定有人能很好的回答你,請家教我也沒錢。
但是,遇到困難就得想辦法解決,因此我主要用2種方法來加速學習效率
1.上網找國外的教學,包含文章及教學影片
在台灣iOS相關的學習資源真的是非常稀少,相較之下國外的學習資源就非常豐富,
不過也不難想見台灣在最新趨勢及教學往往都是慢別人好幾拍,
因此與其找台灣的書或是教學,還不如直接去找美國的最新教學資源,
還好英文還算是個專長。其中我最推薦Youtube教學影片,
尤其是對初學者來說,文章有時會有漏掉步驟或是書寫不明的狀況,
但如果有影片就可以清楚地照著影片的步驟走,很少會發生出錯的問題,
加上又是完全免費的,如果覺得影片不錯的話也只需要你幫忙註冊或點個讚!
其中我推薦的美國的免費資源如下:
網站:
AppCoda 我想應該不用介紹了,非常完整的iOS學習網站,有許多教學文章,
基本的學習文章都是免費的,也有付費版本
Sweettutos 可以學習一些iOS進階技巧的網站
Youtube頻道:
ArchetApp — Jared Davidson
我看過許多Youtube的iOS教學頻道,但Davidson的是非常淺顯易懂,
而且更新快速,值得推薦,解決了我不少早期接觸iOS開發的問題。
值得一提的是,在國外網路資源學習上,最重要的是更新快,資源豐富,
尤其是行動時代科技變化快,可能1年前的文章,1年後就完全沒有用了,
所以要仔細挑選,並要注意品質,有些網站沒在更新文章,
往往花了時間看完並實作後,發現他的code已經是舊版了,build也build不起來,
那麼之前花的時間也就白費了,如果遇到挫折是非常大的。
2.尋找Coding的同好, 以及積極參加程式相關的社群,包含參加駭客松
除了自己獨學外,學習就是需要與他人的互相幫忙,
除了在社團中可以遇到許多高手外,也能接觸高手們分享的知識,
並且以此延伸,讓自己處在一個無處不是Coding的環境,更能加深自己的動力。
另外因為本身算是外語專長,因此也在PTT的家教版徵英文換程式設計的技能交換。
運氣很好,徵求交換的過程中遇到了一位幫助我非常大的朋友。
這位朋友本身就是很厲害的工程師,業界經驗非常強大,
在跟他交換技能的過程中,不僅只是coding的能力,
他也以業界人士的經驗幫忙分析目前我所缺少的能力,
並提供很多建議給我,讓我有方向可以去補強,
最後在我面試許多公司的過程中,更提供我面試的策略以及可能遇到的問題,
以及分析公司的優劣,非常感謝他的幫忙,如果沒有他,
我想我會走更多的冤枉路,也不會這麼順利的轉職成功。
因為這些方法我學習的速度加快了很多,並也認識很多敬佩的人,
當然此外還有些方法在這邊我沒著墨很多,尤其是當我在走過上面的方法後,
個人充分感覺到沒有程式背景,很多基礎還是非常不足,
所以最後我有去報名坊間的補習班,當然補習班的師資和內容參差不齊,
我去之前也是非常猶豫,加上要被收一筆不算少的費用,
但是因為我先靠自學打下部分基礎,也能撰寫基本的iOS App,
所以趁著某補習班的iOS課程打對折的機會,就去報名了,
主要抱著是去聽聽可能之前自己不知道的部分,如果有聽到就算是賺到。
結果現在看來也幫助我非常多,幫助我補充了不少的基礎知識。
But!如果我沒有透過先前的方法,讓自己先擁有基本的知識,
就直接去補習班聽的話,我一定聽課後沒多久後因為挫折感太深就馬上放棄!
為什麼呢!?因為補習班老師不知道你的學習狀況,只會一昧的講下去,
當遇到問題時也不會幫你解答,加上有些老師也蠻不負責任的,
問的問題他不一定回答(可能他也不一定懂),
如果沒有基礎千萬不要先去補習班,挫折感會非常強烈!
我認為補習班只有對那些先自動自發學習的人才有用,
想靠著補習班一步登天是非常困難的事。
另外我有一個自己幸運的地方,因為自己會一些日文,
所以可以去找日本的iOS相關書籍,原本只是想看看日本人是怎麼學習程式的,
但沒想到發現日本真的是寶庫,在書籍的豐富度以及範例的精緻度上非常厲害!
幫助我非常多,也讓我得以寫了幾個App作品。
但如果沒有先前打下些許基礎,我想還是會看不懂吧。
最後,我在iOS的學習過程中,Objective-C以及Swift都有涉獵,
而又以Swift涉獵更多,
主要原因在於易懂而且許多最新的國外資源也都也Swift教學為主。
但是實際求職以及面試的過程中發現,實際上目前許多專案仍然以Objective-C為主,
加上Swift仍然持續的在改版,語法也有變化的可能,
因此對於許多公司來說,測驗Objective-C的能力仍是必要的,
因此,如果有同好也想以轉職成iOS工程師的話,建議在學習Swift之外,
也需要兼顧Objective-C的能力,而兩者之中只要會一種,另一種的學習也會非常迅速。
小弟在轉職之後,也花了許多時間在Objectivce-C上,
並也在Github有分享一些Objective-C開源專案,
或許可以幫助部分需要回頭來瞭解Objective-C的人,當然寫的不一定很好,
如果有相關問題也可以不吝於給小弟一些建議。
iOS-snippets是網羅大部分iOS開發上所需要的各種功能的程式碼的片段,
畢竟人不可能記憶好到把所有程式碼片段都記下來,如果突然想要某個功能,
卻臨時不想另外找的話,我把我開發中遇到的功能都整理到這裡,
目前只有Objective版本,未來會再加入Swift版本
https://github.com/hayasilin/iOS-snippets
為了持續練習Objective-C,我有做了一個30DaysObjc的開源專案,
顧名思義就是30天,1天1個Objective-C的專案,
這個專案是被之前一個中國人做30DaysSwift所激發,
想說來試試看把他的30個Swift專案都改成用Objective-C來寫看看,
雖然最後30個專案只有一部分一樣,有些我有另外寫新的內容,
如果覺得Swift寫多了,想來看看Objective-C是怎麼寫的話,可以參考這個專案囉。
https://github.com/hayasilin/30DaysObjc
文章有點長,感謝大家的耐心!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 124.29.165.177
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1474278152.A.067.html
... <看更多>
appcoda ptt 在 哎哟搜索-哎哟,不错哦 的推薦與評價