許多人在博客和微信上咨詢我iOS開發如何提高,經過一番思考之後,我能想到如下一些提高的辦法,我個人也是通過這些方法來提高的。
在現在這個碎片化閱讀流行的年代,博客的風頭早已被微博蓋過。而我卻堅持寫作博客,並且大量地閱讀同行的iOS開發博客。博客的文章長度通常在3000字左右,許多iOS開發知識都至少需要這樣的篇幅才能完整地講解清楚。並且博客相對於書籍來說,並沒有較長的出版發行時間,所以閱讀博客對於獲取最新的iOS開發知識有著非常良好的效果。
我自己精心整理了國內40多位iOS開發博主的博客地址列表:https://github.com/tangqiaoboy/iOSBlogCN,希望大家都能培養起閱讀博客的習慣。
國外也有很多優秀的iOS開發博客,他們整體質量比中文的博客更高,以下是一些推薦的博客地址列表:
另外,使用博客RSS聚合工具(例如Feedly)可以獲得更好的博客閱讀體驗。手機上也有很多優秀的博客閱讀工具(我使用的是Newsify)。合理地使用這些工具也可以將你在地鐵上、睡覺前等碎片時間充分利用上。
博客的內容通常只能詳細講解一個知識點,而書籍則能成體系地介紹整個知識樹。相比國外,中國的書籍售價相當便宜,所以這其實是一個非常劃算的提高的方式。建議大家每年至少堅持讀完1本高質量的iOS開發書籍。
去年出版的《iOS 7 Programming Pushing the Limits》 以及 《Objective-C高級編程:iOS與OS X多線程和內存管理》 都算是不錯的進階方面的讀物。順便打個廣告,我自己也在寫一本iOS進階方面的圖書,年底前應該能上市。
由於iOS開發在快速發展,每年蘋果都會給我們帶來很多新的知識。而對於這些知識,第一手的資料就是WWDC的視頻。
通常情況下,一個iOS開發的新知識首先會在WWDC上被蘋果公開,然後3個月左右,會有國內外的博客介紹這些知識,再過半年左右,會有國外的圖書介紹這些知識。所以如果想盡早地了解這些知識,那麼只有通過WWDC的視頻。
現在每年的WWDC視頻都會在會議過程中逐步放出,重要的視頻會帶有英文字幕。堅持閱讀這些視頻不但可以獲得最新的iOS開發知識,還可以提高英文聽力水平。
蘋果的官方文檔相當詳盡,對於不熟悉的API,閱讀官方文檔也是最直接有效地方式。
蘋果的文檔比較海量,適合選一些重點來閱讀,比如人機交互指南就是必讀的,而其它的內容可以遇到的時候作為重點資源來查閱。
大家一定有這樣的感受,很多時候用文字講解半天,還不如寫幾行代碼來得直觀。閱讀優秀的開源項目代碼,不但可以學習到iOS開發本身的基本知識,還能學習到設計模式等軟件架構上的知識。
如果讀者能夠參與到開源項目的開發中,則能進一步提高自己的能力。
知識的積累離不開實踐和總結,我認為iOS代碼量如果沒有超過10萬行,是不能稱得上熟悉iOS開發的。某些在校的學生,僅僅做了幾個C++的大作業,就在求職簡歷裡面寫上“精通C++”,則真是讓人哭笑不得。
在多寫代碼的同時,我們也要注意不要”重復造輪子”,盡量保證每次寫的代碼都能具有復用性。在代碼結構因為業務需求需要變更時,及時重構,在不要留下技術債的同時,我們也要多思考如何設計應用架構,能夠保證滿足靈活多變的產品需求。
在多次重構和思考的過程中,我們就會慢慢積累出一類問題的“最佳實踐”方式,成為自己寶貴的經驗。
有些時候遇到一些難解的技術問題,和同行的幾句交流就可能讓你茅塞頓開。。另外常見的技術問題通常都有人以前遇到過,簡單指導幾句就能讓你一下子找到正確的解決方向。
國內開發者之間的交流,可以通過論壇,微博,QQ群等方式來進行。另外各大公司有時候會辦技術沙龍,這也是一個認識同行的好機會。
需要特別提醒的是,和國內開發者之前交流要注意討論質量,有一些論壇和QQ群討論質量相當低下,提的問題都是能通過簡單Google獲得的,這種社區一定要遠離,以提高自己的溝通效率。
除了在國內的技術社區交流,建議讀者可以去國外的stackoverflow:http://www.stackoverflow.com上提問或回答問題。
值得嘗試的分享方式有:發起一個開源項目、寫技術博客、在技術會議上做報告。這幾種方式都比較有挑戰,但是如果能大膽嘗試,肯定會有巨大的收獲。