
最近,Hackathon一詞時常出現在不少人的朋友圈,翻譯過來就是「黑客馬拉松」。等等……黑客也有「馬拉松」?千萬別想錯了,黑客馬拉松可不是一群黑衣人跑馬拉松,而是一場屬於程序員的賽事活動。它有着自由的形式:Hacker 們聚集在一起,緊密合作,發揮創意,持續編程,實現創想。編程馬拉松的精髓在於:一群志同道合的夥伴,在特定的時間內,相聚在一起,去做他們想做的事情——整個編程的過程幾乎沒有任何限制。
上個月,以「Possibility at Scale」為題的TiDB Hackathon 2022 完美收官。
如何理解TiDB這款數據庫軟件?
背後的PingCAP公司有哪些特別之處?
舉辦Hackathon「黑客馬拉松」比賽如何能吸引程序員和開發者來參加,又有怎樣的賽道和比賽機制呢?
今天的《創業內幕》,我們將和PingCAP聯合創始人兼CTO黃東旭,以及TiDB Hackathon「黑客馬拉松」比賽中脫穎而的代表們,深入了解數據庫軟件TiDB,大飽眼福從Hackathon「黑客馬拉松」比賽中脫穎而出的優秀項目。

Lily:
親愛的聽眾朋友大家好,歡迎收聽本期創業內幕,我是主持人Lily。本期是我們創業內幕歷史上嘉賓最多,也是最有趣的一次,全部都是非常優秀的技術牛人,剛剛都在TiDB大賽中獲得了非常優秀的名次。我們本期播客也是和GGV非常優秀的portfolio,也是全球領先的數據庫公司一起聯合舉辦的,所以我們先請PingCAP的東旭做個自我介紹。
黃東旭:
大家好,我是PingCAP的CTO跟聯合創始人——黃東旭。其實我覺得自己更重要的一個身份,就是我還是一個程序員,我現在每天還在看很多包含技術的東西,如果有時間我都會寫代碼。
Lily:
接下來我們先請另外三位2022年TiDB大賽的獲獎團隊的代表做個自我介紹,施總先來吧。
施聞軒:
大家好,我是施聞軒,我在這次Hackathon(黑客馬拉松)中是Data Dance這個項目團隊的成員,我其實也是PingCAP的員工,主要是做PingCAP的產品TiFlash的研發工作。
Lily:
這次Hackathon里,聞軒你們的項目叫Data Dance,要不要給大家簡單講一講?
施聞軒:
我們最開始是看到OSS Insight這樣一個項目,發現它其實可視化方面做得非常好,但是有一個小小的遺憾,就是它只能看到像GitHub數據這樣的可視化。
我想的是,其實我們平時生活中有非常多不同類型的數據可以可視化,我們就覺得,既然有這個想法,那我們先起個名字叫「Data Dance」,至於能不能做出來,那就做了再說。當然最後確實也能夠做到一個比較好的效果,我們就後面再聊。
Lily:
您是怎麼跟Hackathon結緣的?是加入了Hackathon之後才了解了TiDB,還是說之前就了解?
施聞軒:
這個就和我最開始怎麼認識PingCAP有關係了。差不多是讀大學的時候,當時我還比較喜歡刷知乎,然後東旭老闆也比較喜歡刷知乎,所以我經常能在知乎上看到東旭發的各種帖子。於是那時我就發現,數據庫好像是一個很有意思的東西,PingCAP也就成了我非常想來的一家公司,所以我畢業後就直接來了PingCAP。其實那時我也初步了解了一下PingCAP做的一些東西,包括TiDB、TiKV之類的。
我加入PingCAP之前,最感興趣的還是,當時我看到 PingCAP的技術站是由TiDB和TiKV兩部分組成的,然後TiKV是用Rust語言,我之前只在一些非常Geek(極客)的圈子中聽過這個語言,好像宣稱能解決很多C++不能解決的問題,聽起來確實是一個不錯的語言,但是學習門檻也挺高。
所以我最早來PingCAP,最感興趣的倒不是TiKV,而是我怎麼能夠去學到Rust這門語言。但隨着後來我在PingCAP的工作越來越深入,我也更多認識到,其實編程語言本身只是一個工具,甚至技術本身也只是一種手段,最終還是要看我們,怎麼能把這樣一個產品更好地提供給用戶,能夠提供給用戶什麼樣的價值,我覺得這些可能也決定了我在Hackathon中做一些項目的理念。
Lily:
請鵬翰、王康自我介紹一下。
王鵬翰:
大家好,我叫王鵬翰,我跟我的隊友這一次參加Hackathon的組名叫「Mirror-魔鏡」,然後我們兩個人都在加州。我現在就職於AppDynamics,它是思科旗下一家做APM方向的公司,我在公司里負責日誌搜索引擎相關的研發,以及做一些可觀測性方向的探索。在加入思科之前,其實我大學結束後還加入了一家非常早期的star,叫Dashbase,這家公司也非常榮幸地在2020年被思科收購了,所以我大學畢業之後也算是一直都在一家公司工作。
我記得我最早知道TiDB也非常有趣,那是在我大三的時候(2017年),當時我看到了一篇招聘信息,是黃東旭在招實習。之所以讓我印象這麼深刻,是因為他的實習工資是250元/天,比當時的市場平均價高了不少。我記得當時我實習的時候,高的公司能給到200元/天,那就已經讓我覺得是非常良心的公司大廠/有潛力的大廠,而他給了250元/天,給我留下了非常深刻的印象。我只恨我人在杭州讀書,不能跑去北京上班,這是我對TiDB公司的初印象。
後來因為這個契機,我仔細去看了一下他們公司到底是幹什麼的,能開出如此高價。後來發現這個公司非常有趣,原來是CODESYS作者他們一起做了一個分布式數據庫出來,依靠着 Google的那一篇論文給我們留下了非常深刻的印象。
王康:
大家好,我叫王康,來自MoreCat團隊的無貓代表,現在就職於PingCAP,是TiDB的維護者之一。我也是大學時就聽說了PingCAP這家公司,當時一個學長跟我說,有這麼一家公司在做開源數據庫,做的東西很酷,而且是開源的,所以我就記下了這麼一家公司。之後他去PingCAP實習了,等到我實習時,他就安利給了我,於是我也加入了PingCAP實習,並且畢業後留了下來。
Lily:
可能有些聽友會一頭霧水,要不請東旭給大家介紹一下我們的大賽,也介紹一下TiDB。
黃東旭:
正經來說,PingCAP是一家分布式的企業級關係型數據庫公司,通俗點說就是一家軟件公司。這個軟件屬於計算機,而我們做的軟件的品類叫數據庫。這種大的基礎軟件的範圍內,大家耳熟能詳的一個基礎軟件叫作操作系統,比如windows、 Mac OS、 iOS屬於操作系統;另一種用得最廣泛的企業級基礎軟件就是數據庫,比如平時大家用的微博微信,那些平台的信息就存儲在一個叫數據庫的軟件裡面,由這些企業幫你維護數據,讓數據別被丟了。所以它是一個很古老的軟件品類,但是又是很重要的一種系統軟件。我用一個讓非技術人員更加能夠理解的類比,傳統的企業級數據庫軟件可以類比為豐田寶馬之類的汽油車,而PingCAP作為一個創業公司,正在做一個類似Tesla(特斯拉)的新能源車。
以上就是關於TiDB的介紹,而PingCAP就是TiDB數據庫軟件背後的公司。我們其實還有特別有意思的兩個特點:第一個特點就是,它是開源的,大概就是我們把我們所有工作(包括軟件源代碼,以及怎麼去設計軟件的所有信息)全都開放,讓全世界人民都能看得到,也能用起來。我們首先是一個開放源代碼的公司,是一個很崇尚開放的公司;第二個特點,PingCAP是一個全球分布的公司,成員分布在各個國家,我們的業務不僅在中國,其實日本、歐洲以及北美的很多大家耳熟能詳的公司,背後都是由我們的產品/軟件TiDB去支撐的。雖然你們看不見我們,但是我能相信,如果你每天還在上網/用智能手機,你或多或少都會使用由我們產品去支撐的服務,所以這也是我還挺自豪的一個地方。
關於TiDB的Hackathon,其實是「黑客馬拉松」的意思,是我們的一個傳統活動,就是一群程序員,三天不眠不休寫代碼,大概用兩三天去實現一個自己的想法。活動唯一的限制/要求,就是要跟TiDB的開源生態/我們的產品/開源產品有點關係,也不是要求有非常深的關係,但是好歹要有點關係。到現在為止應該已經辦了5期,未來肯定也會繼續辦下去,反正每年大概11月、12月就可以參加TiDB Hackathon。
Lily:
我也很好奇,Hackathon是怎麼做到能夠吸引程序員和開發者都來報名參加的呢?我就把這個問題拋給幾位嘉賓。
王鵬翰:
我每年參加PingCAP Hackathon,很重要的原因就是,我能逼着自己在非常短的時間裡快速去學習很多東西,逼着自己快速去做很多決策,在短短几天內把一個想法落地。
另一方面算是欠人情,第一屆時我非常有幸地抱了PingCAP聯合創始人崔秋老闆和另外一個杜川總的大腿。當時我雖然已經有參加過十幾次大大小小的Hackathon,但那一屆非常硬核,都是在做TiDB內核相關的事情,我就只能負責做PPT跟最後的一個demo。最後我們那一屆拿了第一名,我就是真正意義上的躺贏,所以我欠下了天大的人情。於是我當時就跟崔老闆立下flag:只要你們開一屆,我就參與一屆作為償還。
Lily:
從當時第一屆到今天,從直觀感受上,你覺得TiDB Hackathon有什麼變化嗎?
王鵬翰:
直觀上的變化,我覺得就是人越來越多,越來越卷,當然這一屆因為獎項翻倍了,可能難度係數稍微下降了一點點;但是從開始到現在,難度的趨勢可能不是線性增長,而是屬於非線性增長,難度在突飛猛進。
Lily:
東旭,你們今年在原來產品組賽道基礎上新增了應用組賽道,這樣設置的目的到底是什麼?是為了讓大家的競爭壓力更小一點嗎?
黃東旭:
其實第一屆就是圖個樂,也沒什麼規則、主題,大家過來開個party,我們後來發現大家其實玩得都挺開心的,所以就想如果有點獎豈不就更開心了嗎?但是如果只有一個大獎,雖然得大獎的人很開心,但其他人可能就沒有那麼開心。
隨着隊伍越來越多,首先我們就在想能不能都搞一些有意思的賽道/方向出來。
再者早期的TiDB很簡單,就像一個引擎一樣,大家在上面隨便鼓搗點東西,做的東西都差不多;但是這5年過去了,包括TiDB本身都已經變得非常龐大,而且在它周邊也有一整套 ecosystem(生態系統),你也不能用一個統一標準去衡量所有項目,所以我覺得肯定要做更多細分。
當然我覺得作為一個娛樂活動,最重要的還是讓大家玩得開心,所以第一,獎項設置肯定要越來越多,第二要巧立名目,設置更多獎,甚至非常好玩的獎。我一直覺得寫代碼是一件特別放鬆的事情, Hackathon一直就是一個就來玩的事情,不用搞得太嚴肅。
Lily:
其實Hackathon的比賽機制中是設置了時長的,而聞軒你們做了一個跟應用相關的項目,那你覺得這會不會給項目帶來一些未完成的遺憾之處?
施聞軒:
我覺得Hackathon本就是在有限的時間內投入,去實踐一個不太成熟的想法,看看它最終能夠產出什麼。其實我會在Hackathon中去試各種平時工作中可能不太願意嘗試的東西,這些東西有可能投入比較多的時間也沒有什麼產出,但也可能會有什麼產出。我就非常喜歡把它們留到Hackathon這樣一個框定時間範圍的活動中去做,因為給到我這幾天時間,我就會想,我怎麼能儘快在這幾天時間裡儘可能多地實現我的想法。雖然這個時間限制確實可能讓產品實現不太完美,但我覺得它帶來的收益還是很大的。
Lily:
團隊有沒有考慮過在比賽之後就把創意真正的產品化和落地?
施聞軒:
其實我們是有這個想法的,我們甚至在想,後面能不能把它做到一個什麼程度,看看能不能登上像Product Hunt之類的產品排行榜的一個榜單里,這可能是一個夢想,但我們會嘗試去實現一下。
Lily:
接下來我其實想問問鵬翰,你們團隊的幾個成員都是什麼樣的背景?
王鵬翰:
我們團隊一共是兩個人,我和我的多年好友許燦文,然後他現在在 UCSB(加利福尼亞大學聖塔芭芭拉分校)博士生二在讀二年級,他已經算是NLP(自然語言處理)領域的大拿了,他的引用數非常誇張,也給可能超過20次的大小頂會做過論文審稿人。
Lily:
他是一個學術界牛人,而您是一個有多年工作經驗的工程師,您覺得你們兩個在合作中有什麼奇妙的化學反應嗎?
王鵬翰:
我覺得學術界跟工程界,其實想法會有很大不同,大家要有各自擅長的方向,有各自的側重點,但是我跟許燦文合作起來完全沒有這方面問題,因為他不但是一個學術界大佬,他工程能力也非常強。他之前在 AI領域一家非常火的創業公司Hugging Face做過實習,他現在也在谷歌實習,他對工程界也非常懂。雙方可能只要簡單一點,就能快速知道對方想要什麼,所以合作得非常愉快。
Lily:
你們兩個是誰先想出的將前沿領域的AI結合到產品中的創意?
王鵬翰:
是我。因為我在前幾屆Hackathon都試圖往內核方向去卷,但是後來發現長江後浪推前浪,跟小朋友們都打不過,那我就開始自娛自樂,每年Hackathon我都會自己去找一個自己覺得非常有趣的新方向。今年我最開始的想法就是,再找一個AI的好玩的方向進行探索,因為我覺得未來的趨勢肯定是人工學習、深度學習,可能會改變整個工程師的工作流程,所以我想做一些摸索,想嘗試一下AI的底線。
Lily:
我也想問問王康,據說MoreCat是一個非常硬核的項目,那麼在TikV眾多內核產品和周邊工具中,你們為什麼選擇以TiUP組件入手來進行設計,是因為你本身比較熟嗎?
王康:
對,這其實和我們參加Hackathon的團隊構成有關。我們團隊基本上就是TiUP的PM(產品經理)帶着他的三個開發去蹭周邊蹭吃的故事。我們的Hackathon的內容,是把TiUP變成一個更通用的包管理工具,主要是含兩個部分:第一部分是客戶端改造,讓它從只能支持單個的TiDB的官方軟件倉庫,變成支持眾多個人上傳的私有軟件倉庫,並且讓它們一起工作;另一部分就是我們搭建一個社區的軟件倉庫,讓大家更方便地往裡面上傳軟件包。其中這第一部分是我們一直心心念念特別想做的一個功能,但是由於種種原因一直沒有去做,於是PM就對我們說,你們就去試一試,哪怕拿個周邊也好,然後我們就去試了。
Lily:
王康我想請你跟大家簡單介紹一下,你覺得一個優秀的包管理器應該具備哪些功能?你為什麼覺得TiUP可以做一統江湖的工具?
王康:
我先說一下,我覺得一統江湖和優秀其實是兩個不同的目標,比如你要想做一個一統江湖的聊天軟件,你根本不需要把它做得好用。對於包管理器的一統江湖,好不好用其實不重要,最重要的是裡面有足夠多、足夠新的包,這樣用戶才會去使用,因為用戶最終是為了軟件倉庫里的軟件才會去用軟件管理工具的。
其實我在加入PingCAP之前,就非常想要這樣一個包管理工具:更加通用,不需要系統很高的root權限,可以自由管理位置。但是我在網上搜索,一直都沒有找到類似工具。然後我加入PingCAP後,開始了解TiUP,我發現它非常接近我一直尋找的包管理工具,但是它由於種種原因,還是限制於管理TiDB生態的工具,所以我就一直想要把支持多軟件倉庫的功能給做出來。但是我從加入PingCAP到參加Hackathon,也就一年多幾個月的時間,前半年我一直想着我還不熟悉他們的代碼,我不敢動手改,萬一改錯,問起來怎麼辦?
後半年我就一直想着,這個功能會不會有很多的兼容性變化,是不是要拉着開發小夥伴們一起很深刻地討論,才能夠動手把它做得很好。同時這件事對於TiDB來說並不那麼緊急,所以這件事就一直想着以後再討論。到了Hackathon,我們就想着反正Hackathon,不管兼容性了,先能用,適當保持一點兼容性就行。後來我就把我一直心心念念的成為通用保管器的另一半的想法和大家一討論,就把這個也加入到了我們要做的內容里,結果它demo起來出乎意料,效果非常好。
Lily:
今年大概有多少個團隊,比賽的激烈程度,怎麼報名,這些細節有嗎?
黃東旭:
初賽差不多有100個項目報名了,最後進決賽的大幾十個,反正我的賽道(應用賽道)差不多快30個,總體進決賽大概有62個。但我覺得第一階段你還不用寫代碼,只要把你的想法表達出來,寫一個你想做啥的文檔就相當於參與了,也沒有太多門檻。如果你的想法特別好,然後你發現你沒有什么小夥伴,或者身邊沒有人跟你一起來組隊,就缺一個程序員了,這時PingCAP主辦方也會給你去牽線搭橋看看。還是那句話,結果不重要,大家玩開心,只要能寫代碼,能進入這種寫代碼的心流狀態,就是一個很好的放鬆。
Lily:
特別感謝東旭的分享,如果大家明年想參加的話,請一定要關注PingCAP各種各樣的渠道(官方網站、公眾號),還有GGV每年也會在大賽開始時幫大家去做宣傳,所以歡迎各位小夥伴積極報名,希望明年看到更酷的想法。請幾位獲獎團隊的代表,給未來想要參賽的選手一些建議,鵬翰先來。
王鵬翰:
我還是很萌新的時候,聽過一個大佬說的一句話:怎麼去定義Hackathon上項目的好壞,或者怎麼定義這個事情的高低,就是要從兩方面;一是真實需求,二是用非常酷的方式解決問題,兩者合二為一,它就是一個好的項目。
這句話對我來說可能算是已經受益半生,所以我自己做項目的時候,都會從這兩個方向去考慮問題,這是一個非常常見、非常正常的需求,但是你解決這個問題的時候,方法一定是要酷的。希望這句話能為後來參加Hackathon的人提供一些幫助。
施聞軒:
我這邊接着鵬翰的想法再補充一下。其實我也參加過比較多的Hackathon,也拿過幾次獎,我對這一點感受也是挺深的。不過這一次Hackathon帶給我的感受,其實不只是我們可以在技術層面,用一種比較創意的方式去解決它,更多帶給我的是產品方面的一些思考。我們這次面臨的挑戰和之前的Hackathon面臨的挑戰完全不一樣,這次更多是面臨的是,我們這個產品本身的想法是否經得起考驗?大家用起來是不是真的就像我們所想象的那樣可以運作起來?所以我們這次可能更多是產品上的,不過最終效果其實也是挺好的。不管你是產品上還是技術上,只要有這樣一個創意,覺得它是一個能夠以非常短的時間快速實現的捷徑,能夠去驗證一個東西,這個東西可能是你的產品想法、技術想法,都是比較可行的,那麼首先你就得沉浸進去。
王康:
我的建議就是不要太擔心結果,當你有了一個好的想法,就放心大膽來參加,哪怕是為了周邊來參加都可以。當你們開始寫代碼,開始進入狀態之後,就會水到渠成,至少能夠完成自己想要做的東西。
Lily:
其實我真的相信科技是向善的,科技讓我們的生活變得更美好,而我們GGV做的事就是助力科技,助力人類的美好福祉。最後就是我們節目的常規問題,請幾位嘉賓給我們的聽友們推薦一下,對自己影響最大的一本書/一部劇/一檔播客,都可以,王康先來。
王康:
我推薦一本書——《經濟學原理微觀分冊》,我真的是把它當作科普讀物來看的,雖然看上去是一本教材,但是寫得非常通俗易懂,解釋了生活中的很多事情,讓我受益匪淺。
施聞軒 :
我就推薦我最近比較喜歡的書——《任天堂哲學》,因為任天堂是一個做遊戲的公司,這本書是講這個遊戲公司怎麼發家的,我覺得裡面還講述了非常多我比較喜歡的故事。比如說宮本茂是怎樣去設計這個遊戲,去判定做出的遊戲到底怎麼能讓更多玩家去喜愛它,以及像任天堂這樣一家公司,它做遊戲到底是想怎麼能把快樂帶給更多人。其實我們自己做產品的時候,很多時候都有非常類似的想法,因為遊戲本身也是一種產品,當大家去想怎麼把快樂帶給更多人的時候,我們做技術產品的其實也是一種非常類似的狀態。所以我覺得多看這種不同領域的書,其實能帶給我非常多不同的思考。
王鵬翰:
我給大家推薦一本《編碼》,副標題是「隱匿在計算機硬件背後的語言」。我作為一個程序員,這本書算是對我產生了深遠的影響。因為大一的時候,我對很多事情是知其然而不知其所以然,但我們的教科書很少會直接去跟你講這個道理。這本書的作者是一個非常資深的大牛,他在微軟拿到了頂尖成就者,他是為微軟去寫非常資深的使用說明的人,同時他為初學者們寫了這一本極其精簡的入門刊物,算是一個科普文章。內容通俗易懂,會給你講很多很有趣的信息,讓你覺得編程並不是很枯燥的事情,哪怕讓一個小朋友去看,也不會給你抗拒感。
最後它引入到一個概念:其實人很容易陷入一個慣性思維里,你只有跳出思維的模式,才能去發生一些巨大改變。對我來說,一本好的書,哪怕你給一個一年級/二年級的小朋友看,他都能得到一種體驗,你給初中生/高中生看,又能得一種體驗,現在給我來看,我又能得到一個新的體驗。這本書真的是到了不同年齡,有了一定閱歷,到了不同程度,再去回看這本書,真的又有一種新的感覺。
Lily:
東旭你有什麼想推薦給我們的書嗎?
黃東旭:
在任何公共場合,我NO.1推薦的書都是《禪與摩托車維修藝術》。我真的好喜歡這本書,甚至作為禮物送了好多同事。跟鵬翰說的點一樣,《禪與摩托車維修藝術》不太長,但是不同時間翻來看,你也會覺得,年輕時候和現在時候讀起來感受不一樣。
如果問我現在手邊在看什麼書,在看《道德經》。另外我最近會比較多看一些純文學的書,比如佩索阿的《不安之書》,文字寫得很好。我還看很多科幻小說,給大家推薦一部很著名的《獻給阿爾及儂的花束》,寫得非常棒。其實我這兩年一直都在看更多人文/文學的東西,也不要把看書看得太功利了。