作者 | 風月
大家好,我是風月,2014年二進宮進入阿裡,目前是業務平台體驗技術資料服務前端團隊負責人,負責 BizCharts 橫向建設以及财鲸資料業務支撐。本次分享我将回顧作為業務前端從前端工程轉型到資料可視化過程中的心路曆程。
前端工程師的修煉沒有捷徑,踏踏實實的通過一個個項目的實踐來更新打怪實作進階;本文僅分享自己11年的前端生涯,探讨一直在業務中的技術人的成長之路,也複盤再認識下自己,每個節點我遇到的問題和我的選擇,過程中聊聊走過的彎路希望能讓大家少走彎路就達到我的目的了,不說教,不帶貨。
技術 TL 進階金字塔
在我十一年的職業生涯中,以一個阿裡的BU為機關,從推動解決業務問題的角度,我基于自己有限的觀察總結了需要修煉的6個層次僅供大家參考。
第1層是個人專業技術能力的修煉:
- 我們工程師從校招開始進入阿裡就被安排通過項目開發來訓練基礎程式設計能力。一般工作三年,就能夠勝任程式設計崗位工作。程式設計基礎好,成長快的小夥伴1~2年就可以實作專業能力的儲備。程式設計是一門需要動手實踐的工種,且在阿裡這樣的大型網際網路公司,業務複雜度不斷攀升,一萬小時定律被驗證是成立的,修煉後就可以在程式設計上輔導新人實作技術攻堅,這個階段最重要的事情就是做加法,嘗試更多的可能性,不要過早為自己定型技術細分領域,為後面在前端細分領域的選擇上打好實踐基礎;
- 前端專業能力三闆斧:前端工程、性能優化、品質保障
- 影響力:該階段更多的是高執行能力,技術攻堅為主,解決點的問題,對項目的成敗有一定影響,但不起決定作用;
第2層是人際溝通能力的修煉:
- 在阿裡的研發工作中,不可避免需要與上下遊的合作夥伴共同作戰完成一個中小型項目(項目組成員10人以内);此時修煉的是PM能力,能夠通過對業務的了解識别到業務的痛點和項目的風險,給出優先級事項的判斷,并協同和推動項目組一起解決風險,保障項目的進度;
- 既有專業能力又有人際協作效能,可以獨當一面;
- 專業層面:經過第1層的實踐,開始系統了解技術細分領域,同時基于自己所處的業務和團隊情況,作出選擇,比如node全棧、資料可視化、中背景、多媒體、3D渲染等細分基礎技術;
- 影響力:對項目的傳遞品質能起到決定性的作用,項目主力核心;
第3層是組建團隊&架構能力:
- 要求我們具備管理、計劃、組織、協調、目标管理、激勵、回報、輔導、招聘、評估績效等等能力,以便帶領他人完成團隊目标。具備可以迅速組建新團隊或接管已有團隊,能夠很好的帶團隊、帶項目,具備因人而異解釋工作目标的能力,能用團隊目标統合團隊成員共同實作目标。這一層的修煉難度和挑戰遠遠大于前面2層,因為技術相對是可控的,而人的管理非常複雜,且投入這一層修煉精力消耗較大,同時也要繼續技術專業上修煉架構能力與保持程式設計能力;
- 專業層面:在第2層選擇的基礎上,細分技術領域上的深度實踐,沉澱專家領域能力;
- 影響力:能夠判斷團隊所負責業務的痛點,并能結合團隊角度給出對應的技術方案,工作會影響到大部門的業績;
- 觀察樣本:最豐富的樣本來源,身邊有不少優秀的案例,我自己已經修煉過幾年的時間,還有很大的提升空間;
第4層跨職能協作能力:
- 修煉到這層,應當具備多線程工作的能力,可以帶領幾個核心骨幹或初級TL,統管多個團隊和項目,同時,也能夠跨職能溝通,跳出前端的崗位視角,更多元化的思考問題,比如能夠很好的協調後端、測試、算法、HR、營運、PD、PMO等各個團隊一起工作。
- 專業層面:第3層的基礎上,還能夠具備一定的行業見解;
- 觀察樣本:深入業務合作過的資深TL們,我自己也是剛開始投入這個層次修煉,視野很重要;
第5層組織發展能力:
- 修煉到這層的人,了解企業的各個職能是如何工作的,能夠為BU的擴張做支撐,哪個部門該加人,哪個部分該減人,都應該心中有數。此時的頭銜,往往是部門總監,能夠給出組織架構上的設計建議并推動落實。
- 專業層面:這個層面已經不單純講專業,更多是深度結合細分行業的業務做技術決策和業務決策,産生業務價值;
- 觀察樣本:我的主管
第6層戰略眼光:
- 此時的身份往往已經是BU Head 或 BG Head了,為公司的未來發展負責,判斷未來趨勢,規劃戰略方向,組織效能提升,人才戰略,産品戰略,都是需要關心的問題。
- 觀察樣本:業務平台的大家長 @若海(eric.yug)和 CFO産技部的大家長 ;
我走過的彎路
彎路1、 2011-2014年間出走阿裡去當技術TL,發現榨幹自己,欲速則不達
2009年,我從浙江中醫藥大學計算機專業畢業,和CS強勢專業的大學還是存在差距的,學長學姐也沒有給出參考模版,一番分析後,不認命的我還是決定繼續走前端工程師路線,一開始就很有自知之明,不怕從小公司做起。我大一就開始抓緊機會在計算機學院的創業園裡開發學院網站以及大四全年出去實習來積累研發實戰經驗。幸運的是,幾經周折如願以償P4入職阿裡做前端,可能面試官看中我的不放棄,能否活下來靠自己了。
2009-2011年是我的第一份正式的工作,這階段我主要負責阿裡媽媽淘寶客的前端開發工作,主要技術棧是類庫YUI,讓我學會了子產品化開發的前端工程思維。當時同團隊的師兄們已經在實踐應用backbone,嘗試開發單頁,還有一個骨灰級的大神 @李牧 在團隊中坐鎮,相對而言,對我這個菜鳥來說,09年就接觸到了前端屆的MVC,學習機會很多,技術氛圍也不錯;
2011年,本該珍惜來之不易工作機會的我,卻因一點小插曲(畢業不久懷孕生娃拿了阿裡職業生涯中的1)作出了看其他機會的沖動想法,同時被外部的創業公司以薪資double和技術TL崗所吸引,就這樣離開了阿裡。創業這一年日日生存在生死線上,資金緊張、融資失敗、1小時裁員、互相鼓勵、迷茫、解散,從激情滿滿入職到失望離開,至今曆曆在目。創業這一年學到的不是技術精進,而是血淚教訓,意識到我正在偏離前端技術專家這條主航道,過早被眼前的薪資和TL崗位所吸引,忽視了欲速則不達的道理,我真正需要的是一個穩定長期發展的工作機會,不能短視到隻看眼前利益。
2011-2012年,這階段我的技術棧是seajs、jquery,關鍵詞是子產品加載、類庫、輕量、ftp上傳部署;
2012年,我順利入職了騰訊(杭州),負責應用寶PC端的Web前端開發,兩年後作為預備Web前端TL參加了潛龍教育訓練,一切都在往好的方向進行中。但是,2014年初騰訊杭州分部突然被通知要求将應用寶PC端的業務從杭州遷移回深圳總部,杭州研發人員要麼選擇base深圳,要麼在杭州從頭再次孵化新業務,且此時騰訊總部也在大面積的收縮業務,從自研轉變為投資合作夥伴。作為杭州土著家庭的我,要想繼續我的技術專家路線,隻能選擇離開,找到一個真正足夠大的網際網路平台,能夠支撐我長期發展。
2012-2014年,這階段我的技術棧是Angular,MVVM、單頁、shadow dom、架構、編譯、CDN、動靜分離等關鍵詞;
痛定思痛,2014年04月28日,選擇在生日這一天二進宮阿裡,代表我的新生,從看似光鮮的TL崗重新回到一線開發工作,且暗暗下決心,這一次絕不會主動離開阿裡,也不轉崗,堅持到底活下來。此時二進宮的我已經工作五年,現在想起來特别感謝這一年沒有層級和年齡的限制,讓我這個浪子可以有機會回頭。考慮離開阿裡的同學一定慎重思考未來二進宮阿裡是否還有機會,千萬不要草率作出決定,可以參考我的血淚史。
2015-~,這個階段我一路寫過全棧node、移動端zepto、React,阿裡統一以React作為底層技術棧,内部緊密共建React生态,toB研發模式逐漸形成,D2C(design to code)、webIDE、搭建發展如火如荼,資料可視化也正式被阿裡加入前端招聘細分子方向,影響着前端從業人員努力的方向,并且不少阿裡優秀的庫對外開源回饋社群。這個階段是最百花齊放的時刻,也是無形中在推動你成長,不要忽視環境的力量;
11年裡前端技術棧發生着劇烈的變化,前端的職能邊界一直在延伸。阿裡非常鼓勵我們在技術産品化上有更多的嘗試,在阿裡已有的平台上,獨立從前至後完成一個專業的産品完全不是問題,就看你是否限制了自己,當然犧牲業餘時間學習不可避免,我自己想的很清楚我會得到什麼,失去什麼,未來自己把控。
感悟:功利心是大忌,長遠職業生涯考慮,發展才是硬道理,面包會有的
沖動是魔鬼,工程師在打怪更新的過程中,會遇到非常多的“意外”面臨選擇,比如失戀、迷茫、怕累、家庭、沒信心、與主管意見不合、晉升失敗、被打3.25、創業吸引、薪資吸引等等原因,無可厚非。但我更想說的是,想清楚自己真正想要的是什麼?如果确定是技術專家路線,那就有自己的堅持,職場上的玻璃心基本上不适合長期發展,大機率“出局“。尤其是像阿裡這樣的高速發展的網際網路公司,外部環境的劇烈變化必然引起内部的變化,一線的開發要有感覺,但一般影響沒那麼大,專注做好自己的本職工作更重要;
正視3.25,從我個人了解的,大部分有三種情況。第一種是與該層級要求的能力有距離,如剛入職的新人不适應新環境,或者剛晉升到新層級的老人處在迷茫期;第二種是工作方式出現問題,如隻會埋頭苦幹純執行沒有自己的深入思考;第三種是因身體原因,如生病修養一段時間,或孕期需要更多休息等特殊情況;前兩種情況都可以通過努力來解決。3.25隻是代表目前這個階段,并不代表一年後兩年後的你,成長需要看的更長遠。至少我認識的發展不錯的同僚大部分都有被打3.25的經曆,包括我自己,第二年逆襲3.75和晉升的大有人在,也包括我自己;更關鍵的是,主管的理由是不是更多關注在你的成長上,有沒有看到自己的成長。
彎路2、2016-2017年業務量大,需要我更多投入修煉組建團隊能力,代碼量少,一度迷茫,差點失去信心考慮轉型PD
2016年初,感謝主管 @梓骞 信任我,讓我承擔商家業務的前端TL,此時此刻的我,一方面要熟悉新接手的業務,一方面要修煉組建團隊的能力,同時承擔PM的工作。這一年下來,業務做起來了,團隊建起來了,而我自己的發展呢?精力被配置設定,代碼量少了,程式設計能力生疏了,開始迷茫,技術TL到底該不該寫代碼?是否隻有我并發能力不行?隻有我不适合目前端工程師?
我甚至主動的約我的主管 @梓骞 探讨我轉型PD的可行性,認真的講我對自己優劣勢的分析。主管沒表态,告訴我迷茫是好事,說明我在思考,對于我的想法不拒絕也不肯定,隻是讓我自己去嘗試後再做決定,但前提是不能影響目前的本職工作,且明确的告知我技術TL必須寫代碼,而且是核心的代碼,無論有多忙,都要保持住技術敏感度,熟悉目前的研發體系,對研發痛點有體感,再結合業務痛點才能作出更正确的判斷和技術決策,否則面臨的就是職業生涯的天花闆甚至被阿裡淘汰。
經過主管一番的指點迷津,了解到技術TL參與研發的目标後,我開始思考怎麼選擇項目來確定ROI,做好時間管理,而不是事事參與後精疲力竭還拿不到結果。此刻再回到業務本身的痛點,貼着業務打是最穩妥的方式,大資料客戶營運平台最大的痛點就是可視分析的高效表達,且鑒于之前在ARMS監控平台中積累的圖表開發經驗,我發現自己對資料分析場景下的資料可視化有濃厚的興趣,可以先從這裡入手深入了解一下體系。短短幾個月的探索,奠定了我後來幾年為之奮鬥的細分技術領域方向-資料可視化。
感悟:在業務痛點中發現機會,方向對了就不怕遠,堅持就是勝利
現在回想,職業生涯中出現迷茫不可避免,是很常見的事情,主動找主管溝通是很明智的選擇,可以更快走出迷茫期,避免陷入誤區作出不成熟的決定。比如在TL初期很多同學都會遇到是否堅持寫代碼的疑惑,時間管理的疑惑,專業發展的疑惑。
深耕前端細分領域-資料可視化
在入行之前,我和大家一樣以為隻是簡單的使用圖表庫,會API調用,能渲染出來折柱餅就行,實際上資料可視化這個方向别有洞天:
- 往業務垂直領域走,資料本質就是業務,就會存在業務垂直領域的問題,基于我對業務領域中的業務深度的了解,對資料量級、客戶群體、核心業務名額、資料計算口徑模型、資料流的鍊路等了如指掌,才能給出合适的技術方案,隻有貼着業務做,才能作出業績;再從成長角度來說,我在做業務的過程中,會一直思考我能沉澱什麼可以被其他項目複用,差異就在于體系化能力是否實體化了。我自己選擇的也正是這條路,主要是考慮到阿裡目前的缺口,即使目前晉升體系還沒有認可,但我堅信這是正确的方式。
- 往上層通用平台應用走,更多是建構可視分析系統應用,如DataV、FBI、DI、财稅大腦等,需要我們對業務全鍊路有了解,熟悉完整的資料采集、清洗、提取轉換加載(ETL)過程,可以利用工具完成資料模組化,比如ODPS平台。如需繼續深入做架構,還需要了解大資料處理(Hadoop / Hive / Spark等)相關開發經驗,資料技術能力綜合全面,才能對大資料的性能優化方案了如指掌,避免視角片面;
- 往可視化表達這一層走,統計圖vs關系圖vs地理空間可視化也是截然不同,業務差異很大。
- 往底層渲染走,一般是解決大資料的渲染性能問題或者圖形渲染相容領域,需要了解用戶端、伺服器端、Node端、移動端裝置等多個端的SVG和Canvas的相容性等,底層的性能瓶頸問題等;
- 往2D還是3D走,也是天然之别,2D更多用于分析場景,而3D應用在大屏和互動領域,技術棧為webGL、threejs等;
同學看到這裡,不禁又問?那前端工程能力是不是沒有要求,我隻會做渲染實作絢麗的大屏?又是一個大大的誤區,前端工程永遠是Base能力,沒有這個基礎,基本可以不談其他的,因為阿裡的業務是一個大工程,而受限于你的技術棧不全,你能發揮實力的業務少之又少,談何獨當一面?是以大部分新人入職後,都會優先開始工程能力的訓練,存活下來是第一要事。我自身能夠順利轉型到資料可視化領域,也是依賴之前積累的工程基礎;
感悟:機會總是給有準備的人,保持熱情,堅持(死扛)領域深耕
我自己的經曆是,剛開始是2017年初從商家業務的痛點入手,先重點做統計圖,在作出bizcharts的原型并且應用到業務中後,和AntV建立深度的合作,基于G2沉澱出BizCharts賦能給集團,後又開源反哺給社會,這個過程中也深度參與前端委員會資料可視化小組,希望能貢獻自己的一份力量。過程中犧牲了很多我自己的業餘時間,比如參與答疑、參與文檔優化和demo編寫,确實很辛苦,但是我自己樂此不疲,因為過程中我了解到很多使用者的真實訴求還有真實的業務用例,這對于我判斷bizcharts的發展是很有幫助的,也逐漸清晰下一步應該怎麼做。
後随着自己對資料可視化的了解加深,自己能Cover的業務機會也越來越多,2018年開始組建專業的資料可視化團隊支撐業務平台的資料服務和大财鲸業務(阿裡大财務中台),現在重點投入精力做财務行業領域的可視分析系統和ToB企業級工程解決方案。會一直深耕下去,踏踏實實的,一步一個腳印,穩紮穩打,一起加油。
修煉的本質
感悟:不懼怕失敗,深耕絕不是一蹴而就,不積跬步,無以至千裡
之前有同學問我:為什麼我選的是資料可視化這個細分方向?理由如下:
- 業務痛點需要是第一優先級,這是我必須要完成的,能夠解決業務問題的技術能力,就是好的技術能力,并不一定都必須是技術深度;
- 在2016年,進入DT時代,阿裡資料業務化和業務資料化已經如火如荼,一片藍海。阿裡本質上是一家大資料公司,亟待專業的同學加入挖掘金礦,搭上順風車,會比逆風而行更容易成長;
- 資料技術足夠深足夠厚,看得見的長期發展,且業務中多次的實踐,讓我很感興趣,願意為之傾注我所有的心力、腦力、體力,來提升我個人的能力;
- 積極主動曆練自己和團隊,多做功課,拿到技術圈子的門票不難,大家都比較“簡單粗暴”非常願意伸出援手,關鍵是要想清楚長期合力共赢的點是什麼?技術壁壘的建立(業務訴求進入深水區)?大團隊的技術組合拳?哪些你做?哪些合作夥伴做?
過程中我也是從一次次的業務中實踐和摸索,在我看不清的地方,就跨出去先試試水,沒有人一開始就知道所有,圍繞着資料領域的業務一步步的做,一點點的積累,前期還看不到自己的成長,但是在堅持兩年後,突然有一天發現自己有系統性的觀點,可以和 @甯朗 @禦術 等資料可視化領域的前輩,在一起平等探讨業務發展問題和技術建設的問題了,其實就是日積月累的經驗讓我從量變到質變了,一萬個小時的定律至少在我這裡是準的,失敗并不可怕,可怕的是還沒開始就放棄了;
我的主管 @梓骞 經常會講,阿裡很多小二比我們聰明,卻還比我們更努力,我們還有什麼借口說是天賦的問題。雖然聰明人很多,但不缺有想法的,更缺的是實實在在落地做實事的;内網ATA有很多非常高品質的前輩體系化的經驗總結,非常寶貴,能夠擴大技術視野,非常适合在碎片的時間裡充電。
最後總結
心态要擺正,成長是自己的事,職場那麼長,長達三十年,為什麼我要跟面子過不去,老拿自己去和身邊的同學比,非要去死磕層級,累不累?堅定我目前做的事是不是一件正确的事情,是不是解決了業務痛點,在當下,我的核心競争力是什麼?成長真要有什麼靈丹妙藥的話,可能是我的主管 @梓骞 一直以來的思維方式是怎麼通過技術産品化等工作,提升團隊的運轉效率,那就可以做更多新的事情,自然而然的就成長了,這個思維方式對我影響很深,至少經過目前為止的驗證還是成立的!一年可能看不到成果,需要三年~五年;
在經曆千辛萬苦之後,我幸運的晉升到了P8,你以為終于可以松一口氣好好休息一下,其實是不存在的,因為你面臨的是新層級的期望和要求,講人話就是距離3.25很近甚至淘汰。說好的不可替代呢?真相是在工程世界裡沒有銀彈,也就是不存在不可替代性的人,連馬爸爸離開阿裡,阿裡也能正常運轉。但技術領域研究越深入,權威度越高,替代成本就越高,一定程度上可以形成核心競争力。阿裡的舞台很大,身邊的學習對象很多,立志做一個懂商業的資料可視化專業人士,打深、打穿、打透,新的征程,重新出發,努力踏上資料可視化領域的新階梯。
關注「Alibaba F2E」
把握阿裡巴巴前端新動向