我在淘寶作前端的這三年 — 第一年

轉眼已經離職半年多了,早就想寫一篇工做總結,但因爲一直在準備英語考試,又須要處理結婚和房子裝修,沒想到一拖拖了半年。在淘寶作前端是我第一份簽了勞動合同的工做,在這我的才濟濟的大公司裏,接觸了很是多的人和事物,也學到了很是多的東西、開闊了眼界。因此仍是有必要作一個回顧和總結,一是本身備忘,二是或許對一些前端新人有所幫助,由於這篇文章會涉及到一些入職、職業規劃、招聘、晉升、離職等方面的信息。javascript

因爲篇幅過長,三年總結將會分三篇發佈:前端

第一篇(第一年)主要總結如何進入淘寶要用什麼樣的策略,如何站在老闆視角看問題,我眼中的阿里文化等(已發佈:juejin.im/post/5c74d4…)。java

第二篇(第二年)主要總結如何評審需求和推動項目,如何理解業務,飛冰項目的起源等(已發佈:juejin.im/post/5c7daf…)。react

第三篇(第三年)主要總結如何管理開源項目、推廣項目,對招聘面試的思考,以及技術危機,我離職的緣由,技術移民的考慮和將來規劃等(已發佈:juejin.im/post/5c811e…)。jquery


來淘寶以前

時間先回到 2011 年下半年大一的一個晚自習,在思考本身將來想要從事計算機哪個領域,當時找了張紙用座標軸畫了 市場前景我的興趣 兩個軸,羅列技術領域和我的特色,篩選出了 安卓開發 和 網頁製做 這兩個方向。鑑於我的特性偏視覺和感受而非邏輯並且高中一直在折騰各類源碼搭網站,不太擅長底層的開發,最終選了網頁製做,後來發現這個行業叫作前端開發。git

從那以後開始專一的學習,上課和自習都是看本身的技術書,在宿舍就是藉助開發 WordPress 主題進行實踐,並寫不少文章(最先在 潛行者m 博客上寫)。當時看過一本很俗氣的職業規劃書,有個理論是挺認同的,專一一個領域三年能夠成爲高手,五年成爲專家,十年成爲高級專家。因爲個人大學通常,分析下來能競爭的就是開發經驗了,若是專一開發三年,畢業時的開發經驗或許能夠提高競爭力跟名校競爭一下。因此以後能逃課就逃課,絕大部分時間用來學習前端,再後來進入兩個外包團隊作項目,切了幾十個整站項目,鍛鍊了各類前端基礎技能同時還實現了經濟獨立。github

當時各類技術團隊都有博客,淘寶 UED 博客算是最大最棒的一個,天然也成了個人夢想團隊。大二下學期就開始關注秋季校招並在線作了下題看了看流程爲大三作準備(其實有能力的同窗大二到大三的假期也是能夠去淘寶實習的)。大三繼續瘋狂寫博客來提高一些名氣,功夫不負有心人,終於引來了前輩的邀請:web

「但願我能考慮下。」 還須要考慮啥??我作夢都能笑醒了,立刻聯繫過去告訴了目前的一些狀況,並在後續知道春季實習生招聘計劃後讓他幫忙進行了內推,以後兩個技術電面就經過了能夠去實習了,能夠算是至關順利了。當時也有投一批二線互聯網公司作兜底,原本以爲囊中取物,沒想到裏面有些公司不少簡歷關竟然都掛了。感受面試和找工做,運氣成分其實挺大的。面試

在這段經歷中,我深入的感覺到了「機會老是留給有準備的人」這句話,雖然看起來挺俗的。運氣當然重要但若是沒有提早思考規劃和學習也是很難抓住的。計算機行業有個好處就是技術水平高於一切,對於學校很差或者專業不符的同窗也是有機會的,關鍵仍是看興趣持久不持久。算法

正式入職淘寶

在淘寶的第一年並非從 2015 年 7 月畢業開始的,因爲我以爲周圍同事都會很厲害,爲了早早熟悉工做狀況,15 年 3 月多過完年我就趕忙申請離校來淘寶繼續實習,只在快畢業那段時間,請假幾天返校處理畢設和合影等。其實普通學校也有一些優點,比較容易好說話,跟老師申請後通過老師反覆確認淘寶不是一個詐騙公司後,就放行了。

一回去實習,發現以前實習的團隊竟然拆了(第一次體會到「變化「),本身從基礎架構挪到淘寶交易團隊了,跟着師兄作購物車,後來還沒正式簽約就開始獨立負責淘寶購物車業務,這時候要是出了什麼事情背鍋,是真的臨時工。

