中國開源人訪談系列之:李立杭
開源社區的工作涉及方方面面:測試、撰稿、翻譯、測試、美工、宣傳及開發等,不一而足。作為一個自由、開放的生態,開源正在讓這個世界變得更加豐富多彩。Linux Story 從今天開始將推出一系列中國國內開源人的訪談文章,這一群國內最活躍最重要最嫻熟、也最大咖的開源人,將為你講述他們自己的故事,為普通開源社區的參與者和還未參與進來的新手介紹純粹的開源精神與第一手的開源人理念。同時也非常歡迎大家留言或者在微博上跟我們交流,聊聊你關於開源的想法與經歷。
1. 能否先介紹一下你自己(技術背景、工作經歷、學習經歷)以及你的個人愛好?
我本科畢業於華中科技大學機械學院,由於對計算機和編程有著強烈的興趣,研究生轉到了計算機學院。技術方面最開始接觸過一段時間嵌入式開發,DSP,嵌入式Linux之類的,後來也做過一年機器人比賽,基於實時系統開發機器人的控制程序。讀研之後,實驗室的方向是計算機視覺,做的主要工作偏研究和演算法層面。
目前還未正式入職,不過有兩段實習經歷,分別是在Oracle北京研發中心(前Sun工程研究院)以及阿里雲的飛天部門,這些經歷對我個人的幫助很大,使我了解到了工作大概是個什麼樣子,對技能的要求以及初步認識到如何跟同事合作,與上級相處等。在這裡,也要特別感謝實習時帶我的mentor們,真的教給我很多東西!
學習經歷的話,自學比較多一點,也是沒有辦法,本科的專業跟計算機差的太遠了,只好自己多看書,多向他人請教。中間走了很多彎路,現在也是比較菜的水平吧,不過讓人欣慰的是,目前掌握了一些學習的要領和技巧,也培養起來了自學的習慣和興趣。
個人比較喜歡運動,平常打籃球多一些,也玩過一點輪滑,其餘時間可能就是喜歡看書,coding多一些:-) 對旅遊也十分嚮往,總是想趁著年輕多跑跑看看:-)
2. 你在社區中扮演什麼角色 / 參與哪些開源項目的開發?
說實話自己真正參與社區的時間不算長,雖然從本科一年級就接觸到了Linux(從Ubuntu8.10的一本官方指導書開始的),從此開始對開源著迷,但當時僅限於使用一些開源的東西,崇尚開源精神,期待自己也能對開源事業做出貢獻。真正開始接觸開源社區,是讀研之後加入了中科院開源軟體協會(www.opencas.org),從此開始走上了社區之路。在這裡要特別感謝當時的會長,李智華,是他把我們真正領進了開源的殿堂!一開始是作為參與者,對大大小小的開源社區活動都十分感興趣(各種發行版的Release Party,BLUG的聚會等),之後在開源協會慢慢開始幫忙組織一些活動,直到研二開始擔負起了開源協會會長的職責。在擔任會長的一年期間,組織協助開展了不少開源活動(UbuntuKylin發布會,軟體自由日,PyCon 2013,哲思社區RMS之行等)。
因此在社區中,個人更多是作為參與者,同時也作為某些活動的協助組織者,為開源社區的建設出一份微薄之力。
開源項目方面,目前沒有長期跟進的項目,參與過的比較有代表性的項目有KGTP(CSDN開源夏令營)和JdeRobot(GSoC 2015)。
3. 最初接觸開源是什麼時候? 是什麼讓你與開源結緣?
最初接觸開源是在大一的時候,當時在ACM集訓隊,看到一些學長的桌面系統十分怪異(相比於Windows),關鍵是操作起來看起來非常酷,很有點黑客的感覺。借這個機會認識了Ubuntu 8.10,並了解到了開源的世界。後來Ubuntu的各個版本自己都在用,還有機會承辦了UbuntuKylin的首次發布會。因此可以說,是Ubuntu和其它的Linux發行版讓我和開源結緣,在這裡向為發行版辛勤工作的人們致敬!
4. 你的收入來源是什麼?平時花多少精力在開源項目上,如何平衡工作與開源項目?
目前還是窮學生一個,就讀於中國科學院自動化研究所,基本生活依靠所里發的補助。實驗室的課題壓力還是比較大的,因此參加開源項目的時間就比較有限了,不過計算機視覺領域的開源項目多如牛毛(大名鼎鼎的OpenCV和PCL都是開源項目的典範),且開發環境目前一般都是Linux,所以在做實驗室工作的同時,也會偶爾給一些開源的計算機視覺工具提交一些小的補丁。綜合來看,開源作為一個興趣愛好,在工作之餘會比較積極地參與。現在很多開源項目都有很好的商業運作了(比如OpenStack和Docker),這些項目的開發者很多都是全職參與的,當然這本身跟開源精神不違背,我反倒覺得這種方式很好,可以一定程度上保障開源產品的質量。我非常佩服那些利用工作之餘的時間開發出高質量開源軟體的人,以後有機會了自己極有可能也會在這方面做一些嘗試和努力。
5. 你是如何參與進開源項目的?
能夠比較積極地參與開源項目的人,我覺得基本都是對項目本身充滿興趣的人,否則他不會無償參與,即使參與了,沒有興趣的驅動也很難長久。我個人比較喜歡編程和軟體開發,也十分崇尚自由軟體和開源的精神,因此選擇自己感興趣的技術方向和社區,並參與進去,是一件非常自然的事情。
我個人是從GSoC 2013開始嘗試參與開源項目的,當時借著申請的機會,看了很多開源項目的主頁和wiki,了解了他們的項目定位、社區文化和開發流程等。雖然最後沒能成功申請,但是在這個過程中,個人感覺GitHub和git越來越親切了,也發現了參與開源項目的樂趣所在。之後在GitHub上發布了自己的一些小作品(其實基本都是自己寫的玩具,不具有太高的實用價值,但自己覺得很開心,很有成就感),在實驗室工作中用到一些開源工具並發現bug後,基本都會提交一些補丁(時間不允許或者不知道如何解決就只能提issue了)。後來參與了首屆CSDN開源夏令營,在這裡要特別感謝朱輝老師,給了我參與 KGTP 項目的機會。再到現在,借著之前的經驗教訓,成功申請了GSoC 2015,參與了JdeRobot 項目。
總結來說,開源社區有很多的事情可以做,設計,開發,測試,文檔都需要人。我個人的體會是,挑選一些自己真正感興趣的項目,最好是一些有挑戰性的,這樣的參與會讓你非常有代入感,能夠和核心的開發者充分地交流,在為開源項目做貢獻的同時,對自己也是一次非常好的歷練。
6. 是否在學習及開發的過程中遇到瓶頸,又是如何克服的?
每個人都會遇到瓶頸,只是瓶頸也分高低。我最不適應的地方也許還是從機械專業到計算機專業的轉變,在最開始做開發的時候,總感覺自己基礎知識薄弱,雖然知道很多概念,但是知識非常凌亂,不成體系。這就導致,很多時候你coding的時候是知其然卻不知其所以然,有點囫圇吞棗的感覺。
為了克服這個問題,只能看書自學,本來試圖把計算機系的課程自己過一遍,但感覺不太現實,所以就重點讀了一些經典書目,數據結構,演算法導論,操作系統,計算機網路相關的。隨著看書越來越多,也掌握了一些學習的技巧,目前開發就覺得沒有那麼不知從何下手了,基本上按著認識問題,分析問題,解決問題的思路都能夠慢慢走下來。
7. 在協作開發過程中你覺得好玩的是什麼(嘴仗,愚蠢的代碼提交,成就感)?
根據現階段認知的回答,溝通+成就感!
8. 你對想進入開源項目的新手有什麼建議?
自己多探索,從自己最感興趣的項目入手,一定要勇敢提問,勇敢寫郵件,勇敢提bug,勇敢提patch!尤其是很多開源項目都是國外開發者主導的,這時候更是要自信,不要讓英文成為障礙,哪怕再簡單的問題,也可以大膽問出來。Don』t be shy, just try!
心態上調整好之後,還要學習一些開源社區的基本禮儀,比如ESR的「提問的智慧」(www.catb.org/esr/faqs/smart-questions.html),熟悉一些基本的開發工具和流程等。
總結來講的話,就是熱情+正確的方法,最後一點就是,如果你有參與開源項目的想法,不要猶豫,即刻就開始吧!
9. 你是如何規劃今後的學習及開發的?
馬上要走上工作崗位了,未來雖然有很多未知的因素,但學習是永恆的,只要自己還保有對技術的熱情,會持續不斷地追求更高的境界。
目前深知自身實力尚淺,對未來的規劃可以從三個角度來說,第一是繼續學習計算機基礎(操作系統,編譯原理,計算機網路,要知其所以然);第二是結合工作的具體內容,針對性地學習一些技能,提高自己分析問題,解決問題的能力;第三是準備在某一個專業方向上長時間積累,看看有沒有一些創業的機會。
10. 你最喜愛的發行版以及開發工具是什麼?你的系統上一般運行哪些常用程序?
一開始喜歡折騰,恨不得一台電腦同時裝5個發行版,隨著時間推移,閱歷增長,現在越來越發現解決問題才是王道。所以現在使用Ubuntu多一些(軟體包比較齊全,社區龐大,你遇到的問題很多時候已經被別人提出來並解決了),基本開發工具就是Vim,GCC,CMake這些吧,編程語言使用C++多一點,Python偶爾也會用。不管是Ubuntu還是MacOS,系統上一般運行兩個必不可少的程序:瀏覽器+Terminal。
11. 如何看待大陸對開源社區索取大於回饋的說法?
有這種說法,必然有其背後的理由。我個人覺得對於這個問題的爭論本身不重要,關鍵是要認清楚大陸開源社區的現狀,找到存在的一些不太合理的地方,然後各位開源人士一起努力,把大陸的開源社區建設好。開源本身就是為了造福大家,在不違背開源精神和基本規則的前提下,我想也不必太在意索取和回饋孰重孰輕。就像世界經濟一樣,每個地區都是不一樣的,發達地區和欠發達地區的情況差異很大。再回到開源社區,不可否認的是,大陸開源事業還有不少可以提高和改進的地方。不過我們也需要看到一個事實,目前很多核心的開源項目(Linux Kernel,Hadoop等)都有不少中國開發者參與其中,而且國內的各大開源社區也都在積極地組織一些活動,這無疑都是在為世界開源事業做貢獻。因此,開源無國界,個人覺得不必太拘泥於索取和回饋的討論,開源精神和理念的傳播,開源技術的分享,最終讓開源更多地深入人心才是所有開源人士應該共同關注並為之一起奮鬥的!
12. 作為高校開源社區資深成員,組織中科院開源協會的過程中讓你收穫最大的是什麼?
實在不敢當,個人在開源方面也是初入茅廬,在組織開源協會活動的過程中,有幸結識一批開源愛好者,大家一起分享開源技術,探討和傳播開源理念,是一件讓人很振奮的事情!論收穫的話,我想第一個是結識了一批志同道合的朋友,第二個就是通過開源活動大大拓展了自己的視野!
13. 你認為一直以來大陸的 Linux 發行版最欠缺的一點是什麼?
個人對大陸的Linux發行版沒有做過太深入的研究,因此也不敢妄自指出什麼缺點。這裡談一點願景吧,不僅要做出有中國味的Linux發行版,更希望大陸的Linux發行版能在原創技術上下更多功夫(比如開發一套新的高效易用的桌面環境)。
14. 一句話說明你對開源是真愛。
是不是真愛不好說,但我對開源是熱愛的!
15. 近來你最看好的開源項目是什麼?
個人對計算機視覺,雲計算,機器人比較關注,覺得OpenCV,PCL,ROS,Docker都是非常有前景的開源項目。
16. 在哪裡可以找到你(線下沙龍、會議、郵件列表、GitHub、常用SNS)?
GitHub:https://github.com/hustcalm
Website: http://hustcalm.me