前言
第一次寫非技術(shù)分享的話題,而促使我提筆的動力源自去巴黎參加Openstack Kilo Design Summit大會之行,因為我從外國工程師的身上深深感受到了他們對于技術(shù)的執(zhí)著。在本文中,我想探討的是如何實現(xiàn)工程師的自我突破,因為初入茅廬的工程師更關(guān)心的是如何從一個菜鳥成長為某個領(lǐng)域的專家。那么這個關(guān)鍵的突破點在哪?
Emilien的故事
故事從一年前說起,我正在參與Puppet-Openstack社區(qū)開發(fā)和代碼審查,來了一位名叫Emilien Macchi的新面孔,他持續(xù)地向社區(qū)提交了大量高質(zhì)量的patch,我開始關(guān)注他,了解到他是eNovance公司(年初被RedHat收購)的一名Openstack開發(fā)工程師。他非常積極主動,我和他在Gerrit和IRC上有過許多交流。后來他加了我的Linkedin,于是我隨意瞄了一眼他的profile,第一印象是驚訝:
翔實的簡歷:從他的個人經(jīng)歷介紹中,任何人都可以迅速了解他從07年到14年專業(yè)上的經(jīng)歷,大學上過的課程,實習經(jīng)歷,工作過的公司等等所有和專業(yè)技能相關(guān)的經(jīng)歷,參與過的項目,擁有的證書,以及同事和上司對他工作上的評價一一具備;
最讓我吃驚的是,這哥們的先前工作經(jīng)驗是做網(wǎng)絡(luò)設(shè)備維護的,有一堆網(wǎng)絡(luò)相關(guān)的證書。
他是在12年底才開始接觸Openstack,13年開始專注Puppet和Openstack相關(guān)的自動化部署工作。我記得在HongKong Design Summit上,他并沒有參與太多的討論,而在時隔一年后,在Paris的Design Summit上,他不僅主持會議的Agenda,更重要的是他在社區(qū)做出了很多重量級的貢獻,雖然他的語速很輕緩,但他的發(fā)言卻變得擲地有聲。
一個完全沒有Openstack項目經(jīng)驗,一個完全沒有Python和Puppet語言基礎(chǔ)的網(wǎng)絡(luò)工程師如何在這么短的時間內(nèi)實現(xiàn)自我突破?
會議當天剛好是他生日,會后我送給他一個從國內(nèi)帶去的小禮物,我好奇地問他:Hey, How do you make it ?
他靦腆地對我笑:I write puppet codes except eating and sleeping.
Wow. 我和邊上的人都在驚嘆。
他走后,我站在法國國際會議中心的Room 101門口思考了好久。
故事到此就結(jié)束了,細節(jié)可能不止這些,但這并不是本文的重點。我想就此去談?wù)劰こ處熑绾稳[脫固定思維的束縛,突破自我。
態(tài)度決定一切
有句老話叫作:態(tài)度決定一切,你的態(tài)度如何,在一定程度上已決定你是失敗還是成功。我覺得這點在做技術(shù)時體現(xiàn)得淋漓盡致,就以O(shè)penstack項目為例,在其中發(fā)現(xiàn)一個bug,其實不是難事。那么在發(fā)現(xiàn)某個Openstack服務(wù)的bug時,不同的工程師有著不同的態(tài)度:有的人隨意Google一下找到解決方法然后接著干活,有的人嘗試閱讀源碼后去自行修復bug,有的人會把寫好的bugfix嘗試推送到社區(qū)的upstream去。我們都會以工作太忙為理由,只以問題的解決作為目的驅(qū)動,從不去細究問題的源頭。因此,這就導致了若干年后,有的工程師還只在原地踏步,有的已經(jīng)不僅深入掌握源碼,還能快速地做二次開發(fā),還有的人不僅養(yǎng)成了良好的代碼風格,還能積極地參與到upstream的開發(fā)中去。
記得在剛進入Sina云計算部門的時候,團隊協(xié)作平臺的副標題是28號加粗的一行文字:Develop is not easy。雖然不知道是哪位大牛寫的,直到現(xiàn)在我仍然記憶猶新。Develop不光狹義地指開發(fā),而是囊括了所有的技術(shù)崗位,我們要時刻清晰地認識到把事情做好并非易事。這里不僅指技術(shù)本身,還涉及許多相關(guān)的細節(jié),這些細節(jié)常常被多數(shù)工程師忽略,而正是這些細節(jié)才能體現(xiàn)出一個工程師的閃光點。
我常使用業(yè)務(wù)素質(zhì)一詞來評論工程師:這個工程師的業(yè)務(wù)素質(zhì)很高,指的是他不僅在專業(yè)技能上出類拔萃,更重要的是在做事上非常認真,事無巨細,小到代碼格式,注釋,變量名稱,代碼提交信息,文檔等每個細節(jié)都能體現(xiàn)出認真兩字有多么難得可貴。凡是做過技術(shù)的朋友應(yīng)該都會有所共鳴,并且從腦海中立馬浮現(xiàn)出那些閃閃發(fā)光的人名來。
保持努力
我不想在努力這一點上舉例來說明努力是多重要的因素,因為我們從小就開始灌輸努力的重要性。我只想強調(diào)在正確技術(shù)突破的道路上,你必須不停地更新自己的知識和技能,才能越走越遠。
我認識的另一位朋友,社區(qū)核心開發(fā)者,我詢問他圣誕節(jié)打算去哪里過,他給我的回答是:I‘m not going anywhere, just writing codes at home. 所以,那些外國工程師之所以如此牛逼,并非他們生來如此,而是他們的不懈努力。
所以請一定要做到保持這份干勁,并且時不時買些心靈雞湯激勵一下自己,或者按老羅所說:惡心一下自己,保持大腦亢奮。現(xiàn)在我腦子里只要一想到Emilien的那句“I write puppet codes except eating and sleeping“,就開始失眠,這雞血的劑量使得我的生物鐘又延時了一個小時。
充滿熱情
在我認識的技術(shù)人中,做得出色的人大都有一個相同特點:富有激情,他們總以一種積極主動的態(tài)度去對待生活和工作。我相信所有剛?cè)隝T行業(yè)的同學們都是滿懷對于未來的憧憬,只是這種彌足珍貴的熱量很容易被許多外界的負面因素慢慢磨滅:工作單調(diào)乏味,生活壓力太大…但不要因此就把你的熱情埋藏起來,一旦你習慣了埋藏,你將是一個了無生氣的人。如果你失去了對于追逐技術(shù)的熱枕,那么很難在技術(shù)的道路上有所突破。激情,在很多時候,往往能點燃我們創(chuàng)新的本能。有了激情就有了不竭的動力,你的內(nèi)心同時也會變化,越發(fā)有信心,別人也會逐漸認識到你與眾不同的價值。
善于溝通
工程師們常常把精力放在編碼上,而很少去關(guān)注自己溝通能力的培養(yǎng)。我曾遇到過一些大牛,有的不屑寫文檔,有的不會用git等團隊協(xié)作工具,還有的連話都說不清。不能否認他們在自己各自的領(lǐng)域中耕耘得很深,但是在分工如此細化的時代,大多數(shù)項目都需要團隊協(xié)作才能完成,因此溝通是無法避免的:產(chǎn)品經(jīng)理和設(shè)計師之間的溝通,后端組和前端組之間的溝通,研發(fā)部和運維部之間的溝通…為什么有時候?qū)Ψ铰牪幻靼孜覀兿氡磉_的意思,導致跨部門的工作寸步難行。
TED上有個有趣的演講題目叫作:怎么說話人們才聽,聲音學專家朱利安給我們上了生動的一課,列舉了為什么沒人愿意聽我們說話。因此,我們在與別人打交道的時候,我們必須明白對方在想什么,也要讓對方明白我們想表達什么。
除此之外,對于工程師而言,溝通能力并不局限在語言溝通上,還有在協(xié)同開發(fā)時的溝通,例如對于使用git做版本控制的項目,若是沒有掌握好git工作流,溝通將異常困難。代碼審查系統(tǒng)上的交互,也是溝通方式的一種,你需要理解他人給你的意見,你能夠向他人表達清楚你的意思。
了解自己,把握方向
在大學課堂里,工作面試和入職培訓時常常能聽到一個詞:職業(yè)規(guī)劃,就是對職業(yè)生涯乃至人生進行持續(xù)的系統(tǒng)的計劃過程,它包括職業(yè)定位、目標設(shè)定、通道設(shè)計三部分內(nèi)容。職業(yè)定位主要是指:一是確定你是誰,你適合做什么工作;二是告訴別人你是誰,你擅長做什么工作。人生是應(yīng)該有一個規(guī)劃,這樣可以對于未來設(shè)立一個期望,明白前進的方向。但這類職業(yè)規(guī)范往往過猶不及,覬覦通過把自己的人生畫在紙上,然后按圖施工的想法是不切實際的。仔細想想你真的能在剛踏入社會時就能真正了解你擅長做什么工作,適合做什么工作?
喬幫主說過一句話:“如果你了解自己,能夠明白地做自己,職業(yè)規(guī)劃如同虛設(shè)”。所以,你只要清楚自己想要什么,然后朝著這個目標去做自己想做的事,就可以了,為什么要給人生設(shè)限?何不嘗試一下跨界?
前文中我談到了一個網(wǎng)絡(luò)工程師的華麗轉(zhuǎn)身,接著聊一聊我們運維團隊從UnitedStack成立伊始到現(xiàn)在發(fā)生的故事。
從理想國際大廈走出來開始創(chuàng)業(yè)的第一天,一個現(xiàn)實擺在了我們面前:采購服務(wù)器和交換機,選擇IDC。在新浪,服務(wù)器選型有專門的部門做,采購硬件有專門的部門做,交換機配置有相應(yīng)的部門做,服務(wù)器上架有相應(yīng)的部門去做,我們只有基礎(chǔ)運維和業(yè)務(wù)運維的經(jīng)驗,原先所擅長的只是一個狹小的領(lǐng)域…
看來唯有自己動手,才能豐衣足食,我們著手開始調(diào)研服務(wù)器的選型,交換機的配置,IDC的選擇。通過不斷的摸索,現(xiàn)在我們制定了一套成熟的機制去根據(jù)不同業(yè)務(wù)來選型服務(wù)器,形成了一套完善的網(wǎng)絡(luò)拓撲去連接分布在全國多個機房的公有云和托管云集群,也有了穩(wěn)定的IDC合作伙伴。
許多朋友可能還記得UnitedStack去年發(fā)布的UOS 1.0發(fā)行版,其后端代碼完全由運維組編寫。當時,我們轉(zhuǎn)身從運維變成研發(fā),調(diào)研了主流的StackOps, Fuel Web,根據(jù)產(chǎn)品設(shè)計的需求,開發(fā)了一套由Python+Puppet編寫的后端代碼,實現(xiàn)了Openstack集群的自動化部署;內(nèi)部的持續(xù)集成&持續(xù)發(fā)布系統(tǒng)也全由運維組負責,我們根據(jù)研發(fā)工程師的實際需求對持續(xù)集成工具鏈做了多次整合以匹配整個研發(fā)體系的日常工作;14年初公司業(yè)務(wù)開始涉足公有云和托管云,我們和研發(fā)部門共同設(shè)計了公有云,托管云的整體架構(gòu)。由于業(yè)務(wù)量的急劇上升,我們著手開發(fā)了資產(chǎn)管理,節(jié)點管理等多套運維平臺。同時,和一般的運維團隊不同,我們還負責虛擬服務(wù)器的鏡像自動化制作和維護,參與Openstack最龐大的計算項目Nova的定制開發(fā)并一直保持與社區(qū)upstream同步,參與puppet-openstack社區(qū)的開發(fā),一直在向社區(qū)貢獻源碼。
因為我們清楚所做的一切都是為了能把“事”做成,因此做什么并不重要。而且通過這兩年的磨練,我們在技術(shù)上最大的收獲在于大家的視野不再局限于各自的一畝三分地里,在面對新問題時,可以站在不同的角度去思考,這種在大公司里無法獲得的經(jīng)驗就顯得彌足珍貴。因此了解你自己,明白你自己想要什么,然后把握好方向。
全面 vs. 專精
以部署系統(tǒng)為例,早先的部署系統(tǒng)完全為公有云打造,要求做到細粒度控制,但操作起來比較繁瑣;而現(xiàn)在要求同時管理公有云和數(shù)量龐大的托管云集群,并且每家在架構(gòu)上都會有所差異,這就要求部署邏輯解耦,靈活可變,支持不同環(huán)境,不同拓撲,不同軟件棧,還要解放實施人員,減少部署時間。
但由于每個人的精力都被分散到多個領(lǐng)域,因此很難集中精力把部署系統(tǒng)做好,于是我們開始從多面手向?qū)R晦D(zhuǎn)變。也正是因為這兩年我們什么都做,猛然一回頭大家有些迷茫:自己什么都懂,但又什么都做不精。那么問題來了,學技術(shù)到底是…到底是精通一種還是全面發(fā)展好?
Take it easy,在技術(shù)的道路上看似會有兩種截然不同的方向:橫向擴展和縱向深入。橫向的猶如瑞士軍刀,十八般武藝樣樣精通;縱向的是削鐵如泥的倚天劍,倚天不出,誰與爭鋒。橫向擴展可以拓寬你的視野,讓你不再局限在某一種技術(shù)中,并也給你的未來多了一種可能;而縱向擴展,可以使用你深刻理解一項技術(shù)的細節(jié),讓你靜下來思考問題的本質(zhì),你可能會驚訝地發(fā)現(xiàn)某些原理都是相通的。這兩個方向都沒有對與錯,發(fā)展到一定程度都會相互溶合,就好比中國佛家禪修的南頓北漸,其實到了最后,漸悟與頓悟是一樣的,頓由漸中來。
不過哪個在前,哪個在后,我個人認為還是先做到對某一個領(lǐng)域有較深的理解和掌握后,進而去學習其他方向,這個道理就如同精通一門語言的程序員再去學習其他語言時就能駕輕熟路。
關(guān)于這兩點的結(jié)合,我有很深的印象,如上面提到的情況,剛開始的時候,運維相關(guān)的事情繁雜,每個人都得是多面手,要去cover多個領(lǐng)域,也因為此只能把每件事情做好而無法做精。在集群規(guī)模不斷擴大和業(yè)務(wù)量的增長后,原先不是問題的地方開始暴露出來,這就有精通該領(lǐng)域的工程師來獨擋一面。這是一個自我學習,自我改變的過程,也是自我突破的關(guān)鍵。
結(jié)尾
在互聯(lián)網(wǎng)的浪潮下,產(chǎn)品在快速地推陳出新,技術(shù)在不停地推陳出新,在這種大環(huán)境下,人心趨于浮躁,往往很難靜下心專心做技術(shù),唯有耐得住寂寞,才守得住繁華。
希望諸位在面對機遇和挑戰(zhàn)時,能夠發(fā)掘自身的瓶頸,實現(xiàn)自我的突破。
-
工程師
+關(guān)注
關(guān)注
59文章
1571瀏覽量
68587
發(fā)布評論請先 登錄
相關(guān)推薦
評論