得益於「笨鳥先飛」,早在勞動合同簽約以前就開始獨立負責業務線,不少同屆同窗畢業纔開始由師兄帶領熟悉業務,因此在簽約三個月左右的轉正面試上,我有不少內容能夠彙報。也正是由於這樣,過後 HR 姐姐說個人分享在團隊裏算是比較好的,後面組織了一期新同窗分享會,讓我又作了一次「轉正面試」分享。大力是能夠出奇蹟的,笨鳥真的要想辦法先起飛。

淘寶購物車業務

這個階段基本上就是跟着 PD 走,來需求就評審,評完了就儘快作,作好了就測試,沒問題就上線,基本上像阿甘同樣。畢竟這種核心系統挺穩定的,需求迭代節奏也比較緩慢。

直到 15 年雙十一的一個需求,本身才第一次感受到本身的工做價值。那是 15 年 10 月國慶後,雙十一需求都基本作完了,並且快要進行全鏈路壓測和封網了。這時候一個推薦算法團隊的人找過來但願新增一個需求,算法接口都已經開發完成了須要前端作界面對接上去。因爲早已通過了需求窗口期,徹底能夠直接拒掉,因爲只涉及到前端部分,PD 將這個需求轉給我本身評估,並給出建議若是不影響其餘需求和穩定性而且來得及就作,來不及就不作。

這個需求是當購物車某個商品因爲庫存或者狀態失效後,出現一個「查找類似商品」的按鈕,點擊能夠推薦類似商品快速加購。我看了下這個需求很是合理並且必要,由於雙十一當天庫存消耗很是快,不少來不及下單的商品可能迅速庫存爲零失效,但本身又很須要這個商品,直接有個入口迅速加購相比從新搜索的確方便太多。因此接下了這個任務,並加班加點對接開發,最終在封網前三天完成測試併發布。

雙十一覆盤以後,收到了推薦算法團隊同事發來的感謝郵件,加了這個功能雙十一當天購物車的推薦量竟然是平時購物車的幾十或者幾百倍(具體數字記不清了,可是很大),由於購物車本來只有最下面一個小推薦坑位平時推薦量不是很大。我按照比例簡單計算了下,加的這個功能可能在雙十一當天幫了幾百萬人快速加購,想一想仍是挺有成就感的。這個功能後來保留下來了,hover 就能夠在右邊出現:

交易業務並很差作,由於是淘寶核心平臺,不少業務線都有需求定製,代碼裏業務邏輯十分複雜,並且還要當心維護避免改壞了,特別懼怕出現問題,由於一旦出問題可能就是 P1 級別故障,年終獎和晉升機會確定是沒了的。整個雙十一或者大促期間都須要 on call,一接到電話須要立刻起牀開始處理。

這一年大促關於圖標有一些小故事,一開始設計將雙十一標放在了商品圖片上面,但被評審調整到文字前面去了。原來有些商家會比較鬼,本身在商品圖片上 P 一個雙十一標,以假亂真。而後雙十一零點一過逍遙子忽然發下通知,要求淘寶全鏈路換掉雙十一的標。原來淘寶標跟雙十一標有點像,但雙十一屬於天貓,淘寶並不能使用,因而設計師立刻作出一套新的淘寶嘉年華 Icon,全鏈路各類發佈換標。因爲交易鏈路過重要,因此先改好代碼,到了六點下單低峯才發佈修正。原來一個小圖片背後關係到了大量商家的利益,由於天貓商家參加雙十一須要各類備貨和審覈,並且用戶也根據這個圖標判斷哪些是參加雙十一活動的商品,這時候兩個同樣的商品,有標和沒標,銷量可能差距巨大。開始以爲業務仍是挺有意思的。

作基礎業務,壓力仍是很大的,懼怕風險和線上問題,還不能延期。由於你延期了,極可能下面業務的促銷活動就延期了,這但是很是大的問題。還好作完雙十二就開始交接業務(第二次變化),淘寶交易前端交接給其餘前端團隊了。

