唐巧訪談:iOS大V的技術進階之路

>>>  創業先鋒 眾人拾柴火焰高  >>> 簡體     傳統


如果你有志于將iOS開發作為職業,或者已經是一位iOS開發者,那么你應該聽說過唐巧的名字。唐巧,2012年從網易有道離開參與創業, 目前是猿題庫iOS高級研發工程師。難得的是,他本身是一線的iOS開發者,同時又對iOS開發在國內的布道做了不少的工作,身影活躍于博客、微博、微信公眾賬號等地。從2011年以來,唐巧開始在博客分享自己寫的iOS開發技術文章,CocoaChina 也曾多次轉載過他的博客文章,后來他成為InfoQ兼職編輯,除了發表技術文章之外,還負責整理《iOS移動開發周報》,至今已有35期,他的微博和微信公眾賬號粉絲都超過1萬,可以說是iOS開發領域的“大V”。


最近,經過一年的辛苦編寫,他的新書《iOS開發進階》已經和大家見面,下面就讓我們來和他聊聊這本新書,以及他對于技術學習、建設技術影響力等方面的經驗和看法。

受訪者:唐巧。猿題庫iOS高級研發工程師,《iOS開發進階》作者。


CocoaChina:感謝您能和大家分享自己的寶貴經驗。能否介紹一下您現在的工作和生活情況?

唐巧:大家好,非常高興能和大家分享一些我的想法。我喜歡寫作與分享,長期維護著自己的技術博客 、技術微博 @唐巧_boy 以及微信公共帳號iOSDevTips。我的技術文章也多次發表在 InfoQ 網站和《程序員》雜志上。


工作方面:我從 2012 年 5 月從網易離職加入猿題庫創業,經過 2 年多發展,猿題庫現在已經是一家到 C 輪融資的,估值 1.25 億美元的公司。我有幸見證了猿題庫從幾個人發展到現在近百人的過程。我一直在猿題庫負責 iOS 端的開發工作,最近主要在參與 “小猿搜題” 這個新項目。


生活方面:雖然不服老,但今年我已經年滿 30 歲了,一些 iOS 圈子里的晚輩甚至叫我巧叔。平時創業能有的空余時間不多,周末一般寫寫博客,陪陪家人。


CocoaChina:能否分享一下您在 iOS 開發方面的學習方法?

唐巧:我之前寫過一篇《iOS 開發如何提高》的文章,簡單總結來說,就是多讀、多寫、多思考、多討論。多讀主要包括:閱讀博客、圖書、WWDC 視頻、官方文檔、開源項目。多寫就沒什么好說了,沒有寫過幾十萬行代碼是不能算熟悉一門語言的。多思考和討論這個需要個人主動一些,遇到問題喜歡多問為什么,在多次重構和思考的過程中,我們就會慢慢積累出一類問題的 “最佳實踐” 方式,成為自己寶貴的經驗。


我個人也是比較信奉1萬小時理論的,所以我會拿晚上和周末的時間去學習積累 iOS 開發技術,這可能也是為什么我會成長得比較快的原因。


CocoaChina: iOS 開發技術的更新換代特別快,而且在更新過程中會有一些坑,您對此有什么看法?

唐巧:移動開發真正火起來其實就是最近這三年,iOS 開發技術因為發展也就才這么幾年,所以值得做的事情還有很多,這就造成了每年蘋果的 WWDC 都會推出一堆新的特性和 API。整體上來說,這對業界是好事情。在技術更新過程中產生一些坑,是在所難免的事情。所以希望大家都能用一個比較平和的心態去搞定這些坑。


CocoaChina: 您對現在的 Swift 有什么看法?

唐巧:有一點不容懷疑:Swift 最終肯定會替代 Objective-C,成為主要的 iOS 開發語言。單從語言特性上來看,Swift 吸收了眾多現代編程語言的優秀特性,例如類型推斷(Type inference)、范型(Generic)、閉包(Closure)、命名空間(namespace),元組(tuple)等,整體語法上也更加簡潔。所有 iOS 開發者都應該花時間學習這門全新的語言。


但是,客觀地說,Swift 當前的生態環境還不夠成熟,這包括第三方開源庫,文檔和教程,甚至是蘋果自己的編譯器。我前不久才和一些同行們聊過這個話題,朋友曬出了 Github 上整理出來的會造成 Swift 編譯 Crash 的列表 ,從上面可以看出,Swift 語言本身還有較長的路要走。


用 Swift 來完成 App 還有一個不大不小的問題就是體積會比較大,因為 Swift 相關的庫會直接打包進 App 中。我們曾經拿猿題庫的 App 測試過,采用 Swift 和Objective-C 混合編寫的方案后,應用體積會增加 10M,這對于公司來說還是比較大的困擾。我個人對于 Swift 的預期是:在 1、2 年內能夠全面替代 Objective-C。但在近期,我個人還是會使用 Objective-C 來完成公司的項目。

CocoaChina:您最近出了新書《iOS 開發進階》,能否給我們介紹一下這本書,您認為這本書最大的亮點或者說價值在哪里?

