不知不覺绝骚,做 iOS 開發(fā)也有一年多時間了耐版,算是經(jīng)歷了從入門到初級的過程,最近也感到些許迷茫皮壁,不知道以后的路怎么走椭更。下周馬上就要加入一家新公司去獨立開發(fā)一個項目了,希望接下來這一年能有不錯的收獲蛾魄,交得出一份拿得出手的成績單虑瀑。趁這兩天有空,找了些業(yè)內(nèi)前輩們的經(jīng)驗分享滴须,看看他們怎么說的舌狗,希望自己能靜下心來,一步一個腳印走下去吧扔水!
1. iOS開發(fā)如何快速成長?(葉孤城)
- 勇于接受挑戰(zhàn)痛侍,實現(xiàn)有難度的需求
“不管完成度如何,我在兩個月后東拼西湊都給他弄出來了。”
- 可以接觸到新知識
- 鍛煉自學能力
- 借鑒一些優(yōu)秀的作品
- 學習優(yōu)秀的實現(xiàn)方案/第三方庫
自己摸索主届,獨立解決問題赵哲,學會觸類旁通,舉一反三
-
多讀源碼
- 既要“走心”君丁,又要“不求甚解”
- 要看就看經(jīng)典的
- 最好是看和最近的工作相關的
**多看國外的 iOS 開發(fā)網(wǎng)站和 blog **
“第一手的開發(fā)資料永遠都是英文的枫夺,而且以英語為母語的開發(fā)者學起新技術(shù)來有天然的優(yōu)勢』婷疲”
- 學無止境
有句話叫技多不壓身,編程本來就是一個更新?lián)Q代非诚鹋樱快的工作.每年都有新的技術(shù)出現(xiàn),我認為要成為一個出色的程序員只掌握一門語言肯定是不行的。
- 打好基礎
- 研究一個自己感興趣的領域
- 學習一門自己感興趣的語言
2. 成長為 iOS 大 V 的秘密(唐巧)
- 巧哥的成就:
- 從開始學習 iOS 開發(fā)半年后印蔗,就開始獨立負責 iOS 端的開發(fā)工作扒最。
從 2013 年 1 月創(chuàng)建「iOS 開發(fā)」微信公眾帳號,然后每周堅持更新华嘹,現(xiàn)在有超過 3 萬 5 千的訂閱量吧趣。
從 2013 年底開始撰寫《iOS 開發(fā)進階》,2014 年底完成除呵。另外我還寫了一年多 「iOS 開發(fā)周報」再菊。
將公司的網(wǎng)絡庫歇僧,Key-Value 存儲庫開源女轿,GitHub 上 Star 數(shù)上千。
堅持寫 iOS 技術(shù)博客蜜氨,現(xiàn)在完成了超過 100 篇原創(chuàng)文章泛豪,很多發(fā)表在 InfoQ 和 《程序員》雜志上稠诲。
入門:斯坦福的 iOS 開發(fā)視頻課程
尋找志同道合的朋友,一起交流诡曙、討論臀叙、分享
提高:
看 WWDC 視頻
做筆記
讀優(yōu)秀 iOS 博客
寫作
心得:
利用好碎片時間
“在我看來,當你做不好某一件事情時价卤,時間通常是最大的借口劝萤。”
- 提高工作的效率慎璧,使用番茄工作法床嫌,讓自己能夠在短時間內(nèi)集中精力做一件事情
- 寫代碼之前,先在紙上把邏輯寫清楚
- 平衡好時間和代碼質(zhì)量
- 培養(yǎng)習慣
“不止是個人胸私,組織的協(xié)作也應該培養(yǎng)習慣厌处。”
- 設立目標
“把大目標拆分成小的階段性目標這一點很重要岁疼,它使得整體的時間安排是適當?shù)睦妫粫傞_始過緊或過松。另一方面,很一次完成小任務的滿足感瑰排,可以適當讓我們的大腦產(chǎn)生喜悅贯要,最終使得任務更容易被搞定⌒谆铮”
- 尋找成就感
- 適度堅持
“總會有一些事情郭毕,你不那么容易找到目標和成就感『伲”
3. iOS開發(fā)如何提高(唐巧)
- 閱讀高質(zhì)量的博客
- 讀經(jīng)典書籍
- 看 WWDC 視頻
- 看蘋果的官方文檔
- 看優(yōu)秀開源項目的代碼
- 多寫代碼,多思考
- 多和同行交流
- 樂于分享
4. 軟件開發(fā)中的上帝模式與農(nóng)民模式(唐巧)
- 上帝模式的技巧: 寫代碼前扳肛,構(gòu)思好整個應用的架構(gòu)設計傻挂,如何進行類之間的組織和信息的傳遞。
“在軟件開發(fā)書籍中挖息,涉及上帝模式的圖書也有很多金拒,例如《設計模式》和《重構(gòu)》,但是好的架構(gòu)都是無法脫離實際業(yè)務的套腹,所以大多數(shù)程序員都無法通過簡單地看書就提高自己的上帝模式的能力绪抛,更多的提高方式是工作一段時間,有一些實際體會之后再看書电禀,就能夠理解書中的道理幢码。”
-
農(nóng)民模式的技巧
- 效率第一尖飞,保證自己的專注力症副,番茄工作法
- 應該盡量采用「寬度優(yōu)先搜索」的方式來完成任務,而不是「深度優(yōu)先搜索」的方式
- 盡量提升自己的代碼輸入效率
-
提升上帝模式能力
- 多分析一些優(yōu)秀的開源軟件的架構(gòu)
- 閱讀一些相關的書籍政基,如《設計模式》贞铣,《重構(gòu)》,《代碼大全》等
- 重構(gòu)沮明,結(jié)合自身的業(yè)務特點辕坝,多思考多討論,培養(yǎng)出自己對于架構(gòu)的一些心得
提升農(nóng)民模式效率
番茄工作法
時間記錄
平時多學習一些最新的 iOS 開發(fā)知識荐健,減少知識盲區(qū)
專注于自己的精力是否集中酱畅,如果覺得太累,就活動一下或者適當休息摧扇,不應該強迫自己 Coding
警惕混搭模式
5. 王巍訪談:關于Swift學習和AppleWatch開發(fā)的一些建議(CocoaChina)
- 先學習 Objective-C 還是 Swift?
“其實不論是 Objective-C 還是 Swift圣贸,現(xiàn)在的目的都是寫 iOS 和 OSX 的 app,那么其實對于絕大多是情況來說扛稽,語言本身并不是非常重要吁峻,使用語言去和 Cocoa 以及 CocoaTouch 交互才是我們?nèi)粘i_發(fā)中最常用到的技能。Cocoa 的編程思想并沒有隨著語言的變化發(fā)生什么大改變,所以還是應該把對于框架的學習放在首位用含“剑”
- 現(xiàn)在用 Objective-C 寫,怎么為以后學 Swift 做鋪墊呢啄骇?
“現(xiàn)在可能在工作中使用 Objective-C 的開發(fā)者還是占大多數(shù)痴鳄,我的建議是在使用 Objective-C 的時候,也順便可以“想象”一下如何用 Swift 更好地實現(xiàn)同樣的事情缸夹。如果不是特別趕進度的話痪寻,甚至可以再用 Swift 真實地實現(xiàn)一遍。因為兩種語言最大的區(qū)別就是 Swift 擁有更強的類型檢查和安全性虽惭,所以如果能夠特別關注這點的話橡类,之后快速切換到新的語言去就不會有什么問題⊙看剑”
- 對于學習Swift的開發(fā)者顾画,入門以后應該如何進一步提高?
“可以盡快開始動手實踐開發(fā)一些 app匆笤。給自己定一個目標研侣,比如花上幾天時間或者一周的時間用 Swift 做一個能上架的簡單 app 之類的。這個 app 不需要有特別復雜的功能炮捧,可能就是一個簡單的天氣查詢提醒庶诡,或者是展示附近好吃又便宜的餐飲店面。與簡單地寫個 demo 相比寓盗,實際做一個真正的 app 對能力的提升所在的層次是完全不同的灌砖,后者需要更多的全局考慮和綜合能力。不少問題只有在實踐中才會遇到傀蚌,才會被解決基显,而對應的能力也才能被提升。所以入門之后進一步提升的最好的路子就是實踐善炫,然后在實踐中再去學習沒有掌握的剩下的東西撩幽。
另外要注意的是,因為現(xiàn)在 Swift 還很新箩艺,很多東西并沒有現(xiàn)成的方案或者所謂的最佳實踐窜醉。在遇到這樣的情況時,最好詢問下你身邊的資深 iOS 或者 Objective-C 的開發(fā)者艺谆。因為 Swift 和 Objective-C 其實是共通的榨惰,很多經(jīng)驗是可以參照借鑒的【蔡溃”
6. 曾憲華訪談:公司與個人參與iOS開源的心得(CocoaChina)
- 參與開源的感受
“從我自己的體驗來看琅催,參與開源項目對于程序員來講是一種高效居凶、快速學習成長的方法,不僅如此藤抡,如果你是一個技術(shù)愛好者侠碧,參與開源項目你有可能找到自己的興趣、自己的優(yōu)勢等等缠黍,進而從事自己喜歡的工作弄兜,那種感覺真的太爽了〈墒剑”
- 參與開源提升團隊協(xié)作能力
“另外參與開源在提升團隊協(xié)作能力上有著比較明顯的作用替饿,一個有用的Issue反饋、有效的交流以及熱情的幫助都會讓我們成長贸典,從而運用到團隊協(xié)作中去盛垦,那這個收獲可見而知,不但讓你在團隊中突出瓤漏,還能讓你認識很多大神〖瞻#”
- 參與開源可以開闊視野蔬充,提升自身能力
“另外對于一些工作繁忙的程序員,平時忙于公司的項目班利,空余時間通過側(cè)面的形式(參與開源)饥漫,也是提升自己整體能力一個很不錯的方式÷薇辏”
- 參與開源的樂趣
“參與開源的樂趣就是能把自己的優(yōu)勢或缺陷分享出去庸队,并且會有人欣賞你、糾正你闯割、譴責你彻消。”
- 行動起來
“一個成功的開源項目宙拉,僅有自己一個人往往是不夠的宾尚,通過多人合作的模式,把各自優(yōu)點發(fā)揮出來谢澈,共同去維護一個有價值的煌贴、可持續(xù)發(fā)展的開源項目,最后得到收獲將遠遠大于付出锥忿∨V#”
7.Limboy:自學 iOS 開發(fā)的一些經(jīng)驗(蘑菇街Limboy)
成長之路:基礎->入門->進階->高級
- 每個階段都要有相應的目標和學習方式、內(nèi)容
- 英語
- 書籍
- 視頻
- 練習
- 博客敬鬓,網(wǎng)站
- 優(yōu)秀源碼
- 官方文檔淹朋,WWDC
- 工具
“我覺得無論學習什么笙各,「速成」的心態(tài)是最要不得的,這只會讓自己變得浮躁瑞你,一知半解酪惭,整個過程也很難讓自己的元學習能力得到提升。慢慢來者甲,攻占一個城后春感,再去打下一個,這時心態(tài)也會平和許多虏缸■昀粒”
8.Zenny Chen訪談: iOS開發(fā)者應該關注Metal(CocoaChina)
- iOS開發(fā)者應該如何規(guī)劃自己的職業(yè)發(fā)展路線?除了iOS之外刽辙,是否需要學習其他方面的技術(shù)窥岩?
“這個問題問得很好。我工作快有10年了宰缤。而iOS職業(yè)開發(fā)也就剛做滿3年颂翼,呵呵。其實我覺得如果大家想往技術(shù)方向發(fā)展慨灭,那么首先要做的還是把基礎打好朦乏。把基礎打好之后,能應付各種新的編程語言氧骤,各種處理器呻疹、各種操作系統(tǒng)平臺筹陵。所以我建議大家在業(yè)余時間里把傳統(tǒng)的大學里所學的科目再鞏固好刽锤,比如操作系統(tǒng)、數(shù)據(jù)結(jié)構(gòu)朦佩、數(shù)理邏輯并思、計算機體系結(jié)構(gòu)、匯編語言吕粗、C語言纺荧、網(wǎng)絡通信、數(shù)據(jù)庫颅筋。此外宙暇,大家也可以再熟悉一下HTML5相關技術(shù),畢竟iOS所涉及的大多數(shù)都是移動互聯(lián)網(wǎng)領域议泵,所以有點HTML5知識的話會更好些占贫。如果自己感覺C語言學得還不咋樣可以再鞏固它。C語言就是計算機編程領域里的數(shù)學先口,是所有類C編程語言的鼻祖語言型奥,而且從TIOBE排名上大家也能看到瞳收,它目前一直處于第一位。另外厢汹,Objective-C完美無縫地兼容C語言螟深,就從這點上來說,C語言仍然是十分重要的烫葬。
C界弧、Objective-C與Swift的關系是:Swift是對Objective-C的封裝,盡管這封裝得改動很大搭综,以至于你確實看不出它仍然是類C 語言垢箕;而Objective-C則是對C語言的封裝,在C語言的基礎上又添加了面向?qū)ο笠约胺瓷鋭討B(tài)特性兑巾。所以条获,學好了C對于iOS開發(fā)來說非常有幫助。
上述主要是講iOS職業(yè)技術(shù)開發(fā)者如何能進一步提升技術(shù)能力蒋歌。其實歸根結(jié)底帅掘,就是把基礎打好,然后可以嘗試去專某一更專業(yè)的領域堂油,比如通信領域锄开、3D圖形領域、圖像識別領域等称诗。因為大凡做iOS的基本都是在應用層上搗鼓,應用層老實說做個一年兩年能基本掌握头遭,再繼續(xù)下去對技術(shù)提升不大寓免。
有些iOS開發(fā)者想要提升自己在公司的地位,我覺得很大程度上取決于自己對所在公司的核心業(yè)務的了解情況计维。對于中小企業(yè)袜香,產(chǎn)品設計人員以及策劃不可能把產(chǎn)品描述得很細,有不少地方需要開發(fā)者對設計意圖做思維擴展鲫惶。如果你對自己公司的企業(yè)文化蜈首、工作流程、核心業(yè)務邏輯都能很好把握的話欠母,就能夠做出超出期望的產(chǎn)品欢策,再加上好好處理人際關系,要提升地位也不會是很困難的事情赏淌。
當然踩寇,我碰到比較多的還是很多年輕的開發(fā)者對未來感到迷茫,不知道今后的路該怎么走六水。所以俺孙,我認為對于那些開發(fā)者自己先把心沉靜下來辣卒,然后把基礎打好,然后思考自己今后的技術(shù)走向睛榄。畢竟荣茫,iOS開發(fā)在很長一段時間以內(nèi)都將是熱門的技術(shù)崗位。
要想向更高的職位發(fā)展场靴,除了技術(shù)之外啡莉,我認為還要有對產(chǎn)品的把控、甚至市場新動向的嗅覺憎乙。既然已經(jīng)在這個行業(yè)了就必須學會如何不斷學習票罐,快速應變市場的新熱 點。目前app開發(fā)處于快速發(fā)展變化的移動互聯(lián)網(wǎng)的中心泞边,開發(fā)者有機會做出引領潮流甚至改變世界的作品该押,這些經(jīng)歷本身就是寶貴的財富,只要打好基礎阵谚,做足 準備蚕礼,抓住機遇,未來的前途一定是光明的梢什〉斓牛”
9.我的iOS成長之路-3-iOS開發(fā)個人提升(破船之家)
- 飽覽群書:高質(zhì)量,英文書籍嗡午,博文囤躁,WWDC,斯坦福公開課荔睹,github狸演,stackoverflow
- 跟著項目一起成長
- 與同行交流
- 做一些分享