05后開發(fā)者王淳彧:碼齡六年,熱愛開源


你還記得初中的你都在干些什么嗎?
是好好學(xué)習(xí)為考個好高中奮斗著,還是在電腦前和朋友合作打怪,期望能早日提升游戲段位;是正望向窗外籃球場暢想著下課沖到操場揮灑汗水,又或者扯著前桌女孩的頭發(fā),試圖吸引她的注意力......
無論是哪一種,相信大多數(shù)人的初中都還處在懵懂的年紀(jì)。而在 Gitee 有這么一位中考剛結(jié)束的開發(fā)者王淳彧,他在別的同齡人玩樂之際,自學(xué) Python,已經(jīng)擁有六年碼齡,如今愛上開源,不僅為開源社區(qū)做貢獻(xiàn),還開發(fā)了自己的開源項目,成為 Gitee 眾多開發(fā)者中不一樣的存在。
正值暑假,本期 Gitee《封面人物》決定將視角聚焦在這位中學(xué)生的身上,我們好奇小小年紀(jì)的他如何看待「技術(shù)世界」的,又是什么吸引他去參與開源?以下是 Gitee 與他的對話:
源于好奇,不止于好奇
淳彧你好,恭喜中考結(jié)束啦!Gitee 的小伙伴聽見「中考」這個詞,肯定會很驚訝,先請你做個自我介紹吧。
王淳彧:哈咯各位 Gitee 的小伙伴!我是王淳彧,一位 2007 年出生的開發(fā)者,也是一名剛剛結(jié)束中考的準(zhǔn)高中生,同時還是開源團(tuán)隊 WaterFlames 水焰的創(chuàng)建者。
個人主頁:https://gitee.com/epeiusss

目前,我參與的開源項目包括自創(chuàng)的對話機(jī)器人 RingRobotX 項目(被評為 Gitee GVP )、基于 Python3 的一鍵建站系統(tǒng) Wing 項目,以及 Waddle 編輯器。
項目地址:https://gitee.com/waterflames-team/ring-robot-x
你是什么時候開始接觸與學(xué)習(xí)「編程」的呢?
王淳彧:小時候家里有一臺電腦,看著家人天天用電腦,我就跟在他們屁股后面學(xué)。直到有一天,我爸給了我一臺淘汰下來的電腦,我便有了親自上手的機(jī)會。
我最開始用電腦折騰的是「制作游戲」。不知為什么,當(dāng)時上小學(xué)沒多久的我竟然會產(chǎn)生這樣的想法,或許是因為我游戲打的是真的菜(現(xiàn)在也是),所以自己想要做出一個游戲「難倒」別人,又或許是出于好奇心。

