无码人妻精品一区二区三18禁,影音先锋男人AV橹橹色,污污污污污污www网站免费,日韩成人av无码一区二区三区,欧美性受xxxx狂喷水

放棄保研和出國,投身基礎軟件,一位復旦學子的職業選擇

Jicong Liu

2022-04-29 /

我是劉繼聰,2020 年畢業于復旦計算機專業,目前在濤思數據任職流計算引擎研發工程師。這篇文章是關于我過去這些年所做出選擇的復盤與回顧,我曾經歷的迷茫與困惑——關于為什么放棄保研與出國、又為什么從如火如荼的 AI 轉做數據庫、以及為什么離開大廠加入 Startup 的故事。不知其中是否有與你相似的經歷,你又能否從中獲得一些共鳴,希望能給到迷茫的人一些走出困境的靈感。

從物理轉入計算機,困難、收獲與成長

和很多人一樣,我在進入大學時對自己感興趣的專業并不清晰,從自然科學試驗班分流進入物理系一段時間后,我才決心調轉方向進入計算機專業。

我和計算機結緣于物理系的一個項目——實驗室設備管理系統,需要完成的是 Web 與服務器相關的功能,我自己在網上找教程,用世界上最好的語言 PHP 寫出了人生中的第一版程序——一個 LAMP 架構的 CRUD 系統。同時我選修了物理系的 C++ 課程,第一個相對較大的 C++ 項目就是這門課的期末項目,用經典的蒙特卡洛方法做 Ising model 的模擬。

一來二去,我發現寫代碼比在物理實驗室修設備更有趣,加之復旦還提供轉專業機會,就動了這個念頭。不過那時我已經大二了,按照規定大二轉專業必須降一級,雖然在當時看來代價很大,不過現在想來,這絕對是個正確的選擇。

話雖這么說,但在我剛轉入計算機系時,也屬實是被各路大神虐得體無完膚,甚至一度懷疑自己是不是做錯了決定。

當時我所在的拔尖班的數據結構課每周都會有機考打 OJ,OJ 和 LeetCode 有點像,但有一個典型的區別是,你只知道你的答案錯了,卻不知道有哪些測試數據,更不知道錯在了什么數據上,所以 Debug 完全靠看代碼猜。一開始,我做機考經常一分都拿不到,每周光是完成作業就幾乎要花掉我所有時間。為了獲得更好的成績,我有很多次寫代碼直到天明。但進步是看得見的,慢慢地我能夠在每周機考上取得滿分,最后不僅這門課程我拿到了 A,績點也獲得了全系第一。

現在想來,我覺得這應該是一個臺階,你需要拼盡全力才能登上去,但只要登上去就會看到不一樣的風景。這段竭盡全力刷算法題的經歷對我后來找實習、找工作也起到了非常大的幫助,基于此我才能夠在臨時起意、幾乎沒有什么準備的情況下進入字節跳動實習以及拿到各大廠的秋招 Offer。

拔尖班的好處是選擇的余地很多。除了數據庫課外,我還選修了分布式系統、數據挖掘、密碼學原理等課程。我和朋友們組隊一起做了很多有趣的項目,部署 Hadoop 與 Hive,分析不同任務中的性能瓶頸;使用 Spark 進行分布式的計算;實現數據庫的塊嵌套循環連接,將執行時間從十幾秒優化到一秒以內……

在復旦,我拿過各種各樣的獎勵,除了一等、二等、三等獎學金,還有數模競賽、物理學術競賽的國家一等獎和上海市一等獎、泛海學者、優秀學生等等。在求學之路上,我遇到了很多優秀的同學、名師以及挑戰,也收獲了一路成長。

大學時的獲獎證書
大學時的獲獎證書

從 AI 到數據庫,關于科研、實習與方向的選擇

在研究領域上,我也并非一開始就關注數據庫,這其中還有一段曲折的摸索過程。

我進入計算機系后,應拔尖班要求加入了 NLP(自然語言處理)實驗室。在大三上學期期末考試結束之后,我成為了字節跳動 AI Lab 的一名 NLP 實習生,做的是中文錯別字檢測的工作,實習結束后進入港科大做暑期交流,嘗試做更深入的研究。在這么幾段短暫而又截然不同的 AI 研究經歷中,雖然導師都是業界、學術界的大牛,但我卻沒有做出什么厲害的成果。

由此我產生了一些新的想法,要不要去做一些別的事情,或許我會覺得更有趣、也更能發揮我的長處,就像我從物理轉到計算機一樣。我把這些想法和在不同研究領域的朋友們交流了一下,之后一位做數據庫的同學引領我看到了另一個領域——Data Infra。接下來我成為了 TiDB 的貢獻者并開始系統性地學習分布式系統和數據庫,算是正式邁進了數據庫的門檻。

