一個(gè)阿里巴巴碼農(nóng)的六年回眸
2012 年 10 月 13 日,關(guān)于淘寶開(kāi)放平臺(tái)技術(shù)部分的分享看到有些同學(xué)留言說(shuō)有這樣的機(jī)會(huì)和環(huán)境是幸運(yùn)的,的確在阿里這些年趕上了公司的發(fā)展,趕上了互聯(lián)網(wǎng)技術(shù)的發(fā)展,是幸運(yùn)的。但是背后這個(gè)普通的人,從進(jìn)入公司的低級(jí)程序員一步一步成長(zhǎng)起來(lái)到底是怎么走過(guò)來(lái)的,也許可以讓一些正在走的同學(xué)有值得思考的地方,我盡量少加一些自己的收獲在里面,因?yàn)槊總€(gè)人看到這些場(chǎng)景感到了什么那就是什么。
2005年:走出國(guó)企
畢業(yè) 4 年多在一家通信國(guó)企做的順風(fēng)順?biāo)ú皇亲约耗芰τ卸嗤怀?,是老板?jīng)常被挖,所以提升的不錯(cuò)),總感覺(jué)有點(diǎn)養(yǎng)老的味道,于是開(kāi)始在招聘網(wǎng)站投簡(jiǎn)歷,沒(méi)想到一家叫阿里巴巴的杭州公司聯(lián)系上我去面試,聊下來(lái)是類(lèi)似于后臺(tái)運(yùn)維部門(mén),興趣不在此,就拒絕了,但其實(shí)埋下了伏筆。
2006年:一切歸零
剛過(guò)完年,那家阿里的公司 HR 又聯(lián)系我,說(shuō)這次部門(mén)不太一樣,去了,然后說(shuō)了一些關(guān)于 Work at Alibaba 的想法,那時(shí)覺(jué)得互聯(lián)網(wǎng)要比通信企業(yè)更有意思,所以不顧家人和未來(lái)老婆的反對(duì),辭職去了這么一家以前都沒(méi)聽(tīng)說(shuō)過(guò)的企業(yè)。進(jìn)公司以后,一切歸零,工作四年后又從底層做起,雖然忙碌,感覺(jué)充實(shí)。半年后開(kāi)始覺(jué)得有些無(wú)聊,該學(xué)的都學(xué)到了,剩下的就干一點(diǎn)常規(guī)的活,啥 Work at Alibaba 又沒(méi)影了,心里落差很大。
2007年:征召入伍
突然被征召“入伍”,20來(lái)號(hào)人被拖到老馬(馬云)的福地“湖畔花園”創(chuàng)業(yè)去了,我的感覺(jué)就是莫名其妙,收購(gòu)了一家公司(主要做 CRM 系統(tǒng)框架和模型驅(qū)動(dòng)),然后就開(kāi)始要搞創(chuàng)業(yè)了,不過(guò)起碼 Work at Alibaba 的說(shuō)法有找落了。一幫子人窩在 3 室一廳的房子里面,不同業(yè)務(wù)團(tuán)隊(duì)分在不同的小屋子里,測(cè)試和架構(gòu)團(tuán)隊(duì)在客廳。雖然我是個(gè)沒(méi)有背景的小兵,但老大還是給了我足夠的機(jī)會(huì),我沒(méi)有去做業(yè)務(wù)支撐,反而成了團(tuán)隊(duì)里面做基礎(chǔ)系統(tǒng)的,這里每個(gè)人的 level 都比我高 2 級(jí),于是我背著“架構(gòu)師”的名字開(kāi)始努力奮斗。
2008年:照貓畫(huà)虎
菲青老大加盟淘寶,成為淘寶的首席架構(gòu)師,菲青組織集團(tuán)所有架構(gòu)團(tuán)隊(duì)的同學(xué)定期聚到西湖邊上的“淘咖啡”(現(xiàn)在已經(jīng)沒(méi)了),相互間交流技術(shù),我這毛頭小鬼,托福也被拉了進(jìn)來(lái)。翻著 Yahoo 的網(wǎng)站,看到了 Flickr(記得今年年初的時(shí)候還談當(dāng)年的 Flickr 是最能夠成為今天 FB 的公司,結(jié)果給雅虎浪費(fèi)了)的開(kāi)放模式,于是照貓畫(huà)虎,還就搞出了一個(gè)看起來(lái)還有點(diǎn)摸樣的東西。接下來(lái)我的主業(yè)就放在這塊上面了,這一年技術(shù)成長(zhǎng)很快,因?yàn)殚_(kāi)放平臺(tái)是新事物,安全(數(shù)字簽名,授權(quán),加密),數(shù)據(jù)處理(xml 解析各種基礎(chǔ)知識(shí),json 的規(guī)范),REST 代理服務(wù)器實(shí)現(xiàn)等等,這些都是互聯(lián)網(wǎng)的產(chǎn)物,都非常扎實(shí)落地,充實(shí)的日子過(guò)的總是很快。
2009年:阿里軟件解體
阿里集團(tuán)的不同公司的氛圍是完全不同的,阿里軟件團(tuán)隊(duì)氛圍還是那種強(qiáng)調(diào)自上而下的管理,加上一些關(guān)系糾纏在里面,我這個(gè)苦臉碼農(nóng)一直都不入流,因此也想換換環(huán)境,加上看到當(dāng)時(shí) HSF 的成長(zhǎng)中菲青老大能抗的住壓力讓畢玄最后堅(jiān)持下去,心里還是酸酸的,但 HR 和 Boss 的左手大棒(你去哪家公司我們管不了你)右手胡蘿卜(晉升名額本來(lái)就是你的),我能做什么呢(那些日子的經(jīng)歷讓我記憶猶新,也許當(dāng)時(shí)運(yùn)氣太好了吧,在淘寶快 3 年多了,每個(gè) HR 都讓我覺(jué)得受寵若驚)。但世事難料,年中的時(shí)候突然宣布公司解體,就這樣我們笑話的說(shuō)我們把公司搞沒(méi)了,很多人非常傷感,我卻非常開(kāi)心,因?yàn)槲矣袡C(jī)會(huì)去淘寶了。
2010年:空降淘寶
空降淘寶,雖然新老板對(duì)我能力比較認(rèn)可,但是淘寶的開(kāi)放平臺(tái)已經(jīng)有了一個(gè) 10 個(gè)左右的小團(tuán)隊(duì)了,如何融入是最迫切的。我缺乏的是業(yè)務(wù),了解的是平臺(tái),能力在于技術(shù),于是天天幫助團(tuán)隊(duì)同學(xué)打雜,解決問(wèn)題,慢慢的也用能力證明自己。一直處于一個(gè)團(tuán)隊(duì)攻堅(jiān)和打雜的角色,技術(shù)能力還是得到了飛速的提升,因?yàn)檫@一年開(kāi)放平臺(tái)正式商業(yè)化了,對(duì)于基礎(chǔ)平臺(tái)的要求非常高。但這一年也有些不好的評(píng)價(jià)對(duì)我,有些同學(xué)覺(jué)得我太強(qiáng)勢(shì)了,對(duì)于團(tuán)隊(duì)成員的發(fā)展會(huì)起到反作用,順風(fēng)順?biāo)奈乙廊挥X(jué)得用技術(shù)說(shuō)話,判斷力取決于技術(shù)能力。
2011年:忐忑生涯
經(jīng)過(guò)一年多的基礎(chǔ)平臺(tái)建設(shè),整體平臺(tái)架構(gòu)已經(jīng)比較完善,而我的角色開(kāi)始顯得有些尷尬,叫架構(gòu)師,但業(yè)務(wù)管不著,技術(shù)管一塊,不帶人,干活自己做。后來(lái)這年有個(gè)毛頭小伙子聽(tīng)了我的課死活要加入開(kāi)放平臺(tái)(技術(shù)大學(xué)第一屆),因此他成了我第一個(gè)徒弟式的同學(xué),然后加上我是淘寶第一個(gè)做 App OPS(原來(lái)運(yùn)維是獨(dú)立于開(kāi)發(fā)的,后來(lái)因?yàn)橄Mo開(kāi)發(fā)更多空間,所以允許有開(kāi)發(fā)有能力的人自己管理系統(tǒng)基礎(chǔ)運(yùn)維和發(fā)布,這類(lèi)人被叫做 App OPS),另一個(gè)還在實(shí)習(xí)的愣頭小伙子也成了我的徒弟式的同學(xué),就這樣我這個(gè)架構(gòu)師有了一點(diǎn)人員資源干點(diǎn)可以干的活。
事情總不按每個(gè)人的想象走,最后組織結(jié)構(gòu)調(diào)整,開(kāi)放平臺(tái)技術(shù)部分人員可以讓我來(lái)管,看我是否能夠留下來(lái),我比較堅(jiān)定的要求就是我要帶產(chǎn)品和技術(shù)兩塊,可以想象的是,老大看著一個(gè)從來(lái)沒(méi)帶過(guò)人的P,突然要帶人了,還要帶產(chǎn)品,那有多忐忑。最后為了風(fēng)險(xiǎn)可控,開(kāi)放平臺(tái)技術(shù)兩個(gè)技術(shù)核心團(tuán)隊(duì)留給我,其他兩個(gè)團(tuán)隊(duì)拆分,給我一個(gè)產(chǎn)品經(jīng)理,其他產(chǎn)品經(jīng)理還是統(tǒng)一組織管理。我給老大的承諾是:一年,除非老大你炒我,否則我會(huì)讓你覺(jué)得放翁說(shuō)到做到。
2012年:感動(dòng)著
事情就這樣開(kāi)篇了,我開(kāi)始帶人了,開(kāi)始跑業(yè)務(wù)了,象塊海綿一樣吸收各種信息,和三淘的各種團(tuán)隊(duì)打交道,作技術(shù)的久了總以為自己對(duì)業(yè)務(wù)很熟悉,能夠分析出產(chǎn)品需求,當(dāng)你真實(shí)的去做了,去落地了,你會(huì)發(fā)現(xiàn)這個(gè)世界在變,淘寶這個(gè)甲方的身份在變,開(kāi)放平臺(tái)能夠承諾的事情落地是多少不容易。半年里面,人變化了很多,因?yàn)榱私獾母?,學(xué)會(huì)了更多的傾聽(tīng)和學(xué)習(xí),學(xué)會(huì)更多的謙虛,遇到了很多好朋友 UED,測(cè)試,項(xiàng)目總監(jiān),這些人真的是為了開(kāi)放平臺(tái)而不顧我們組織結(jié)構(gòu)調(diào)整到天貓繼續(xù)支持著,很感動(dòng)。
最初打算寫(xiě)這個(gè)內(nèi)容的時(shí)候有很多想寫(xiě)的,但是發(fā)現(xiàn)寫(xiě)完了就是一個(gè)亂,呵呵,權(quán)當(dāng)看故事吧。總結(jié)幾句話:技術(shù)耐得住寂寞,低谷積累高峰沖刺,主動(dòng)改變一切,找到自己的特點(diǎn),沒(méi)有問(wèn)題的時(shí)候最可怕,不同階段追求不同的收獲,先聽(tīng)再說(shuō),永遠(yuǎn)都要清楚你到底要什么!
下面是自己的一些問(wèn)答,覺(jué)得不靠譜的一笑而過(guò)。
一、怎么看待老板?
老板就像老婆,他能容忍你的個(gè)性就是最大的幸福,不要期望他成為你的老媽,對(duì)你百般照顧。要換老板的時(shí)候看看離開(kāi)了他是否一樣找不到“幸?!?,如果是,那么問(wèn)題在你,“離不離婚”其實(shí)不是那么重要。
二、怎么看待技術(shù)重復(fù)造輪子?
碼農(nóng)那么多,有時(shí)候重復(fù)造輪子也不一定是壞事,也許比直接拿別人的東西來(lái)用要靠譜,畢竟高P不會(huì)分工資給你的兄弟。原則就是對(duì)產(chǎn)品負(fù)責(zé),對(duì)人負(fù)責(zé),兩句話很簡(jiǎn)單,作技術(shù)老大的自己把控和判斷。(做不到只能說(shuō)明你還處于被技術(shù)玩的階段)
三、怎么看待開(kāi)源?
當(dāng)年寫(xiě)了一個(gè) Memcached 的客戶端,阿里軟件一直在用,就一直維護(hù)和更新,到了淘寶用 Tair 了,那個(gè)就廢棄不更新了。有時(shí)候?qū)τ趪?guó)內(nèi)的公司的開(kāi)源,我更傾向于叫做“曬代碼”,只有自己參與,一旦自己不用就 Over 了。授之以魚(yú)不如授之以漁,多把設(shè)計(jì)細(xì)節(jié)和代碼片段分析說(shuō)明作詳細(xì)了就好了,至于開(kāi)源,對(duì)于一般的業(yè)務(wù)或平臺(tái)團(tuán)隊(duì)投入成本太大了(一來(lái)自己都保證不了幾時(shí)內(nèi)部都不用了,二來(lái)開(kāi)源和曬代碼最大的差別就是易用性和文檔及長(zhǎng)期更新),專職做基礎(chǔ)設(shè)施的團(tuán)隊(duì)可以(操作系統(tǒng),數(shù)據(jù)庫(kù),存儲(chǔ)等)。TOP 技術(shù)分享月結(jié)束以后會(huì)把幾個(gè)核心系統(tǒng)的設(shè)計(jì)和細(xì)節(jié)優(yōu)化代碼說(shuō)明曬出來(lái)。
四、怎么看待晉升?
對(duì)晉升的人來(lái)說(shuō):
1. 有時(shí)候不多想反而就成了。(因?yàn)槟隳X子只有一個(gè),想多了這個(gè),該想的就沒(méi)想了)2.挫折未必是壞事。(我唯一一次被一棒子打回來(lái)的時(shí)候,頭暈?zāi)垦#F(xiàn)場(chǎng)什么都好,結(jié)果就不給理由的說(shuō) no,但最后老大一句話點(diǎn)醒:如果不能承受這樣的結(jié)果,你的心胸就還不夠那個(gè) level)
對(duì) Leader 來(lái)說(shuō):
1. 給兄弟們創(chuàng)造更好的環(huán)境,你不是管人來(lái)的,你是來(lái)“創(chuàng)收”的,管人誰(shuí)都會(huì),“創(chuàng)收”才是真本事。2.讓兄弟放心的去做事,自己做好各種準(zhǔn)備來(lái)幫助到他們。(了解晉升真實(shí)的考核目標(biāo)和需求)
一句話:人都要養(yǎng)家糊口,都要付出得到肯定,以心相待。
五、怎么看待帶人?
我告訴自己最多就只能帶 20 個(gè)人左右(現(xiàn)在就這個(gè)極限了),一個(gè)團(tuán)隊(duì)必然工作有差異之分,但是讓每個(gè)人都能夠滿意和滿足就需要讓所有人認(rèn)同這個(gè)團(tuán)隊(duì)要做的事情,以及每一步的結(jié)果都是團(tuán)隊(duì)的結(jié)果,這個(gè)時(shí)候個(gè)人覺(jué)得靠“管”其實(shí)不太靠譜,更多的是靠“感染”?!案腥尽蹦芰﹄S著精力分散到技術(shù)和業(yè)務(wù)中一定是有限的,當(dāng)然梯隊(duì)化的感染需要每個(gè)梯隊(duì)環(huán)節(jié)都能夠做到位,那么就牛叉了。
一句話:先讓自己相信,別人才會(huì)相信,每個(gè)人都相信了,人就不是“管”出來(lái)的。(理想很美好,現(xiàn)實(shí)很骨干,有時(shí)候自己就說(shuō)服不了自己)
六、怎么看待技術(shù)兼顧業(yè)務(wù)?
我第一個(gè)小軟件也是修改了 flash 文件將操作光驅(qū)的代碼植入,然后調(diào)研了各種業(yè)務(wù)場(chǎng)景,最后成功的傳播出去并操縱了一把,那時(shí)我就默默的感到傳播才是關(guān)鍵。今天也是如此,我和每個(gè)程序員包括我老板一樣擔(dān)心我自己分心到業(yè)務(wù)上是否會(huì)廢了自己的“武功”,其實(shí)取決于:1. 你到底 code 了多少代碼?(你會(huì)因?yàn)橐粋€(gè)月用叉子吃飯忘記怎么用筷子么)2. 你到底是喜歡寫(xiě)代碼做技術(shù),還是為了生活所迫?(后者無(wú)論你寫(xiě)多少代碼還是一個(gè)沒(méi)內(nèi)功的人)3. 寫(xiě)了 10 年代碼以后你留下的只有那些代碼和技術(shù)入門(mén)文檔,還是有更多的設(shè)計(jì)理解。(你用了 hadoop 除了會(huì)配置,會(huì)修改部分性能代碼,對(duì)他適用場(chǎng)景的理解,整個(gè)流程的瓶頸點(diǎn)設(shè)計(jì),所有分布式都糾結(jié)的問(wèn)題是否有感知)這么多年了,為什么只有那些 paper 不斷的給人啟示去做更多的工程化內(nèi)容,因?yàn)橛每曜映悦婧筒孀映悦鏇](méi)那么大的區(qū)別。(關(guān)鍵是吃的人怎么理解面難吃的原因)
所以,前面1,2,3都是你在碼農(nóng)時(shí)候做到了,那對(duì)業(yè)務(wù)的理解只會(huì)讓你如虎添翼(重要的是更多去學(xué)習(xí)和傾聽(tīng),放空自己的程序員經(jīng)歷,做個(gè)用戶)
七、怎么緩解項(xiàng)目總監(jiān)和開(kāi)發(fā)的矛盾?
開(kāi)發(fā)角色:
1. 開(kāi)發(fā)要把項(xiàng)目總監(jiān)的客戶作為客戶,而不是把項(xiàng)目總監(jiān)作為客戶,就和走棋一樣,你會(huì)比他更能主動(dòng)的把控下一招的變化,不會(huì)糾結(jié)于項(xiàng)目總監(jiān)不斷的變化。2. 量化!如果產(chǎn)品無(wú)法量化結(jié)果,無(wú)非就是需求不明確,所以追問(wèn)。
項(xiàng)目總監(jiān)角色:
1. 數(shù)字是基礎(chǔ)但不是全部。2. 多一點(diǎn)興趣愛(ài)好,多一點(diǎn)思考。blog 當(dāng)年如果沒(méi)有瀏覽量這個(gè)數(shù)字會(huì)怎么樣?微博為啥要搞個(gè)雙向關(guān)注才可以評(píng)論的設(shè)置?音樂(lè)播放器如何在用戶不點(diǎn)擊 like 反向收到用戶喜好行為?
八、怎么看待平臺(tái)產(chǎn)品?
先要活下來(lái),服務(wù)好一個(gè)產(chǎn)品線,如果沒(méi)有任何其他產(chǎn)品線過(guò)來(lái),那么就不要在乎平臺(tái)的稱呼,留好口子就可以了。當(dāng)有多個(gè)產(chǎn)品接入,同樣要活下來(lái),因?yàn)槊撾x單一業(yè)務(wù)線為了更好的平衡個(gè)體需求和平臺(tái)發(fā)展,但重要的是要找到自己有群聚價(jià)值(也就是只有集成在一個(gè)平臺(tái)上,多個(gè)業(yè)務(wù)得到的平臺(tái)功能才會(huì)最大化),這樣就業(yè)務(wù)方就不會(huì)獨(dú)自建立平臺(tái)來(lái)快速響應(yīng)需求。最后如果業(yè)務(wù)非常繁榮,那么更多的考慮為業(yè)務(wù)方挖掘業(yè)務(wù)價(jià)值,而不要聚焦于平臺(tái),幫助別人就是幫助自己。(這是平臺(tái)永遠(yuǎn)都正確的說(shuō)法)
九、如何學(xué)習(xí)技術(shù)?
不用急著什么都學(xué),珍惜每一次不同工作的機(jī)會(huì),挖深做細(xì),幾年以后回過(guò)頭來(lái)原來(lái)自己積攢了那么多!xml 解析分成幾種模式,各種解析的優(yōu)劣?http 1.1 協(xié)議中的 Header 中的緩存設(shè)置,返回頭里面的 trunked 什么用途?分布式計(jì)算關(guān)鍵問(wèn)題是什么(調(diào)度,協(xié)同,數(shù)據(jù)交互)?應(yīng)用壓力測(cè)試瓶頸如何評(píng)定,導(dǎo)致瓶頸的代碼所屬操作可能分成哪幾類(lèi)? …… 要留下更多疑問(wèn)背后的答案,而不僅僅是那一點(diǎn)代碼,那一些入門(mén)文檔。
碼農(nóng)活下來(lái)很容易,活的好不容易,好像各行各業(yè)都是這樣,所以碼農(nóng)和其他行業(yè)的人一樣,技能僅僅是一方面,更重要的是人的素質(zhì)和能力,你要活的被動(dòng),那么生活就會(huì)趕著你走,你要活的主動(dòng),那么你就可以走走看看。
結(jié)語(yǔ):今天上午爬山回家,公交車(chē)上看到一對(duì)夫妻都是盲人,心里一陣感慨,如果自己看不到,還有活著的勇氣么,因?yàn)槲覀兘裉炷敲创嗳醯谋г购芏嗍虑椋?dāng)你看不見(jiàn)的時(shí)候那是怎么能夠抗得住的打擊。
鏈接:http://kb.cnblogs.com/page/160480/
雖然我只是個(gè)學(xué)生,但是看起來(lái)還是很有feel~??!
寫(xiě)得真心贊!做人,做事,受教了。