最開始我主要依靠「網(wǎng)絡(luò)搜索」來探索游戲制作的過程,很快就了解到 Unity(實時 3D 互動內(nèi)容創(chuàng)作和運營平臺)。但那個時候我并不知道做一款游戲還需要「編程」,所以只能天天看著教程里的一堆不認(rèn)識的字符發(fā)呆。
大概四年級的時候,我接觸到 Scratch(少兒編程),也是這時我才知道想成功制作一款游戲還得掌握「編程」這項技能。于是我開始慢慢摸索,不久竟然學(xué)會了如何操作 Scratch。之后不知不覺間,我也學(xué)會了很多新的操作,或許這就是探索的魅力吧。
你在博客中說過「在家里悶了幾個星期,就自學(xué)完 Python」,能給大家分享一下自學(xué)的方法嗎?
王淳彧:自學(xué) Python 我大概用了三種方式。
第一種是視頻學(xué)習(xí)。當(dāng)時我發(fā)現(xiàn)一些視頻平臺有許多不錯的 Python 教程,于是我嘗試跟著視頻一步步學(xué)習(xí)。看一遍視頻內(nèi)容,自己再試一遍,花了一段時間就學(xué)完 Python 的基礎(chǔ)內(nèi)容。
第二種是閱讀代碼。消化完 Python 的基礎(chǔ)后,我開始進(jìn)行一些簡單的實戰(zhàn)訓(xùn)練。主要是找到自己感興趣的項目,閱讀項目代碼,并嘗試復(fù)刻。
有趣的是,當(dāng)時我看到一個很有意思的項目,打開之后發(fā)現(xiàn)項目鏈接在 Gitee,也是從這時起意外接觸到了 Gitee 和開源。之后我自己做項目,也選擇在 Gitee 上開源。
第三種就是善用搜索引擎。進(jìn)行實戰(zhàn)練習(xí)的時候,一些項目時常會出現(xiàn)報錯。這時候我一般用搜索引擎「搜一下」,看看有沒有其他開發(fā)者遇到類似的問題,通常嘗試過他們的方法就可以將這些報錯解決。
當(dāng)初的你是如何「入門」開源的?請和我們分享 1-2 件參與開源的小趣事吧。
王淳彧:第一次入門開源,應(yīng)該是做 lingkong-robot (目前該項目已經(jīng)停止維護(hù))的時候。
那會剛開始接觸開源,只知道把項目放到倉庫里,也不知道什么是 Readme、開源協(xié)議等等。后來我發(fā)現(xiàn)別人開源倉庫顯示的信息總比我的多,這才逐步完善。
最初團(tuán)隊里只有兩位成員,我們倆主要使用開源倉庫來協(xié)作。但是當(dāng)時不懂得區(qū)分分支,所以全部的工作都在一個分支上進(jìn)行,以至于后面出現(xiàn)很多次「分支沖突」的情況。直到經(jīng)過自主探索與學(xué)習(xí),我才學(xué)會解決沖突的方法,這才減少協(xié)作過程中出問題的幾率,也提高了協(xié)作的效率。
沒有重復(fù)造輪子,怎能轉(zhuǎn)化創(chuàng)新
我們來聊聊「RingRobotX 靈音」這個項目吧,是在什么機(jī)緣下開始的呢?
王淳彧:RingRobotX 靈音是一個采用單輪對話設(shè)計的中文模塊化語音機(jī)器人框架。目前參與這個項目的核心成員只有兩位,是我和折騰調(diào);參與貢獻(xiàn)的成員一共有五位,所有參與貢獻(xiàn)的成員都是初中生。目前是由我來做「分塊功能」,折騰調(diào)做整體的模塊連接。

開發(fā)這個項目的機(jī)緣主要是我發(fā)現(xiàn)了個有意思的項目「小藍(lán)機(jī)器人」,這是一個由 Python 做成的語音對話機(jī)器人。
當(dāng)時我才小學(xué)畢業(yè),小藍(lán)機(jī)器人的開發(fā)者「藍(lán)之醬」是初三。我就在想,人家是個初中生就可以開發(fā)出這么優(yōu)秀的項目,那我和他也沒差幾歲,應(yīng)該也能做吧。于是我開始研究,最后逐漸開發(fā)出這個項目。
有件搞笑的事是,當(dāng)時我看了「藍(lán)之醬」所有的采訪視頻,其中某家媒體采訪他,在視頻畫面下方,小編寫了一句話:「桌面上放的就是小藍(lán)的大腦了」。我當(dāng)時啥都不懂,只看到畫面最顯眼的是一個帶屏幕的音響,再加上曾描述過「小藍(lán)」是一個帶有屏幕的音響,所以斷定這就是小藍(lán)機(jī)器人。
實際上這只是某品牌的智能屏,但是我卻幼稚地以為里面裝了小藍(lán)。直到我自信打開 QQ 聊天,一臉正經(jīng)把自己的分析發(fā)給他,結(jié)果給他看笑了,他也立刻糾正我的誤解。
不過這次誤會也幫我惡補(bǔ)了這方面的知識,后來也是他支持著我把項目做完,可以說「藍(lán)之醬」是我開源乃至編程的領(lǐng)路人,現(xiàn)在我還依舊視他為偶像。
項目開發(fā)過程發(fā)生過什么難忘的事嗎?
其實,項目開發(fā)過程中還是經(jīng)歷了一些坎坷的。
例如,Snowboy 是本項目中很核心的語音喚醒功能,也是少數(shù)的非 API 的功能。因為語音喚醒對于隱私的要求很高,所以我們?yōu)榱吮WC喚醒速度,又不想扯上隱私,便使用了完全在本地進(jìn)行處理的語音喚醒引擎 Snowboy。但是使用 Snowboy 意味著需要安裝多個環(huán)境,才可以支持它在本地運行。