購物車和交易這塊業務,我學習到了不少:

  1. 規範的開發流程:淘寶交易是淘寶最老的業務,也是平臺方地位最高,因此交易線制定了很規範的排期會制度和發佈制度,若是一個需求沒遇上排期或者發佈點,無論你多麼重要,一概延期到下個發佈點。由於交易系統自己的穩定性是最關鍵的。
  2. 線上問題無小事:交易因爲用戶量大、涉及關鍵鏈路,一旦出現線上問題,影響用戶很是廣,極可能產生重大故障。因此作交易的同窗,都會特別當心謹慎,關注線上狀況,發現小問題也要儘快修復。然後來接觸了不少其餘業務,線上的小 Bug,若是不影響使用就暫時先無論了。這個時期也搞了一些發佈安全相關的事情,好比一個 Checklist github.com/yujiangshui… (不事後來沒有更新過了,有些點已通過時了,找時間我再更新下)。
  3. Debug 和閱讀代碼能力:因爲系統比較複雜,代碼不少業務邏輯,想要繞開陷阱就須要仔細閱讀代碼和 Debug。有時雖然一個小需求,可是要先後 Debug 不少邏輯,肯定這裏沒問題才能改。

得益於這段時期學到的東西,我在知乎上回答了一些關於 Debug 的問題:

無線交易業務

購物車是主線業務,支線業務當時是由師兄帶領作無線交易的幾個頁面。當時是用 React 來開發這個項目,用了 reflux 等。當時應該算是淘寶最初用 React 的幾個業務,主要是爲了調研這個技術。

其實大公司相比小公司更願意也更容易嘗試和應用新技術。由於一旦有了開發效率或者性能提高,給業務會帶來巨大提高,也有足夠的人力來研究,也有很是多的新業務能夠來嘗試。

咱們團隊後來研發開源了 React Web( github.com/taobaofed/r… ) 項目,這個業務算是一個踩坑落地項目,用來發現一些問題。比較惋惜的是,沒過幾個月,手機淘寶去掉了 React Native 並換成了 Weex,因此這一套對公司就沒什麼意義了,因此就中止了維護。不過一些經驗積累,及時調頭,老闆又帶人開發開源出來了 rax ( github.com/alibaba/rax )。

因此看一個大公司的開源項目是否會長期維護,看看他們內部的使用狀況就能夠了。像 Weex 這種,再怎麼說也是會長期維護下去,由於它已經十分融入在手機淘寶裏面。無數的頁面和應用,都是基於 Weex 開發的。

淘寶海外業務

時間到了 2016 年初,交接完淘寶交易業務以後,我開始接手淘寶海外業務。淘寶海外業務是面向海外非大陸淘寶用戶的業務,其實主要面向香港、臺灣、東南亞等地區用戶。

因爲面向海外,淘寶須要作不少改造,好比不少商品(生鮮、法禁品)等不能運輸須要過濾、繁簡體等國際化語言處理還有下單配送地址支持海外集運等。所以在創建業務時期,基本上就是把淘寶核心業務 fork 了一遍,拿來改造了下本身維護。

淘寶海外首頁是本身利用 TMS (運營平臺)搭建、統一吊頂也是本身特殊定製的(增長國際化選項)、商品詳情頁是 Node 應用作的先後端分離、交易鏈路也自定義了一些樣式和組件(好比海外集運)。至關於本來整個淘寶的核心鏈路,搞了一個微縮版本。

作這段工做算是比較爽的,一我的負責一個微縮版本的淘寶的前端,有利於瞭解整個淘寶的業務鏈路和不少淘寶業務的代碼。而後爲了溝通方便,我把工位搬到業務方辦公區,整片包括運營、產品、設計、技術等都在一塊兒。固然也沒有交易那種排期規則,若是有什麼需求和會議,隨時溝通開始作效率挺高,感受像是創業公司,我很喜歡這種工做氛圍。此外還有三個外包同窗參與這個項目,由我分配工做,這讓我有了一點「小老闆」視角並得出結論:原來你的老闆可能真的比你更瞭解你

因爲這三位同窗協助我工做,他們的工做能力和代碼質量直接關係了個人工做量,因此我每週拿出一個小時作 Code Review and Share,在會議室讓你們各自找一段本週寫的比較好的代碼出來分享,而後我也會找一段分析下好的地方和很差的地方。而且鼓勵他們在阿里內部 ATA 平臺寫文章作分享,由於技術好的外包是可能轉正的,這或許是個加分項。緊密工做一段時間後,很容易就看出這幾位同窗的能力和學習積極性的區別,再加上工做完成狀況,能夠說是對他們的能力看的比較清楚。

