3
朱凱,筆名扔物線,Flipboard中國區Android程序員,Flipboard在全球有1億下載量;MaterialEditText(的作者,star數量近1200;android-cn開源項目源碼分析項目參與者,主要負責Square的依賴注入庫Dagger的分析。
在轉向Android開發之前朱凱是一個JAVA開發,當時他的工作內容與移動領域的應用開發交集并不多。但現在他是Flipboard的程序員,同時也是開源社區的貢獻者。在由北京GDG(谷歌中國開發者論壇)組織的Devfest2015活動上,朱凱講述了自己是如何轉向Android程序員,加入開源社區,并一步步進入Flipboard的故事。

轉向Android走了不少彎路
在2012年2月的時候,朱凱做了一個決定,可能對它今后數年甚至十幾年的時間里,都會產生深刻影響。辭去了JAVA開發程序員的他,開始對Android這個新興的平臺產生了興趣。但那個時候的Android還遠遠不健全,靠什么去學習和了解?朱凱的做法是看視頻。
看視頻是一種很好的學習方式,每一項都能掩飾的清清楚楚,比文字要生動有趣的多了。但朱凱在后來的時候卻認為當時實在是有點「圖樣圖森破」,因為他看的是經過翻譯的「二手視頻」。內容的靠譜程度依賴于視頻作者Mars對于Android的理解和講解水平。
但是通過Mars的視頻初次看懂 Activity 的生命周期印象的時候朱凱還是異常的興奮,那是他在 Android 開發學到的第一個知識,雖然現在那點知識其實很淺,甚至已經不在他給別人做技術面試的范圍了。當時從 Java 轉 Android,周圍沒有任何做 Android 的人,只有自學,因此第一次看懂一樣 Android 開發的知識,讓他信心倍增。
5月份的時候,第一個小軟件做出來了,雖然算是一個自娛自樂的東西,但畢竟是自己含辛茹苦三個月,一邊學習一邊開發的成果,就像是父母面對剛出生的小寶寶,朱凱還是非常興奮的。父母喜歡曬娃,程序員自然也要把寫出來的程序給朋友來測試,聽取他們的反饋來改進。
但這畢竟是朱凱第一個Android程序,需要改進的地方很多,他也修修補補調整了很久,到后來甚至都是無關緊要的細節,比如按鈕的位置要移動幾個像素。朱凱也說當時在這個軟件上耽誤了不少時間,卻一直沒有更大得進步。。
在學校尚且很難全新全意的學習,何況是走出學校之后呢。朱凱雖然愛玩手機,但手機開發對于他完全是個陌生的領域,再學習的辛苦不說,短時間內無法找到工作也讓朱凱猶豫不決。
后來朱凱說,在知乎上看到過一個問題,是說愛上一個人是怎樣一種感覺。下面有一條回答特別觸動他,「好像突然就有了軟肋,也突然有了鎧甲」,他說老婆就是他的鎧甲。
朱凱的堅持終于讓他走上了Android開發的求職路。
工作上的挑戰和提升是一體兩面

然而朱凱的求職之路并不順利,2013年的北京也還沒有對創業執著到近乎病態的程度,「大眾創業,萬眾創新」的口號也還不曾出現。但對于朱凱來說,那是一段四處碰壁的艱難歲月。在風浪中搖擺的朱凱最后找了一家小公司作為自己的港灣。
入職之后的朱凱一下子變的忙碌了起來,產品總會提出越來越多的需求,他不會去管開發怎么實現,只要最后的效果。這對于朱凱的技術水平來說是一個不小的挑戰。但從另一方面來講,這也逼迫了他去盡力快速提高自己。朱凱自己也承認這是繼開始學習Android開來以來,技術提升的第二個高峰。
13 年剛加入公司時,朱凱的第一件任務是提高側滑菜單的性能。那時候這個效果還沒有谷歌的官方控件,都是由開發者來實現的。對于當時的他來說,這種效果太復雜了,而真正幫他解決問題的,是 GitHub 上面的一個開源庫,花了兩天時間才把代碼整合進項目里。這是他第一次真正和 GitHub 有接觸,當時覺得這種做開源庫的人真是太厲害了
14年底,這家公司倒了,但朱凱水平已經足以支撐他選擇更多的公司。朱凱也開始學習和寫一些Google推出的Material Design相關控件的內容,隨著對這些東西的理解加深,他開始做一些自定義的控件。當時他制作了一個 Material Design 的自定義控件 MaterialEditText ,之后有一個叫 Henri 的人對這個庫很感興趣,還熱情的提了很多建議。一開始他并不知道Henri來自于Flipboard,但兩人在技術上聊的很開心,最后這個控件得到了Flipboard官方采用,他也因為開發者朋友的內推加入了Flipboard。
進入Flipboard之后的朱凱似乎終于苦盡甘來,沒有再遇到過困難的開發問題。但他覺得有個愛挑毛病的同事是個好事,誰也不傻,犯過的錯誤之后盡量避免,對于提高代碼的細節和規整程度很有幫助。
除了工作上的提升,朱凱說開源社區對他的幫助意義匪淺。
你看別人的同時別人也在看你

Github上的開源Android項目
14年的時候,Android已經在市場上占據了絕對的優勢,在一步步蠶食了大半的手機份額之后,設計語言和開發環境也在Google的推動下變得越來越好。
這個時候,朱凱開始接觸對他具有深遠影響的開源社區。這個時候出現了除他老婆之外對他影響很大另一個人。領他進入社區的那個人叫吳更新,目前在杭州。2014 年的時候,吳更新牽頭和國內的一些開發者做了幾次技術的分享,朱凱都非常積極去參與其中。從那時起,朱凱的名字開始被人知道,那也是他進入社區的開始。后來他認識了更多的開發者,包括GDG北京的活動負責人韓國愷。
開源社區對于各行各業的開發者影響都是巨大的,比如Github作為全球最大的開源代碼庫以及版本控制系統,在今年早些時候已經宣布用戶數量突破350萬(碼農真多)。上面有無數的控件、動效、軟件源代碼等等,Android項目也只是其中的滄海一粟。
開源有多大的威力?實際上Android系統就是因為開源才能夠走到今天這一步,成為全球市占率80%的手機操作系統,你說厲不厲害?而Android的底層內核來自于Linux,同樣是因為開源才能成就出Ubuntu、Fedora、Debian和Deepin這樣的發行版。
朱凱說隨著技術越學越深,他開始感覺自己會得太少。
「有一件事讓我印象挺深刻的,有一次我的一個開源項目中有個問題解決不了。雖然是個細節問題,卻因為一直沒有頭緒而被擱置在了一旁,但很快這個問題就被我的一個貢獻者解決了,而且用的是我完全不了解的知識。」
作為項目的主人,還沒有協作者對項目的理解深,這讓朱凱頗有感概。
在朱凱看來,開源社區的好處主要有兩點,在開發者社區里,首先是你能知道別人怎樣工作和提升的,然后把別人好的工作學習方法學過來,這是非常重要的一點,自己摸索可能有對有錯,因為路沒走過。而走別人走過的路就平坦通順的多。開源社區的特點就在于此,對于開發者來說,這是個可以無限提取的寶庫。
「而在大家都了解你之后,你就可以在一定程度上省下向別人證明自己的時間,也省下了別人對你進行考察的時間,這個對找工作和在公司的內部提級都有好處。」朱凱自己也有得益于這一點。
不過朱凱認為社區并不會直接幫助開發者提升技術。不要覺得參加了什么什么大會,加入了哪個大牛云集的微信群,就跟上時代前沿了,就是技術牛人了。技術提升還得是悶頭學習和研究,朱凱說挺苦逼的,但是值。
環境在轉好,但開發者還有更多期待

如今的Android開發世界已經廣闊了不少,也出現了很多和朱凱同樣厲害的「大神」們,比如RxJava大神「大頭鬼」,他在RxJava領域做出了巨大的貢獻,并且他精準的教程翻譯更是讓開發者們津津稱道。甚至很多后續的翻譯者會把翻譯好的稿子交給他來審核。
在新浪微博仍然卡頓掉幀的時代,qii開發四次元微博是當時難得遵循Holo設計和控件調用的第三方客戶端。并且在流暢度上完虐了官方版本,在相當一段時間之內,四次元都是追求簡約,或是Android原教旨主義者的最愛,比如熟知Android Design和Material Design的知乎設計師Nova DNG,在上學時就參與過了四次元微博的界面設計。
「現在國內 Android 開發的環境正在逐漸變好。技術與經驗的分享越來越多,而且在質量上也在提高。比起前兩年那種到處都是沒營養的半吊子博客的情況好了很多。」朱凱覺得現在的情況還是樂觀的。
「對于一個開發者而言,目前國內使用Google的服務還是有一些困難的,這的確給開發工作帶來了一定程度上得不便。」雖然對總體情況樂觀,朱凱面對這個問題的時候還是顯得有些無奈。
他希望開發者的工作環境能夠更加順暢,讓開發工作變得更加暢通無阻。這很難,但也是他與大部分程序員一個共同的愿景。
雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。