然而作為一個小白,當(dāng)時僅是研究在本地環(huán)境安裝上,我就花了三四天。之后我還發(fā)現(xiàn) Snowboy 只能在 Linux 下使用,于是被迫給電腦換了 Deepin 系統(tǒng)。原本自以為跟著安裝流程走,最終效果應(yīng)該大差不差吧,結(jié)果在 Ubuntu 下,項目完全行不通。這時候我也才意識到,網(wǎng)絡(luò)、設(shè)備、系統(tǒng)等都可能引起環(huán)境安裝的各種問題。
至今,我也只能找到一個「相對平衡」的解決方案,達(dá)不到一勞永逸。不過回想起那幾天,因為連續(xù)失敗導(dǎo)致心態(tài)崩了好幾次,直到最后語音喚醒被成功觸發(fā)的那一刻,我簡直難以掩飾內(nèi)心的激動。
不過這個項目一直有個弊端:無法在 Windows 下運行。這問題內(nèi)部曾分析過,主要是因為使用的離線喚醒引擎 Snowboy 不支持 Windows。所以接下來會考慮用一些人工智能庫把這個東西自己做出來,還有現(xiàn)在比較流行大模型,之后也可能會在項目的回答內(nèi)容生成部分使用大模型。
你覺得開發(fā)、運營與維護(hù)一個開源項目最快樂的是什么?最難的又是什么?
王淳彧:最快樂的大概是能把自己以前想都不敢想的東西實現(xiàn)出來。當(dāng)程序能一次又一次跑通,團(tuán)隊的每一位成員都十分高興。至于最難的應(yīng)該就是架構(gòu)設(shè)計與攻克一些技術(shù)難關(guān)。
例如,最初進(jìn)行架構(gòu)設(shè)計時,我們只考慮了讓程序能夠運行,但是沒考慮后續(xù)如何加入更多功能,導(dǎo)致耗費了很多精力。直到我們重新設(shè)計了架構(gòu),把各個模塊進(jìn)行提取,同時在核心程序中預(yù)先設(shè)計了一些接口。因此在新架構(gòu)下,加入新功能變得簡單多了,甚至其他開發(fā)者為我們的項目增添新功能的時候也能做到簡單快速。
你怎么看待與應(yīng)對別人對你開源項目的「負(fù)面評價」,例如項目創(chuàng)新不足、重復(fù)造輪子、不夠成熟等等。
王淳彧:面對這些負(fù)面評價,我自己的處理辦法是稍微「做一些辨析」。如果是針對項目本身確實存在的問題,比如功能不完善、不夠創(chuàng)新等,我會帶著團(tuán)隊一起去思考、解決。

但是面對「重復(fù)造輪子」這種評價,我一般看一眼就過去。我覺得在當(dāng)今時代創(chuàng)新雖說重要,但并不是評判一個項目的唯一標(biāo)準(zhǔn)。 如果將一個已有的東西做得更好,或者用其他方式進(jìn)行實現(xiàn),那么重復(fù)造輪子并不是壞事。
同時我作為學(xué)生,經(jīng)歷這個過程也是一種學(xué)習(xí),沒有重復(fù)造輪子,怎么能學(xué)到更多東西,并做出創(chuàng)新轉(zhuǎn)化呢。
開源后浪涌現(xiàn)是一種動力
你如何理解「開源」與「開源社區(qū)」,你覺得它們帶給你什么?你理想中的開源社區(qū)是怎樣的?
王淳彧:開源給我?guī)砹碎_放的精神,現(xiàn)在我習(xí)慣性以這種開源的精神為準(zhǔn)則來干活。同時,開源對我來說也是一種「為社區(qū)貢獻(xiàn)」的方式。
我相信每個做開源的人都有為社區(qū)貢獻(xiàn)的決心,也是有了一個又一個人的開源,使得社區(qū)擁有了豐富的知識財富,才促成一個優(yōu)質(zhì)的開源社區(qū),所以我認(rèn)為開源社區(qū)更像是所有人知識結(jié)晶的集合地,也是每個開源開發(fā)者精神的象征。