但仔細回顧一下,我跟平級的同事之間,實際上是很難有所比較的。由於咱們各自作的事情不一樣,並且也不會在乎別人的優勢或者缺點,更不會去「教育」或者「指點」平級同事應該怎麼作。可是老闆視角就很是清晰了,他須要對手下人的結果負責,因此會關注進度和進展,同時也十分容易作橫向對比,能夠說是能夠十分清晰的看出一我的的水平。 老闆爲了本身晉升,也會關注手下的晉升,因此也會去指出一些問題。這個體驗給我了不少思考:

  1. 跟對老闆比作對事情重要:好的老闆願意去培養下屬,指出問題。有能力的老闆才能給下屬更高的成長空間。很幸運的是我有這樣一個老闆(元彥)。
  2. 不用試圖耍心機或者邀功、搶功:這些伎倆只能欺騙你本身,老闆視角看的一清二楚。
  3. 認真記下老闆的建議,多多反思:幾乎全部人接受到批評,第一反應都是去反駁。但在職場上,老闆通常是不會害你的(由於有晉升等利益相關)。這可能就是老闆比你更懂你的地方,他能從一個更有經驗的外部視角來看你的方案你作的事情。
  4. 遇到「不公」先想一想本身:機會是有限的,爲何老闆會把晉升機會、好的工做機會給某我的而不是你?先不要抱怨不公,想一想爲何。
  5. 抓住機會多跟老闆交流:基本上每週週會上,我都會提出來一些手頭上一些比較棘手的問題或者對團隊將來新動向的疑問,來學習下老闆是什麼樣的解決思路。

有些人可能會以爲老闆比本身笨,但其實老闆的老闆並非傻子,老闆之因此成爲你老闆,確定是有不少緣由的,學習到了你老闆的長處,有一天你纔可能登上這個位置。

因此說作事情要多站在老闆的視角去思考,聽取老闆的建議並時常反思。若是的確有問題,爲何有這個問題?怎麼解決?若是沒有這個問題,爲何會被老闆誤覺得有這個問題?

戲劇性的淘寶海外業務交接

有一天開了個需求評審會,結束以後一羣運營就去了一個會議室。我覺得還要繼續開就跟進去了。進去以後才發現他們在經過一個商家錄屏看 Lazada 的後臺操做和有什麼功能,算是一種競品調研。我以爲這跟前端功能也有關係,就留下來一塊兒看了下。

沒想到過了幾天,忽然就從外面看到新聞,阿里巴巴收購了 Lazada。沒想到又過了一段時間,老闆就開始讓我處理交接任務,將把這個業務轉出去。同時我來負責新的達人平臺和內容平臺的前端。再後來就據說整個淘寶海外業務就解散了,一些開發去 Lazada 作開發了,有的運營去了天貓,有的去了其餘業務。

其實阿里集團下包括 AliExpress 也是主打國際化,不過是偏歐美、俄羅斯的,Lazada 是偏東南亞地區。阿里巴巴高層分享國際化戰略也強調過,無論作國際化的業務你叫什麼名字,吃下來大部分,你就是阿里巴巴國際化表明。顯然淘寶海外沒有戰勝 Lazada,因此乾脆用錢把 Lazada 買下來了。

換句話說,若是咱們真的是創業公司,無論以前怎麼努力,如今已經死了。

至此,親身經歷了三次重大變化,能夠說是特別瞭解阿里「擁抱變化」的文化了。都說船大難掉頭,其實感受並非這樣。每一年阿里都會調整業務歸屬,若是作很差可能就砍掉或者換一撥人來作。好處是快速試錯持續前進,壞處就是一些研究和積累浪費了。我在淘寶海外主要研究了前端國際化的一些方案,還出去作了《基於 React 的國際化方案探索》的分享、寫了《淘寶前端國際化方案探索》以及回答了一些國際化相關的問題(zh-cn 與 zh-hans 是什麼關係、有什麼區別?),但換了業務以後,這些知識就基本沒有在後續業務中用到過了。

阿里文化與高管分享

新入職同窗會脫產有百阿(百年阿里)和百技(百年技術)培訓,一個是價值觀培訓,一個是技術培訓。在百阿大分享時,很是幸運,馬總有空給咱們這批新人作的分享。此外,HR 姐姐還會不時組織一些高管見面會幫助你們成長。這裏能夠簡單分享一些我印象很深入的點,在實際工做生活中也很必備:

  1. 誠信第一:阿里巴巴自己是商業公司,商業誠信第一,因此這是阿里巴巴的紅線。小到虛假報打車發票,大到私下勾結商家,抓到必開而後加入黑名單,嚴重的送監獄。在阿里有句話,由於信任因此簡單,因此權限放的比較開,要求必須有誠信。
  2. 公司裏面薪資保密:薪資保密也是阿里的紅線,公開討論或者公佈,會被開掉。這是源於最初馬雲創業時,籌集那 50 萬初始資金那件事情。馬總分享時說當時要求你們把本身閒錢拿出來,多少無所謂,不記名互相不能知道。時至今日馬總也不知道究竟誰出了多少錢。由於人性是很脆弱的,一旦相互知道了,不可避免的就出現利益分配爭端,也可能再也不按照能力提拔。十八羅漢的關係可能很快就由於利益崩掉了。迴歸現實,影響一我的薪資的因素太多了,若是你知道你同事比你高,幹活還比你少,你可能很難再正常工做。