但我在參加工作時卻并沒有直接進入這個行業。臨近畢業季,我面臨著參與保研還是出國抑或是參加秋招的選擇。由于保研外校需要參加夏令營(但我那時在港科大交流),而本校又沒有特別合適的導師,于是我放棄了保研,趕上了秋招的末班車。我做了兩手準備,即使沒有找到合適的工作,仍然可以申請出國,結果沒想到秋招超乎想象地順利,我拿到了參加面試的所有公司的 Offer:其中既有阿里、騰訊這類大廠,也有 PingCAP 這類創業公司。

在某互聯網大廠的終面中,我遇到了一位同樣復旦畢業、工作十多年的學長,他問我手上有哪些 Offer 以及傾向的選擇,我如實地回答了,并說我現在想去做數據庫。他不置可否,只是反問我:“年輕人都想去做些有技術的事情,我當年也是。但去 Startup 做數據庫,你是否真的想好了?在未來好幾年,你可能都比你在互聯網大廠做業務的同學薪資更低,同時還要承擔更多不確定性的風險,你真的能接受嗎?”

我真的想好了嗎?或許確實沒有。最終,我選擇了去阿里云,從事基礎架構的工作,希望能取得一定的平衡。

疫情在那個冬天爆發、無法返校,畢業時只來得及和部分同學匆匆相聚又相別。上海到杭州的動車不過 49 分鐘的車程,恰如從學生到職場人的轉變,快得令人猝不及防。下一站,杭州阿里。

加入阿里后,榮耀、困惑與思考

或許是得益于我之前還算豐富的實習經歷,又或許是我在學生時代就做了很多有挑戰的課程項目,我很快上手了新的工作內容。第一個令我印象深刻的任務,是我入職的第一個月,就解決了一個困擾了組內技術專家們半年之久的問題。

背景是這樣的,我們有一個監控系統,監控的探針直接安裝在客戶 ECS 上,客戶可能會購買很多 ECS,用 Kubernetes 或非 Kubernetes 的方式組成集群,我們要做的事就是抓取出集群內的網絡拓撲關系,比如 TCP 連接,然后繪制成可視化的拓撲圖。與一般的分布式微服務相比它存在三個難點:

  • 不對用戶的技術棧做假設的,Java、Python、PHP 都有可能
  • 要做無侵入的,不希望用戶改代碼
  • 要適配 Kubernetes、非 Kubernetes,還有各種 Linux 內核版本

我們是通過輪詢/proc 目錄下的 TCP 文件來解決這些難點,但無法保證抓取到全量數據。最好的解決方法是用當時比較新的技術 eBPF 來做,卻因為絕大多數客戶環境不能很好地支持 eBPF 而難以落地。我花了一周業余時間做調研,發現一個內核模塊 auditd 可以較好地解決這個問題,幾周時間后我們的新版探針上線了。這個半年無解的難題得到了解決,也成為我進入職場之后第一件很有成就感的工作成果。

但逐漸地我發現,組里的工作屬于典型的管控側,管控側的麻煩是適配用戶各種各樣復雜的環境,但自身的核心能力、技術難度與挑戰都明顯弱于平臺側,因此,我能挑戰的問題沒有想象中那么多,進步的速度也漸趨緩慢,組里業務的發展狀況也并不好。

為了排解工作的枯燥乏味,再加上做數據庫之心一直不死,我和朋友們一起參加了 PingCAP 2020 年的 Hackathon。我們選擇的題目是基于 Raft Log 來實現物化視圖,屬于改內核的工作。在賽程中,我和小伙伴們通宵達旦地寫著代碼,調試與解決問題,這讓我感到了在工作中久違的快樂——寫代碼、解決難題與自身進步的快樂。

經此一役后我開始思考未來,在當下的工作中雖然我得到了老板的信任、成為了一些項目的 Owner,或許會有按部就班的晉升,但這些毫無波瀾的人生軌跡也讓我越發感到工作中的枯燥乏味。我決定要離開,但為了避免重蹈覆轍,我必須要先確定好目標。

從阿里到 Startup,重拾做數據庫的想法

我籌劃著兩條路——轉崗或跳槽。我開始和公司內不同團隊接觸,但是結果卻讓我失望:很多我以為做著內核研發的部門卻實際上只做管控和寫控制臺;而另一些內核部門,一整個組的 Scope 都小得令人失望;還有一些,并不歡迎校招新人轉崗……

