不知不覺,作 iOS 開發也有一年多時間了,算是經歷了從入門到初級的過程,最近也感到些許迷茫,不知道之後的路怎麼走。下週立刻就要加入一家新公司去獨立開發一個項目了,但願接下來這一年能有不錯的收穫,交得出一份拿得出手的成績單。趁這兩天有空,找了些業內前輩們的經驗分享,看看他們怎麼說的,但願本身能靜下心來,一步一個腳印走下去吧!html
「無論完成度如何,我在兩個月後東拼西湊都給他弄出來了。」ios
本身摸索,獨立解決問題,學會舉一反三,觸類旁通git
多讀源碼程序員
**多看國外的 iOS 開發網站和 blog **github
「第一手的開發資料永遠都是英文的,並且以英語爲母語的開發者學起新技術來有自然的優點。」面試
有句話叫技多不壓身,編程原本就是一個更新換代很是快的工做.每一年都有新的技術出現,我認爲要成爲一個出色的程序員只掌握一門語言確定是不行的。數據庫
做爲一個開發者,有一個學習的氛圍跟一個交流圈子特別重要,這是一個個人iOS交流羣:761407670 進羣密碼‘博客’,無論你是小白仍是大牛歡迎入駐 ,分享BAT,阿里面試題、面試經驗,討論技術, 你們一塊兒交流學習成長!編程
- 從開始學習 iOS 開發半年後,就開始獨立負責 iOS 端的開發工做。
從 2013 年 1 月建立「iOS 開發」微信公衆賬號,而後每週堅持更新,如今有超過 3 萬 5 千的訂閱量。設計模式
從 2013 年末開始撰寫《iOS 開發進階》,2014 年末完成。另外我還寫了一年多 「iOS 開發週報」。安全
將公司的網絡庫,Key-Value 存儲庫開源,GitHub 上 Star 數上千。
堅持寫 iOS 技術博客,如今完成了超過 100 篇原創文章,不少發表在 InfoQ 和 《程序員》雜誌上。
入門:斯坦福的 iOS 開發視頻課程
尋找志同道合的朋友,一塊兒交流、討論、分享
提升:
看 WWDC 視頻
作筆記
讀優秀 iOS 博客
寫做
心得:
利用好碎片時間
「在我看來,當你作很差某一件事情時,時間一般是最大的藉口。」
「不止是我的,組織的協做也應該培養習慣。」
「把大目標拆分紅小的階段性目標這一點很重要,它使得總體的時間安排是適當的,不會剛開始過緊或過鬆。另外一方面,很一次完成小任務的知足感,能夠適當讓咱們的大腦產生喜悅,最終使得任務更容易被搞定。」
「總會有一些事情,你不那麼容易找到目標和成就感。」
「在軟件開發書籍中,涉及上帝模式的圖書也有不少,例如《設計模式》和《重構》,可是好的架構都是沒法脫離實際業務的,因此大多數程序員都沒法經過簡單地看書就提升本身的上帝模式的能力,更多的提升方式是工做一段時間,有一些實際體會以後再看書,就可以理解書中的道理。」
農民模式的技巧
提高上帝模式能力
提高農民模式效率
番茄工做法
時間記錄
平時多學習一些最新的 iOS 開發知識,減小知識盲區
專一於本身的精力是否集中,若是以爲太累,就活動一下或者適當休息,不該該強迫本身 Coding
警戒混搭模式
「其實不管是 Objective-C 仍是 Swift,如今的目的都是寫 iOS 和 OSX 的 app,那麼其實對於絕大可能是狀況來講,語言自己並非很是重要,使用語言去和 Cocoa 以及 CocoaTouch 交互纔是咱們平常開發中最經常使用到的技能。Cocoa 的編程思想並無隨着語言的變化發生什麼大改變,因此仍是應該把對於框架的學習放在首位。」
「如今可能在工做中使用 Objective-C 的開發者仍是佔大多數,個人建議是在使用 Objective-C 的時候,也順即可以「想象」一下如何用 Swift 更好地實現一樣的事情。若是不是特別趕進度的話,甚至能夠再用 Swift 真實地實現一遍。由於兩種語言最大的區別就是 Swift 擁有更強的類型檢查和安全性,因此若是可以特別關注這點的話,以後快速切換到新的語言去就不會有什麼問題。」
「能夠儘快開始動手實踐開發一些 app。給本身定一個目標,好比花上幾天時間或者一週的時間用 Swift 作一個能上架的簡單 app 之類的。這個 app 不須要有特別複雜的功能,可能就是一個簡單的天氣查詢提醒,或者是展現附近好吃又便宜的餐飲店面。與簡單地寫個 demo 相比,實際作一個真正的 app 對能力的提高所在的層次是徹底不一樣的,後者須要更多的全局考慮和綜合能力。很多問題只有在實踐中才會遇到,纔會被解決,而對應的能力也才能被提高。因此入門以後進一步提高的最好的路子就是實踐,而後在實踐中再去學習沒有掌握的剩下的東西。
另外要注意的是,由於如今 Swift 還很新,不少東西並無現成的方案或者所謂的最佳實踐。在遇到這樣的狀況時,最好詢問下你身邊的資深 iOS 或者 Objective-C 的開發者。由於 Swift 和 Objective-C 實際上是共通的,不少經驗是能夠參照借鑑的。」
「從我本身的體驗來看,參與開源項目對於程序員來說是一種高效、快速學習成長的方法,不只如此,若是你是一個技術愛好者,參與開源項目你有可能找到本身的興趣、本身的優點等等,進而從事本身喜歡的工做,那種感受真的太爽了。」
「另外參與開源在提高團隊協做能力上有着比較明顯的做用,一個有用的Issue反饋、有效的交流以及熱情的幫助都會讓咱們成長,從而運用到團隊協做中去,那這個收穫可見而知,不但讓你在團隊中突出,還能讓你認識不少大神。」
「另外對於一些工做繁忙的程序員,平時忙於公司的項目,空餘時間經過側面的形式(參與開源),也是提高本身總體能力一個很不錯的方式。」
「參與開源的樂趣就是能把本身的優點或缺陷分享出去,而且會有人欣賞你、糾正你、譴責你。」
「一個成功的開源項目,僅有本身一我的每每是不夠的,經過多人合做的模式,把各自優勢發揮出來,共同去維護一個有價值的、可持續發展的開源項目,最後獲得收穫將遠遠大於付出。」
成長之路:基礎->入門->進階->高級
「我以爲不管學習什麼,「速成」的心態是最要不得的,這隻會讓本身變得浮躁,只知其一;不知其二,整個過程也很難讓本身的元學習能力獲得提高。慢慢來,攻佔一個城後,再去打下一個,這時心態也會平和許多。」
「這個問題問得很好。我工做快有10年了。而iOS職業開發也就剛作滿3年,呵呵。其實我以爲若是你們想往技術方向發展,那麼首先要作的仍是把基礎打好。把基礎打好以後,能應付各類新的編程語言,各類處理器、各類操做系統平臺。因此我建議你們在業餘時間裏把傳統的大學裏所學的科目再鞏固好,好比操做系統、數據結構、數理邏輯、計算機體系結構、彙編語言、C語言、網絡通訊、數據庫。此外,你們也能夠再熟悉一下HTML5相關技術,畢竟iOS所涉及的大多數都是移動互聯網領域,因此有點HTML5知識的話會更好些。若是本身感受C語言學得還不咋樣能夠再鞏固它。C語言就是計算機編程領域裏的數學,是全部類C編程語言的鼻祖語言,並且從TIOBE排名上你們也能看到,它目前一直處於第一位。另外,Objective-C完美無縫地兼容C語言,就從這點上來講,C語言仍然是十分重要的。
C、Objective-C與Swift的關係是:Swift是對Objective-C的封裝,儘管這封裝得改動很大,以致於你確實看不出它仍然是類C 語言;而Objective-C則是對C語言的封裝,在C語言的基礎上又添加了面向對象以及反射動態特性。因此,學好了C對於iOS開發來講很是有幫助。
上述主要是講iOS職業技術開發者如何能進一步提高技術能力。其實歸根結底,就是把基礎打好,而後能夠嘗試去專某一更專業的領域,好比通訊領域、3D圖形領域、圖像識別領域等。由於大凡作iOS的基本都是在應用層上搗鼓,應用層老實說作個一年兩年能基本掌握,再繼續下去對技術提高不大。
有些iOS開發者想要提高本身在公司的地位,我以爲很大程度上取決於本身對所在公司的核心業務的瞭解狀況。對於中小企業,產品設計人員以及策劃不可能把產品描述得很細,有很多地方須要開發者對設計意圖作思惟擴展。若是你對本身公司的企業文化、工做流程、核心業務邏輯都能很好把握的話,就可以作出超出指望的產品,再加上好好處理人際關係,要提高地位也不會是很困難的事情。
固然,我碰到比較多的仍是不少年輕的開發者對將來感到迷茫,不知道從此的路該怎麼走。因此,我認爲對於那些開發者本身先把心沉靜下來,而後把基礎打好,而後思考本身從此的技術走向。畢竟,iOS開發在很長一段時間之內都將是熱門的技術崗位。
要想向更高的職位發展,除了技術以外,我認爲還要有對產品的把控、甚至市場新動向的嗅覺。既然已經在這個行業了就必須學會如何不斷學習,快速應變市場的新熱 點。目前app開發處於快速發展變化的移動互聯網的中心,開發者有機會作出引領潮流甚至改變世界的做品,這些經歷自己就是寶貴的財富,只要打好基礎,作足 準備,抓住機遇,將來的前途必定是光明的。」
11.學習的圈子特別重要!!
做爲一個開發者,有一個學習的氛圍跟一個交流圈子特別重要,這是一個個人iOS交流羣:761407670 進羣密碼‘博客’,無論你是小白仍是大牛歡迎入駐 ,分享BAT,阿里面試題、面試經驗,討論技術, 你們一塊兒交流學習成長!