十年了
十年,一個(gè)聽起來感覺很長(zhǎng)的時(shí)間,已經(jīng)從我身邊悄悄地滑過了。一直想寫點(diǎn)什么,卻也一直也沒時(shí)間動(dòng)筆。今天撿了個(gè)周末,就隨點(diǎn)寫點(diǎn)流水文吧,寫到哪兒算哪兒。
01 職場(chǎng)首站
我是 2010 年碩士畢業(yè)。還記得在 2009 年 11 月的校園招聘季的時(shí)候,我當(dāng)時(shí)只面試了兩家公司。一家是中科大洋,承諾 100% 解決戶口。另外一家就是騰訊,技術(shù)面試全部通過以后,hr面試中各種旁敲側(cè)擊發(fā)現(xiàn)我還是希望長(zhǎng)期在北京發(fā)展(當(dāng)時(shí)我面試的是深圳的崗位),而且也有解決戶口的工作后,就卡了我的offer。
現(xiàn)在回想起來,其實(shí)反而還有點(diǎn)感謝當(dāng)時(shí)的騰訊 hr。因?yàn)槲掖_實(shí)是想在北京長(zhǎng)期發(fā)展的,北京的戶口只有畢業(yè)的時(shí)候最好拿。錯(cuò)過了這次機(jī)會(huì)后會(huì)非常的難得到。進(jìn)大廠機(jī)會(huì)多的是,但是戶口的窗口卻很少很少。
面試完這兩家公司以后,我就沒再面試其它公司。而是開始準(zhǔn)備將我的一篇 ICPR 論文(https://projet.liris.cnrs.fr/imagine/pub/proceedings/ICPR-2010/data/4109b670.pdf) 里的算法去申請(qǐng)了個(gè)專利,然后去安安心心去中科大洋實(shí)習(xí)。
在第一家公司工作的時(shí)候,我不局限于完成自己的任務(wù),而是花時(shí)間去看團(tuán)隊(duì)里的所有代碼。這種工作方式剛開始的時(shí)候會(huì)比較吃力。因?yàn)槲也粌H僅只是把問題處理完了就完事,而是非得想把和它相關(guān)的周邊業(yè)務(wù)邏輯都挖一遍才甘心。因此,班也沒少加,好多個(gè)周末我都一個(gè)人在公司看代碼,做測(cè)試。
不過這種方式的好處也是顯而易見的,我花了大概一年的時(shí)間就熟悉了團(tuán)隊(duì)里的各種模塊和業(yè)務(wù)。當(dāng)有老員工離職的時(shí)候,我們領(lǐng)導(dǎo)很惆悵。我告訴他不用擔(dān)心,這些模塊我能頂住。有了前期看代碼的積累,確實(shí)后來的各種事情處理起來都非常的得心應(yīng)手。入職一年就頂起了團(tuán)隊(duì)里的大梁。
而且我還發(fā)現(xiàn)我們公司的客戶端軟件在啟動(dòng)的時(shí)候比較慢,通過主動(dòng)調(diào)研和測(cè)試,最后給領(lǐng)導(dǎo)提交了一個(gè)客戶端啟動(dòng)加速的方案。現(xiàn)在能想起來的方式其中一個(gè)技術(shù)方式是 DLL 的基地址重定位。
02 入職騰訊
在 2011 年下半年,工作了一年多的時(shí)候,感覺廣播電視領(lǐng)域整體的盤子還是太小了,當(dāng)時(shí)領(lǐng)頭企業(yè)的營(yíng)業(yè)額一年也就才十個(gè)億左右。再通過和自己在騰訊的同學(xué)交流,還是覺得互聯(lián)網(wǎng)的空間更大。所以也婉拒了領(lǐng)導(dǎo)給的副組長(zhǎng)的提拔挽留,又毅然跳到了北京騰訊。