而另一方面,整個 Data Infra 的環境卻在悄然改變。我身邊開始出現了一些令人振奮的聲音,比如:

“所有人都看好 DoorDash 這些明星 Pre-IPO,而 Snowflake 這類公司招人都很困難,但后來發現那些去了的人拿得是幾百萬刀的大包……”

“Snowflake 的發行價已經上調了,上市當天就暴漲了超過 100%……”

“Snowflake 的數據確實好:它的 NRR 是 173%,也就是說假設一個用戶去年在 Snowflake 上花費了 1 美元,那么今年他將平均花費 1.73 美元……”

“Confluent 上市、Databricks 大額融資……”

……


這時我才驚醒,當時那位校招的終面官,有許多年工作經驗、在大廠管著幾百人的復旦學長所說的已經不對了——去 Startup 做數據庫,已經不再是一件需要靠情懷去支撐的事。隨著這個行業內熱錢的涌入,很多有前景的 Startup 實現了大額融資。更關鍵的是,對于這類技術公司而言,技術人才是核心,因此他們愿意花錢、也給得起錢去和大廠搶人;而互聯網的 ToC 業務卻因流量見頂,發展前景反而沒那么樂觀。

經過一段時間系統性的學習與研究,我認為自己已經準備充分,我的首選目標是做 TDengine Database 的濤思數據。原因有二:首先,TDengine 是的,在此之前,我已經多次看到過 TDengine 登上 GitHub Trending 榜;我能夠直接去看代碼、通過實踐直接判斷它是否有真材實料。其次,通用 OLAP 雖然被炒得火熱,但競爭也非常激烈,或許不如從細分賽道入手,而細分賽道中時序數據庫與圖數據庫的增長是最為迅速的,我相信 IoT 設備會持續不斷增長,產出越來越多的數據,我看好它的前景


為了了解時序數據庫這個領域,我完整閱讀了 Jeff(濤思數據創始人陶建輝)所創作的“十大特點”、“架構設計”等文章。在細分賽道中,只有靜下心來對問題進行實實在在的建模與分析、對領域進行深刻洞察,才能真正做出有核心且有競爭力的產品,在 Jeff 的文章中我切實體會到了。此外,濤思數據的招聘頁上醒目地寫著“超越 BAT 的薪資”,我認同這樣的人才觀,想要招聘到優質人才,愿景與待遇缺一不可。

攜手 TDengine,我開始新的征程

在濤思的故事其實才剛剛開始。

2021 年 7 月,我正式加入濤思數據,很快上手了數據庫內核的研發工作。在轉正后的第一次季度總結時我拿到了“最佳新人獎”。

在TDengine獲得的最佳新人獎

現在,我在濤思數據負責流式計算引擎的研發。TDengine 2.0 中提供了連續查詢的能力,它本質上是一個時間驅動的批處理,無法處理亂序數據的問題,且性能消耗很大。我的目標是為現有的 TDengine 實現一個真正的流式計算引擎。

這項工作的 Scope 與挑戰遠遠超過了我之前的所有工作與項目。我一邊系統性地學習流式計算中 EOMP(Exactly Once Message Processing)、分布式快照等容錯理論,一邊研究 Kafka、Flink 的源碼與實現機制,一邊跟蹤 SIGMOD、VLDB、ICDE 等峰會中相關研究的最新進展、了解 Railgun、Hazalcast Jet、Ray Streaming 這類新引擎的設計,同時關注著 Materialize、Decodable 這類流式 ETL 工具與 KsqlDB 這類流式數據庫的產品形態與定義。我時刻提醒自己必須要關注前沿技術與新玩家,因為我不希望做一個在設計之初就落后于時代的東西。

以一套執行引擎來融合 OLAP 的查詢與流式計算,我會用代碼來踐行我的想法,也期待著煥然一新的流式計算引擎,在今年下半年,隨著 TDengine 3.0 的發布,一同與大家見面。

寫在最后

在我過去的這些歲月中,得到了很多人的幫助,幫我找到新的方向與道路,讓我有勇氣和決心來接受新的挑戰。因此我也愿意分享出我的經歷,或許能給你一些啟示與幫助。

比起盲目地埋頭苦干,我更相信“選擇”會對人生與職業發展產生更大的影響,這篇文章中復盤了我人生中幾個至關重要的選擇:從物理轉入計算機、從當時如火如荼的 AI 轉做 Data Infra、放棄出國與保研加入阿里、從阿里離開加入濤思。當然這些選擇的結果還遠遠沒有蓋棺定論,但至少現在來看正確與否也開始漸漸清晰了,我相信讀者們也會有自己的判斷。