唐巧:我寫這本書主要的原因是:國內沒有一本原創的 iOS 進階方面的圖書出現,所以我想嘗試著寫一本這樣的書。


《iOS 開發進階》分工具、實踐、理論三大部分:第一部分介紹 iOS 開發的常用工具、第二部分介紹 iOS 開發中的一些常見的實踐經驗、第三部分介紹 iOS 開發中涉及的原理。如果把成為 iOS 開發高手比作武林小說中的高手修煉的話,工具、實踐和理論的學習就分別對應兵器,招式和內功的修煉。此書希望通過這三方面的綜合講解,以全面提高開發者的技能水平。


我感覺本書最大的價值就是填補了 iOS 進階一類圖書的空白吧,我敢保證書中的 90% 內容在其它 iOS 開發的圖書中找不到。這里有該書詳細的目錄 。


CocoaChina:請問作為一線開發者,編寫這樣的技術書籍是什么樣的體驗?有哪些經驗可以對有志于出書的開發者分享的?

唐巧:簡單來說就是一個字:累!我大概花費了一年時間來完成這本書。如果是為了掙錢的話,應該有很多方式比寫書性價比高。加上我自己還在創業,所以基本上只有周末的時間可以用了。


我具體在做的時候是嘗試用 scrum 的方式來安排自己周末的時間。簡單來說就是把書稿的內容進行拆分,然后對于細分到每一個章節的內容進行估分。接著我的每一個周末的目標就是把當周安排的章節寫作完成。


當然,人都是需要休息的。所以周末兩天我通常不會安排滿。我會安排一整天用來寫作,而另外一天做小量的修改和休息。如果有加班,就暫停寫作。


我感覺寫作的體驗和跑馬拉松類似,前期的起跑和最后的沖刺都比較激動,但是中途長達一年的寫作過程卻是孤獨,枯燥和寂寞的。這個時候,需要自己的堅持和自我鼓勵。


CocoaChina:從您自身的經驗出發,您認為iOS 開發者應該如何自我提升?

唐巧:對于技術實力的提升,我比較推薦最近 tinyfool 寫了一篇文章,叫《不要輕易在簡歷上寫我熱愛編程,我熱愛學習》。我覺得你提的這個問題的根本還是在于:iOS 開發者到底熱不熱愛編程。在我看來,任何一件事情,如果你做到了熱愛它,把它當作樂趣,那么在同行中做到出類拔萃應該是理所當然的。如果不熱愛,我感覺做到會比較難。


對于其它方面,比如管理及其它軟能力的提升,我其實也沒有很多經驗。如果從我自己的經驗出發,我自認為多寫作對于提高表達溝通能力是有幫助的。


CocoaChina:您的博客有很多精品技術文章,還有人專門將它們總結梳理,請問如何寫出一篇好的技術分享文章?

唐巧:我首先想分享一個事實,就是我高考的時候語文只有 92 分(滿分 150 分)。所以說其實技術文章真的不難寫,很多時候,你只需要把一個技術細節的前因后果,用客觀的語言陳述出來就可以了。


那為什么很多人寫不好技術文章呢?我覺得還是比較懶的原因。因為要寫好一篇技術文章,為了講清楚,需要非常仔細地介紹知識的前因后果,做各種鋪墊,還需要做到有條理,表達清晰。這些如果要做好,配圖、舉例子、提供參考資料等工作是免不了的。我常常為了寫一篇文章,花費周末一整天的時間,來回修改和查證資料。


另外我認為寫作是可以訓練的,所以平時如果堅持多寫的話,慢慢得文字就變得更有條理,在溝通的時候也會更加注意表達,這對于自我表達能力的提高是非常好的方式。


CocoaChina: 您的微博和微信公眾賬號都有超過1萬粉絲,算是 iOS 開發這個領域的大V,想請教一下如何建設個人在技術領域的影響力?

唐巧:我能成為 iOS 開發領域的大 V,一方面,其實我個人不停地在分享 iOS 開發技術。也在有意識地經營微博和微信,你仔細觀察就可以發現,我在微博上只討論iOS 技術問題。多分享、專注于一個領域,自然會有志趣相投的人來關注你。另一方面的原因是,移動開發最近幾年才興起,我有幸成為最早一批做這個事情的人,當時這個領域堅持寫作的人很少,所以我的博客文章內容相對來說更容易被大家閱讀到,這就增加了我個人的知名度。


另外,建立個人技術影響力是一個長期持續的過程,需要不停地分享,而短期收益比較少,所以很多同行做不到。我堅持做到了,所以就比較成功。


以上就是本次訪談的全部內容,感謝唐巧老師的分享。


本文屬于CocoaChina開發者訪談的系列文章,本系列訪談意在尋找資深的一線iOS開發者、布道者、開源項目的參與者,來和大家交流經驗和想法,歡迎大家自薦或推薦,聯系郵箱:support@cocoachina.com



CocoaChina 2015-08-23 08:44:05

[新一篇] 工具型產品需要運營嗎?

[舊一篇] 旋風工作室王衛明:浮躁,中小團隊的末日征兆
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表