對于一個理想的開源社區(qū)嘛,我希望是每個開發(fā)者都為這個社區(qū)都獻(xiàn)出一份力,共同打造一個優(yōu)秀的技術(shù)氛圍,又或者不只是技術(shù),任何的開源都可以。
目前 Gitee 涌現(xiàn)越來越多的「05后」開發(fā)者,你怎么看待開發(fā)者年齡趨勢年輕化的現(xiàn)象?會編程的年輕人越來越多,你感受到的是壓力還是動力?
王淳彧:我覺得挺好的,未來技術(shù)力將會很重要。越來越多年輕的開發(fā)者提前接觸「編程」,不僅可以培養(yǎng)自身的技術(shù)能力,也會為未來技術(shù)世界的變革帶來更多可能性。
所以會編程的年輕人越來越多,我更多感受到的是動力,即使有壓力,也會轉(zhuǎn)換為動力。 而且我挺為年輕力量加入開源隊伍而高興,我希望大家都能為開源注入新鮮血液,這大概也是開源世界所期待的后浪吧。
去年,Gitee 星球分享過一個開源圖形化編輯器——「CoCo Waddle」,這個項目是由平均年齡 13 歲的初中生與小學(xué)生共同開發(fā)維護(hù)的,你也是貢獻(xiàn)者之一。我們也很好奇,你們是如何參與、溝通與協(xié)作的?
王淳彧:群聊、文檔與開源倉庫都是我們推動項目的重要載體,我們也是在這三個載體中每天進(jìn)行協(xié)作。
我們通常會用群聊交流靈感,大家對每個人提供的靈感進(jìn)行討論評估;我們還會用文檔來推動整個項目的進(jìn)行,比如在群聊中討論后覺得可以做的東西就會放到文檔里,最后積攢為一張代辦表,通過開發(fā)去實現(xiàn)需求,設(shè)計去做設(shè)計稿,產(chǎn)品去做文檔。等到最后所有都完事了,項目就可以開源在 Gitee 倉庫上,吸引更多開發(fā)者共建了。
成績排名是最大的危機(jī)感
你是個「學(xué)霸」嗎?平時如何平衡開源與學(xué)習(xí)的?
王淳彧:我不是學(xué)霸啦,學(xué)習(xí)中等而已。開源與學(xué)習(xí)還是學(xué)習(xí)還是占多數(shù),因為現(xiàn)在同齡人在學(xué)習(xí)方面真的太卷了,如果不在學(xué)習(xí)上用點心的話,未來很難過得輕松。
現(xiàn)在學(xué)歷很重要,進(jìn)入公司人家首先看的就是學(xué)歷,能力在學(xué)歷面前不一定就代表了一切。而且我一般會在周末或假期做開源相關(guān)的工作,上學(xué)期間很少做啦。
除了開源,你還有哪些興趣愛好?
王淳彧:我還會設(shè)計、寫產(chǎn)品文檔、做音樂、制作視頻等等。我也有一個設(shè)計團(tuán)隊,正在嘗試自己做一些盈利性質(zhì)的產(chǎn)品。我覺得我的技能點應(yīng)該還挺滿的哈哈,啥都喜歡干,估計也是我這個年齡的人的一種特點吧。
你有危機(jī)感嗎?若有,你覺得你這個年齡階段的危機(jī)感主要來自于哪里?
王淳彧:危機(jī)感是有的,更多來自于其他同學(xué)更好的成績。尤其對于我們這個年齡段的人來說,「成績排名」就是最大的危機(jī)感,畢竟這些也是決定我們未來人生走向的東西。
如果讓你進(jìn)行自我評價,你認(rèn)為自己是個「天才派」還是「努力派」?
王淳彧:努力派吧,雖然可能從小接觸編程使得自己展露出這方面的「潛質(zhì)」,但是個人覺得要提升技術(shù)力不能只依靠那些潛質(zhì),還得長久的學(xué)習(xí),畢竟從來沒有人天生啥都會吧哈哈。
相信開源的無限可能
今年「Gitee 五四青年」訪談中,我們發(fā)現(xiàn)你是個自律且執(zhí)行力極強(qiáng)的人,很好奇你內(nèi)在持續(xù)驅(qū)動力來自于哪里?
王淳彧:我覺得主要來自于對目標(biāo)的堅持。例如,在中考前有對中考努力的堅持,做開源項目的時候有對完成項目的堅持。我做任何事都有對一個目標(biāo)的堅持,這或許是最能支撐我持續(xù)下去的東西。