我是 2011 年 11 月加入騰訊的。在項(xiàng)目上,仍然保持和第一家公司時(shí)工作類似的風(fēng)格,全力以赴。不僅僅局限于完成自己手頭的工作,主動(dòng)做一切可能有價(jià)值的事情。其中一件事情就是我發(fā)現(xiàn)在當(dāng)時(shí)的項(xiàng)目中,存在很多運(yùn)營(yíng)后臺(tái)的開發(fā)需求。每次開發(fā)一個(gè)后臺(tái)都得有人力去投入。
后來我就在老大的所開發(fā)的一套 PHP 框架的基礎(chǔ)上進(jìn)行改進(jìn)。實(shí)現(xiàn)了只要指定一張 Mysql 數(shù)據(jù)庫(kù)中的表,就可以自動(dòng)生成 bootstrap 樣式的管理后臺(tái)界面。支持列表展示、搜索、刪除、批量刪除、文本框、時(shí)間控件等等一切基礎(chǔ)功能。再以后涉及管理后臺(tái)的功能,只需要在這個(gè)基礎(chǔ)上改造就行了,人力投入降低了很多,風(fēng)格也得到了統(tǒng)一。這個(gè)工具現(xiàn)在在我們團(tuán)隊(duì)內(nèi)部仍然還在廣泛地使用。
還有個(gè)故事我也講過,就是老大分配給我一個(gè)圖片下載的任務(wù)。我不局限于完成完成任務(wù),而且還把文件系統(tǒng)、磁盤工作原理都深入整理了一遍,就是這篇《Linux文件系統(tǒng)十問》
03 轉(zhuǎn)戰(zhàn)搜狗
2013 下半年的時(shí)候,我第一次感受到了工作崗位的震蕩。我還專注解決某一個(gè) bug,花了不少精力都還沒查到 bug 的原因。這時(shí)候,部門助理突然招呼我們所有人都下樓,在銀科騰訊的 Image 印象店集合。在那里,見到了騰訊的總裁 Martin。這還是第一次離大老板只有一米遠(yuǎn)的距離。
所有人都是一臉困惑,突然把大家召集下來是干嘛呢。原來就在幾個(gè)小時(shí)前,騰訊總辦已經(jīng)和搜狗達(dá)成了協(xié)議。騰訊收購(gòu)搜狗的一部分股份,并把我們連人帶業(yè)務(wù)一起注入到了搜狗。

沒想到,是老板用一種更牛逼的方式幫我把 bug 給解決了。
14 年 1 月正式到了搜狗以后,我們沒有繼續(xù)做搜索了。而是內(nèi)部 Transfer 到了另外一個(gè)部門。做起了搜狗網(wǎng)址導(dǎo)航、搜狗手機(jī)助手、搜狗瀏覽器等業(yè)務(wù)。我也是從那個(gè)時(shí)間點(diǎn),開始帶團(tuán)隊(duì)的,也是從那以后慢慢開始從個(gè)人貢獻(xiàn)者到帶團(tuán)隊(duì)集體輸出的角色的轉(zhuǎn)變。

在搜狗工作的這 7 年的時(shí)間里,我仍然也是延續(xù)之前的風(fēng)格。不拘泥于完成工作中的產(chǎn)品需求,以及老大交付的任務(wù)。而是主動(dòng)去探索各種項(xiàng)目中有價(jià)值的事情。
比如在手機(jī)助手的推廣中,我琢磨了新用戶的安裝流程的各個(gè)環(huán)節(jié)后,找出影響用戶安裝率提升的關(guān)鍵因素。然后對(duì)新版本安裝包采用了多種技術(shù)方案,將單用戶獲取成本削減了20%+,這一年下來就是千萬級(jí)別的成本節(jié)約。
我們還主動(dòng)在手機(jī)助手的搜索模塊中應(yīng)用了簡(jiǎn)單的學(xué)習(xí)算法。采用了用戶協(xié)同,標(biāo)簽相似,點(diǎn)擊反饋等方法將手機(jī)助手的搜索轉(zhuǎn)化率提升了數(shù)個(gè)百分點(diǎn)。
除了用技術(shù)提升業(yè)務(wù)以外,我還結(jié)合工作中的問題進(jìn)行了很多的深度技術(shù)思考。
如有一次我們自己維護(hù)了一個(gè)線上的redis(當(dāng)時(shí)工程部還沒有redis平臺(tái),redis服務(wù)要業(yè)務(wù)自己維護(hù))。為了優(yōu)化性能,我把后端的請(qǐng)求由短連接改成了長(zhǎng)連接。雖然看效果性能確實(shí)是優(yōu)化了,但是我的思考并沒有停止。我們所有的后端機(jī)都會(huì)連接這個(gè)redis。這樣在這個(gè)redis實(shí)例上可能得有6000多條并發(fā)連接存在。我就開始疑惑,Linux 最多能有多少個(gè)TCP連接呢,我這 6000 條長(zhǎng)連接會(huì)不會(huì)把這個(gè)服務(wù)器玩壞?