有一次高管見面會,邀請了玄難給咱們作分享,給了我不少啓發。他先介紹了他的工做經驗,能夠說是很是豐富了,先後端都作過,這麼高 P 的技術專家在分享中舉例用的前端名詞挺專業的。主要收穫:

  1. 不要常常換工做,作一份工做一般 3-4 年纔會有所沉澱,對這個領域很是瞭解。 換工做的緣由必定是追求更高的目標,而不是工做中遇到了困難想要逃避或者追求漲薪。越是遇到困難越要解決困難纔可能有成長,逃避困難,換了工做仍然會遇到。技術的深度會跟薪資掛鉤正比,即使是經過跳槽漲薪,沒有技術實力壓住泡沫仍是會破。
  2. 在 IT 行業,工做和興趣要儘量貼合,能夠發揮最大效果。 假如工做內容是一條線,興趣是是一條線,這兩條線的夾角越小,幹活又輕鬆成果又多。若是這兩條線是直角,兩邊可能都很痛苦,建議調整。
  3. 牛逼的架構師必定是業務、先後端各類技術棧所有有很深的理解。 不懂業務或者不懂前端只懂後端,都很難站在一個更高的視角來總體看問題和設計架構。由於系統是一個總體,有一部分不懂或者不關心,就可能成爲系統的短板。

我也趁機問了兩個我比較感興趣的問題:

  1. 架構師平常工做是什麼?答:一半時間四處聽方案,評審架構方案可行性和合理性,並查看落地狀況;一半時間用來制定目標管理人才以及招聘。
  2. 對你影響最大的一本書或者技術是什麼?答:編譯原理。

百阿培訓時,一位講師在講關於抓住用戶需求和關鍵點時也問了咱們一個有趣的問題:如何用一句話讓老闆幫你晉升? 有人說我工做努力,晉升後會更努力。有人說個人實力足夠晉升了,不晉升我就跑路了。其實都不對,講師的答案是「幫我晉升,老闆你才能晉升」。其實老闆也須要晉升,可是一個團隊的結構一般須要一個金字塔形狀的結構。好比老闆是 P6 帶領一堆 P5,今年不少 P5 晉升到了 P6 那麼老闆顯而易見很快要升 P7 了,否則金字塔結構就不穩定了。但一個 P7 帶領一堆 P5 並且 P5 沒有晉升跡象,那麼能夠碰見將來兩三年都很難升 P8。從這個方面也能夠看到,老闆纔是最可能對你好的人,你的成績也關乎他的成績。

第一年總結

到了 2016 年 4 月,第一財年結束了。在這一年,技術能力進步不少,從以前 jQuery 棧轉到 KISSY 再到 React 而且具有了必定的 Debug 能力,結合以前阿里全網升級 HTTPS (當時做爲臨時工,升級了很多淘寶老系統代碼)、淘寶交易和淘寶海外,閱讀了不少不少代碼學到了不少東西。也能快速學習調研一些技術問題並作了不少分享,不過大都寫在了內部 ATA 上了,因此博客今後基本沒怎麼更新了,主要開始逛知乎回答一些相關問題。

擁抱了變化,知道了老闆視角。也初步認識商業的殘酷,也大概知道淘寶的業務流程,對業務有必定的關注。從各類高層、大神的分享中也學到了不少。

收穫也頗豐,拿到了不錯的績效。

此外,2015 年還有一個關於霧霾的紀錄片發佈出來。我也是第一次接觸到了霧霾,我嗓子一直週期性的咽炎難受,原來發現多是跟霧霾有關。以後,個人瀏覽器收藏夾多了一個「移民」目錄。


以上就是我在淘寶第一年的經歷和學到的東西。下週將會發布第二年的經驗,歡迎關注個人掘金帳號。

平時在知乎比較活躍,也能夠關注知乎帳號 於江水 和專欄 於江水在知乎,以便及時接到通知。後續會開發一些項目,有興趣也能夠關注個人 GitHub。固然也能夠加我微信:Jiangshui-Yu。

相關文章
相關標籤/搜索