雖然你有可能在一週內學習到iOS開發的本質,但想要精通iOS開發需則要花費更長的時間。問題是你如何重新手變成專家?在這篇文章中,咱們主要就這個主題給出一些建議
(若是你有好的建議和相關文章歡迎分享給更多開發者)
:
1.練習,練習仍是練習
iOS開發沒有捷徑可走。這是我在繼續這個話題以前須要強調的東西,由於擺脫任何經常浮現於你腦海的幻想很重要。若是你僅僅在星期天的4PM和5PM之間學習/練習編程,那麼你不會成爲一個熟練的iOS開發者。不要誤會個人意思,這麼作可能會頗有趣,可是它很難讓你成爲一個老練的專業的iOS開發者。除了極少數的人,大部分人都須要不斷的練習和實踐。若是你尚未準備好投入大量時間,這時候最好從新審視你的目標和理想。
2.向其餘人學習
提高開發技能和採用最佳實踐的最好策略之一是學習別人的代碼。這不只僅意味着瀏覽
Stack Overflow,但更重要的是其餘開發者的各類開源類庫和代碼片斷。
無論什麼時候你一頭扎進各類類庫的學習,好比
AFNetworking或者
Magical Record,很關鍵的一點是不要被各類代碼淹沒。有可能你不理解各類庫中的代碼,但這不是真正的關鍵,重點是從一個更高的層次來看源碼和儘量多地學習,好比命名規範、最佳實踐以及設計模式等。
除了學習別人的代碼外,建立你本身的類庫是一個最好的學習方法。不久前,我用Core Data做爲數據層開發了一款app,我沒有使用
Magical Record,我決定經過學習Magical Record建立本身的庫,並從新建立了我須要的功能。這種方法不只幫我建立了一個更加靈活的庫,也讓我學習到不少Magical Record內部的工做原理。
3. 不要僅僅複製和粘貼
這一點讓我看到了正確學習方式的另外一個關鍵面:不要不動腦子簡單地複製和粘貼。咱們經常會使用咱們在
Stack Overflow或者
蘋果開發者論壇找到的各類代碼片斷,可是不要爲了偷懶簡單地複製粘貼你從網絡上找到的代碼,這樣你很難完全理解它。最大的危險在於這可能會致使意外的行爲,以至於你的代碼之後都很難調試和修復。
有時候,複製別人的代碼片斷看着可能已經解決了你遇到的問題,可是我強烈建議不要這麼作。閱讀代碼,理解你往代碼庫添加的東西,可能的話定製你須要的解決方案。不用說,這並不適用於開發者積極維護的庫或框架。在項目中使用Magical Record前,若是你須要仔細檢查它,那麼我確信你已經理解了不一樣之處。使用你本身的常識。
4. 模式
Cocoa和Objective-C在不少方面都不一樣於其餘編程語言和環境。這意味着他們有本身獨特的模式和最佳實踐。我確信你已經熟悉了一些常見的模式,好比委託和通知。但還有不少模式能夠開發過程當中幫助你,好比單例模式、觀察者模式以及通用模式等。
Cocoa Fundamentals Guide很好地概述了Cocoa中大部分經常使用模式。
5.瞭解你的工具
6.與時俱進
7.學習其餘語言
我已經注意到學習新語言或者使用新框架讓我對軟件開發的總體理解有了明顯提升。這種方法的優勢在於不會限制你對最熟悉語言的認知和它潛在可能性的理解。我最近在研究
Ember.js,並瞭解到它的建立者
Yehuda Katz和
Tom Dale是從Cocoa得到的靈感。Ember.js對mvc的實現並無遵循JavaScript framework,不過若是你熟悉cocoa的話,就不會感受到奇怪了。
對於軟件開發來講,沒有最好的語言,每種語言都有本身的優點和劣勢。可是好的一面在於或多或少他們都有所不一樣,這使得學習新語言變得更加有趣和更有啓發性。好比對我來講,Ruby在寫DRY (Don’t Repeat Yourself)、易讀的、乾淨的代碼方面讓我大開眼界。
總結
若是你不想花費時間成爲一個更好的程序員,那麼你可能要從新考慮下爲何你把成爲一個程序員擺在首位。但若是你會由於一個能夠幫你的新類庫或者開發工具而興奮,那麼隨着時間的流逝,你在提升自身技能方面可能不會有什麼問題。你真的必須熱愛你所作的事情,並在這面擅長,這一點尤爲適用於編程。無論什麼人告訴你,你不會在一晚上之間成爲一個老練的開發者,但若是你保持不間斷的學習,並細心打磨本身的「手藝」,我想你的技術會有很好的提升