再比如,我們組的服務(wù)器遭遇過幾次連接相關(guān)的線上問題。其中一次是因?yàn)槎丝诰o張而導(dǎo)致 CPU 消耗飆升。后來我又深入研究了一下。

最近,由于 Docker 的廣泛應(yīng)用。底層的網(wǎng)絡(luò)工作方式已經(jīng)在悄悄地發(fā)生變化了。所以我又開辟了一個(gè)網(wǎng)絡(luò)虛擬化的坑,來一點(diǎn)一點(diǎn)地填。

現(xiàn)在我們的「開發(fā)內(nèi)功修煉」公眾號(hào)和 Github 就是在作為一個(gè)我和大家分享我的技術(shù)思考的一個(gè)窗口。
04 重回騰訊
時(shí)隔 7 年,我又以一種奇特的方式變回了騰訊人的身份。

騰訊再一次收購(gòu)了搜狗的股份,這一次不再是控股,而是全資。

在離開騰訊的這 7 年多的時(shí)間里,騰訊的內(nèi)部技術(shù)工作方式已經(jīng)發(fā)生了翻天覆地的變化。
所以在剛轉(zhuǎn)回騰訊的這一段時(shí)間里,我花了大量的精力來熟悉騰訊基于 tRPC 的各種技術(shù)生態(tài)。除了工作日,也投入了不少周末的精力。
所以公眾號(hào)的文章更新也慢了一些,希望大家理解。不過重回到騰訊巨人的肩膀上,將來我也會(huì)有更多的新的思考來分享給大家,敬請(qǐng)期待。
05 再叨叨幾句
最后,水文里擠干貨,通過我今天的文章我想給大家分享這么幾點(diǎn)經(jīng)驗(yàn)。
第一,是要學(xué)會(huì)抬頭看路,選擇一個(gè)好的賽道進(jìn)去。我非常慶幸我當(dāng)年從廣電賽道切換到了互聯(lián)網(wǎng),獲得了更大的舞臺(tái)。不過其實(shí)我自己在這點(diǎn)上做的也不是特別好,2013年底入職搜狗前拒絕了字節(jié)大把期權(quán)的offer,要不然我我早就財(cái)務(wù)自由了。
第二,不要光被動(dòng)接收領(lǐng)導(dǎo)的指令干活。要主動(dòng)積極思考項(xiàng)目中哪些地方是待改進(jìn)的,想到了你就去做。領(lǐng)導(dǎo)都非常喜歡積極主動(dòng)的員工。我自己也是喜歡招一些能主動(dòng)思考,積極推進(jìn)的同學(xué)。這些人能創(chuàng)造意外的價(jià)值。
第三,工作中除了業(yè)務(wù)以外還要主動(dòng)技術(shù)的深度思考。畢竟技術(shù)仍然是開發(fā)的立命之本。在晉升考核的時(shí)候,業(yè)務(wù)數(shù)據(jù)做的再好也代替不了技術(shù)實(shí)力的核心位置。把工作中的技術(shù)點(diǎn)總結(jié)一下,在公司內(nèi)分享出來。不涉及機(jī)密的話在外網(wǎng)分享一下更好。對(duì)你自己,對(duì)你的團(tuán)隊(duì),都是好事。
前段時(shí)間我把公眾號(hào)上的一篇文章127.0.0.1 之本機(jī)網(wǎng)絡(luò)通信過程知多少 ?!在騰訊內(nèi)網(wǎng)發(fā)了一下,就有幸入圍了騰訊內(nèi)部知識(shí)獎(jiǎng)的評(píng)比。多分享總會(huì)有意想不到的收獲。
不知不覺就叨叨了這么多。今天就寫到這里了,希望大家都工作愉快,步步高升!
最后,歡迎大家加入帥地的知識(shí)星球,offer 選擇,求職、學(xué)習(xí)方法,職業(yè)規(guī)劃等問題,你都可以在知識(shí)星球向我提問,帥地都會(huì)優(yōu)先保證星球用戶得到詳細(xì)解答,并且星球里也會(huì)提供項(xiàng)目資料,學(xué)習(xí)路線等等,星球里已經(jīng)有 1000+ 位一起奮斗的小伙伴了,如果你想加入,可以在這里了解:帥地的知識(shí)星球
