3
朱凱,筆名扔物線,F(xiàn)lipboard中國區(qū)Android程序員,F(xiàn)lipboard在全球有1億下載量;MaterialEditText(的作者,star數(shù)量近1200;android-cn開源項目源碼分析項目參與者,主要負(fù)責(zé)Square的依賴注入庫Dagger的分析。
在轉(zhuǎn)向Android開發(fā)之前朱凱是一個JAVA開發(fā),當(dāng)時他的工作內(nèi)容與移動領(lǐng)域的應(yīng)用開發(fā)交集并不多。但現(xiàn)在他是Flipboard的程序員,同時也是開源社區(qū)的貢獻(xiàn)者。在由北京GDG(谷歌中國開發(fā)者論壇)組織的Devfest2015活動上,朱凱講述了自己是如何轉(zhuǎn)向Android程序員,加入開源社區(qū),并一步步進(jìn)入Flipboard的故事。
轉(zhuǎn)向Android走了不少彎路
在2012年2月的時候,朱凱做了一個決定,可能對它今后數(shù)年甚至十幾年的時間里,都會產(chǎn)生深刻影響。辭去了JAVA開發(fā)程序員的他,開始對Android這個新興的平臺產(chǎn)生了興趣。但那個時候的Android還遠(yuǎn)遠(yuǎn)不健全,靠什么去學(xué)習(xí)和了解?朱凱的做法是看視頻。
看視頻是一種很好的學(xué)習(xí)方式,每一項都能掩飾的清清楚楚,比文字要生動有趣的多了。但朱凱在后來的時候卻認(rèn)為當(dāng)時實在是有點「圖樣圖森破」,因為他看的是經(jīng)過翻譯的「二手視頻」。內(nèi)容的靠譜程度依賴于視頻作者M(jìn)ars對于Android的理解和講解水平。
但是通過Mars的視頻初次看懂 Activity 的生命周期印象的時候朱凱還是異常的興奮,那是他在 Android 開發(fā)學(xué)到的第一個知識,雖然現(xiàn)在那點知識其實很淺,甚至已經(jīng)不在他給別人做技術(shù)面試的范圍了。當(dāng)時從 Java 轉(zhuǎn) Android,周圍沒有任何做 Android 的人,只有自學(xué),因此第一次看懂一樣 Android 開發(fā)的知識,讓他信心倍增。
5月份的時候,第一個小軟件做出來了,雖然算是一個自娛自樂的東西,但畢竟是自己含辛茹苦三個月,一邊學(xué)習(xí)一邊開發(fā)的成果,就像是父母面對剛出生的小寶寶,朱凱還是非常興奮的。父母喜歡曬娃,程序員自然也要把寫出來的程序給朋友來測試,聽取他們的反饋來改進(jìn)。
但這畢竟是朱凱第一個Android程序,需要改進(jìn)的地方很多,他也修修補(bǔ)補(bǔ)調(diào)整了很久,到后來甚至都是無關(guān)緊要的細(xì)節(jié),比如按鈕的位置要移動幾個像素。朱凱也說當(dāng)時在這個軟件上耽誤了不少時間,卻一直沒有更大得進(jìn)步。。
在學(xué)校尚且很難全新全意的學(xué)習(xí),何況是走出學(xué)校之后呢。朱凱雖然愛玩手機(jī),但手機(jī)開發(fā)對于他完全是個陌生的領(lǐng)域,再學(xué)習(xí)的辛苦不說,短時間內(nèi)無法找到工作也讓朱凱猶豫不決。
后來朱凱說,在知乎上看到過一個問題,是說愛上一個人是怎樣一種感覺。下面有一條回答特別觸動他,「好像突然就有了軟肋,也突然有了鎧甲」,他說老婆就是他的鎧甲。
朱凱的堅持終于讓他走上了Android開發(fā)的求職路。
工作上的挑戰(zhàn)和提升是一體兩面
然而朱凱的求職之路并不順利,2013年的北京也還沒有對創(chuàng)業(yè)執(zhí)著到近乎病態(tài)的程度,「大眾創(chuàng)業(yè),萬眾創(chuàng)新」的口號也還不曾出現(xiàn)。但對于朱凱來說,那是一段四處碰壁的艱難歲月。在風(fēng)浪中搖擺的朱凱最后找了一家小公司作為自己的港灣。
入職之后的朱凱一下子變的忙碌了起來,產(chǎn)品總會提出越來越多的需求,他不會去管開發(fā)怎么實現(xiàn),只要最后的效果。這對于朱凱的技術(shù)水平來說是一個不小的挑戰(zhàn)。但從另一方面來講,這也逼迫了他去盡力快速提高自己。朱凱自己也承認(rèn)這是繼開始學(xué)習(xí)Android開來以來,技術(shù)提升的第二個高峰。
13 年剛加入公司時,朱凱的第一件任務(wù)是提高側(cè)滑菜單的性能。那時候這個效果還沒有谷歌的官方控件,都是由開發(fā)者來實現(xiàn)的。對于當(dāng)時的他來說,這種效果太復(fù)雜了,而真正幫他解決問題的,是 GitHub 上面的一個開源庫,花了兩天時間才把代碼整合進(jìn)項目里。這是他第一次真正和 GitHub 有接觸,當(dāng)時覺得這種做開源庫的人真是太厲害了
14年底,這家公司倒了,但朱凱水平已經(jīng)足以支撐他選擇更多的公司。朱凱也開始學(xué)習(xí)和寫一些Google推出的Material Design相關(guān)控件的內(nèi)容,隨著對這些東西的理解加深,他開始做一些自定義的控件。當(dāng)時他制作了一個 Material Design 的自定義控件 MaterialEditText ,之后有一個叫 Henri 的人對這個庫很感興趣,還熱情的提了很多建議。一開始他并不知道Henri來自于Flipboard,但兩人在技術(shù)上聊的很開心,最后這個控件得到了Flipboard官方采用,他也因為開發(fā)者朋友的內(nèi)推加入了Flipboard。
進(jìn)入Flipboard之后的朱凱似乎終于苦盡甘來,沒有再遇到過困難的開發(fā)問題。但他覺得有個愛挑毛病的同事是個好事,誰也不傻,犯過的錯誤之后盡量避免,對于提高代碼的細(xì)節(jié)和規(guī)整程度很有幫助。
除了工作上的提升,朱凱說開源社區(qū)對他的幫助意義匪淺。
你看別人的同時別人也在看你
Github上的開源Android項目
14年的時候,Android已經(jīng)在市場上占據(jù)了絕對的優(yōu)勢,在一步步蠶食了大半的手機(jī)份額之后,設(shè)計語言和開發(fā)環(huán)境也在Google的推動下變得越來越好。
這個時候,朱凱開始接觸對他具有深遠(yuǎn)影響的開源社區(qū)。這個時候出現(xiàn)了除他老婆之外對他影響很大另一個人。領(lǐng)他進(jìn)入社區(qū)的那個人叫吳更新,目前在杭州。2014 年的時候,吳更新牽頭和國內(nèi)的一些開發(fā)者做了幾次技術(shù)的分享,朱凱都非常積極去參與其中。從那時起,朱凱的名字開始被人知道,那也是他進(jìn)入社區(qū)的開始。后來他認(rèn)識了更多的開發(fā)者,包括GDG北京的活動負(fù)責(zé)人韓國愷。
開源社區(qū)對于各行各業(yè)的開發(fā)者影響都是巨大的,比如Github作為全球最大的開源代碼庫以及版本控制系統(tǒng),在今年早些時候已經(jīng)宣布用戶數(shù)量突破350萬(碼農(nóng)真多)。上面有無數(shù)的控件、動效、軟件源代碼等等,Android項目也只是其中的滄海一粟。
開源有多大的威力?實際上Android系統(tǒng)就是因為開源才能夠走到今天這一步,成為全球市占率80%的手機(jī)操作系統(tǒng),你說厲不厲害?而Android的底層內(nèi)核來自于Linux,同樣是因為開源才能成就出Ubuntu、Fedora、Debian和Deepin這樣的發(fā)行版。
朱凱說隨著技術(shù)越學(xué)越深,他開始感覺自己會得太少。
「有一件事讓我印象挺深刻的,有一次我的一個開源項目中有個問題解決不了。雖然是個細(xì)節(jié)問題,卻因為一直沒有頭緒而被擱置在了一旁,但很快這個問題就被我的一個貢獻(xiàn)者解決了,而且用的是我完全不了解的知識?!?/p>
作為項目的主人,還沒有協(xié)作者對項目的理解深,這讓朱凱頗有感概。
在朱凱看來,開源社區(qū)的好處主要有兩點,在開發(fā)者社區(qū)里,首先是你能知道別人怎樣工作和提升的,然后把別人好的工作學(xué)習(xí)方法學(xué)過來,這是非常重要的一點,自己摸索可能有對有錯,因為路沒走過。而走別人走過的路就平坦通順的多。開源社區(qū)的特點就在于此,對于開發(fā)者來說,這是個可以無限提取的寶庫。
「而在大家都了解你之后,你就可以在一定程度上省下向別人證明自己的時間,也省下了別人對你進(jìn)行考察的時間,這個對找工作和在公司的內(nèi)部提級都有好處?!怪靹P自己也有得益于這一點。
不過朱凱認(rèn)為社區(qū)并不會直接幫助開發(fā)者提升技術(shù)。不要覺得參加了什么什么大會,加入了哪個大牛云集的微信群,就跟上時代前沿了,就是技術(shù)牛人了。技術(shù)提升還得是悶頭學(xué)習(xí)和研究,朱凱說挺苦逼的,但是值。
環(huán)境在轉(zhuǎn)好,但開發(fā)者還有更多期待
如今的Android開發(fā)世界已經(jīng)廣闊了不少,也出現(xiàn)了很多和朱凱同樣厲害的「大神」們,比如RxJava大神「大頭鬼」,他在RxJava領(lǐng)域做出了巨大的貢獻(xiàn),并且他精準(zhǔn)的教程翻譯更是讓開發(fā)者們津津稱道。甚至很多后續(xù)的翻譯者會把翻譯好的稿子交給他來審核。
在新浪微博仍然卡頓掉幀的時代,qii開發(fā)四次元微博是當(dāng)時難得遵循Holo設(shè)計和控件調(diào)用的第三方客戶端。并且在流暢度上完虐了官方版本,在相當(dāng)一段時間之內(nèi),四次元都是追求簡約,或是Android原教旨主義者的最愛,比如熟知Android Design和Material Design的知乎設(shè)計師Nova DNG,在上學(xué)時就參與過了四次元微博的界面設(shè)計。
「現(xiàn)在國內(nèi) Android 開發(fā)的環(huán)境正在逐漸變好。技術(shù)與經(jīng)驗的分享越來越多,而且在質(zhì)量上也在提高。比起前兩年那種到處都是沒營養(yǎng)的半吊子博客的情況好了很多?!怪靹P覺得現(xiàn)在的情況還是樂觀的。
「對于一個開發(fā)者而言,目前國內(nèi)使用Google的服務(wù)還是有一些困難的,這的確給開發(fā)工作帶來了一定程度上得不便。」雖然對總體情況樂觀,朱凱面對這個問題的時候還是顯得有些無奈。
他希望開發(fā)者的工作環(huán)境能夠更加順暢,讓開發(fā)工作變得更加暢通無阻。這很難,但也是他與大部分程序員一個共同的愿景。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。