對于編程,其實還有內(nèi)在興趣的驅(qū)使。「每一個想法都想要實現(xiàn)」的興奮感也是自己堅持下去的動力。如果往外看的話,那或許還有周圍人對自己的期待吧。身邊期待我未來能夠成功的人太多了,親戚、網(wǎng)友等等都有。
其實我壓力挺大的,但是當(dāng)壓力轉(zhuǎn)換為動力時,還挺能持續(xù)驅(qū)動我向前的。
訪談中你談到「以前追求的是有趣,現(xiàn)在想要創(chuàng)造價值」,你覺得怎樣參與開源才稱得上創(chuàng)造價值呢
王淳彧:在之前的訪談中,我曾提到我們的開源團(tuán)隊現(xiàn)在會逐漸把「評估」流程加入到項目制作中。我們一致認(rèn)為,如果項目功能是對用戶有益且能夠幫助他們解決一些問題;或者項目對開源社區(qū)的的技術(shù)進(jìn)步有意義,甚至為社區(qū)帶來進(jìn)步;又或者你寫的東西能讓別人得到啟發(fā)等等,這些都是有價值的。

要說 「在開源中創(chuàng)造價值」,其實就是在你所認(rèn)為有價值的事物中,尋找到方向并深挖。 比如說,一個有價值的想法,我會嘗試實現(xiàn)它,并開源到社區(qū);或者一個有意思的技術(shù)方案,我也會去想辦法落地并開源。在這個過程中,做出有意義的東西并嘗試開源,都算是給社區(qū)出了一份力,或許這就是所謂創(chuàng)造價值。
其實這東西我自己也沒有一個更準(zhǔn)確的定義、更明確的方法論,不過我更希望自己在之后的實踐中能夠持續(xù)探索價值、嘗試創(chuàng)造價值,也算是一個夢想吧。
你也談到自己未來還是想做產(chǎn)品經(jīng)理的角色,你有思考過未來的職業(yè)方向嗎?或者說你想成為什么樣的人?
王淳彧:說實話,未來的職業(yè)方向現(xiàn)在還真不好下定論。首先我會的東西就挺多的,產(chǎn)品經(jīng)理、開發(fā)、視覺設(shè)計、運營等等我都嘗試過,這些也是現(xiàn)代互聯(lián)網(wǎng)企業(yè)較為常見的職業(yè)。
如果要從中選一個還真不好說,或許真到那時候我會現(xiàn)實一點,選擇一個能養(yǎng)活自己的,又或者是理想一點,選一個自己最熱愛的。
關(guān)于成為一個怎樣的人,我更希望自己未來能夠堅持開源吧,無論是開源這種行為還是開源這種精神,都應(yīng)該堅持下去,因為我相信開源具有無限的可能。
本文為受采訪者獨立觀點,不代表官方立場 本文版權(quán)屬 Gitee(Gitee.com)所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系 wenxiajing@oschina.cn , 未經(jīng)授權(quán)不得轉(zhuǎn)載、摘編或利用其它方式使用本文內(nèi)容。違反上述聲明者,將追究其相關(guān)法律責(zé)任。更多內(nèi)容請前往:https://gitee.com/gitee-stars 查看
