經(jīng)常在網(wǎng)上的論壇里看到討論程序員的級別,尤其在跳槽類的信息里可以看到對標(biāo)阿里P7,百度T6,騰訊3.1等字眼,似乎大廠的級別儼然可以成為業(yè)內(nèi)的通用貨幣,類似于高考分?jǐn)?shù)一樣,哪一檔就對應(yīng)著什么樣的待遇。
有人說現(xiàn)在的程序員級別也開始浮夸起來了,以前覺得從剛畢業(yè)開始算初級軟件工程師,到中級軟件工程師,高級軟件工程師,要熬上三五年乃至更高的時間。而現(xiàn)在接到同行的名片,往往高級開發(fā)經(jīng)理、算法專家、首席科學(xué)家等層出不窮。
我從畢業(yè)后一直在海外工作,自己的頭銜從一開始的軟件開發(fā)工程師到現(xiàn)在全棧開發(fā)工程師,并沒有“級別”上的跨越。反觀我在國內(nèi)發(fā)展的同學(xué),已經(jīng)很多是“總”級別的人物了。細(xì)細(xì)交流之后,覺的和自己做的事情也并無不同。
我在兩三年前,曾經(jīng)非常重視在公司里的晉升,花了大量的時間精力去“面向升級編程”。在跳槽的時候,也會常常對比不同的職位,往往會對那些頭銜“高貴”的職位另眼相看。如今反思,當(dāng)年的自己其實是掉入了級別的陷阱中。
程序員的級別重要嗎
程序員的級別到底重不重要?重要也不重要。
級別重要,是因為級別常常和你的待遇掛鉤。國內(nèi)的大廠一般有很穩(wěn)定的薪資體系,什么樣的級別代表著什么樣的工資、股票,和錢相關(guān)對個人來說當(dāng)然重要。
級別重要,是因為常常和程序員的話語權(quán)相關(guān)。即使如谷歌,F(xiàn)acebook這樣的公司,沒有能夠達(dá)到高級軟件工程師(Senior Software Engineer)的級別之前,也很難獲得“搞事”的權(quán)利,不能為自己爭取到更多的資源。能夠給自己帶來更多表現(xiàn)的機(jī)會,當(dāng)然很重要。
級別不重要,是因為級別并不決定你的能力。你不是因為被稱作高級軟件工程師所以你的技術(shù)厲害,而是因為你的技術(shù)厲害所以有可能成為高級工程師。技術(shù)厲害的程序員評不上高級工程師,也不會影響他的技術(shù)水平。
級別不重要,是因為級別并不能限制你的輸出。級別低的程序員在大公司可能只能做CRUD,但也可能在創(chuàng)業(yè)公司中做出千萬用戶的產(chǎn)品。級別高的程序員或許位高權(quán)重,但也有可能完全沒有時間寫代碼。
級別是相對的稀缺性
級別更多是代表對應(yīng)人才在其組織、行業(yè)中的稀缺性,并且往往只有內(nèi)部縱向比較意義,一旦跨組織,其意義就很有限。
在創(chuàng)業(yè)公司里的CTO,很有也就是大公司的高工(高級軟件工程師)出身;而默默無名的獨(dú)立開發(fā)者,也有可能成為行業(yè)巨擘。
在一些新興的領(lǐng)域比如最近很火的人工智能,入門的門檻很高,人才比較稀缺。一些名校的博士生可能一畢業(yè)就可以成為“高級”、“資深”AI工程師。
相對來說,比如前段計算的門檻不高,并且技術(shù)日新月異。所以前段工程師可能需要很多年的積累,才能說的上“登堂入室”。
開頭說的大廠的級別似乎可以成為業(yè)內(nèi)通用貨幣,為何是這樣呢?
因為大廠的規(guī)模和業(yè)務(wù)都很龐大,一些大公司之間,由于業(yè)務(wù)上有重疊,并且經(jīng)過長期的人才流動(跳槽),在市場的調(diào)節(jié)之后,互相之間的級別形成了一些對接。不但國內(nèi)的大廠有這樣的現(xiàn)象,國外的大廠之間也會有這樣的情況。
而一些規(guī)模較小的公司,可能聚集了一些大廠的程序員,或者創(chuàng)始人本身從大廠畢業(yè),也會傾向于從大廠去借鑒級別系統(tǒng)。但是正如上面所說,由于受到公司規(guī)模的限制,吸引到的人才分布不可能和大廠保持一致,其級別可信度就會比較低。
小公司的級別是否一定是有水分呢?也不竟然。這里得分公司和不同的崗位。
技術(shù)驅(qū)動型公司的核心程序員崗位,尤其需要技術(shù)過硬甚至是行業(yè)領(lǐng)軍的人物。 在這樣的公司里,可能掛著軟件工程師頭銜的員工都是在其他公司都是高級軟件工程師以上的職務(wù)。
業(yè)務(wù)驅(qū)動型的公司,更多的會靠銷售團(tuán)隊來推廣業(yè)務(wù),技術(shù)團(tuán)隊往往并不是決定公司發(fā)展的關(guān)鍵。在這樣的公司里,往往可以看到高級程序員多是公司元老,并且主要的職責(zé)是管理,讓更多的程序員更高效的為產(chǎn)品服務(wù)。
級別不是衡量單維度的能力
對于程序員的級別到底應(yīng)該對應(yīng)何種能力,有很多極左或極右的認(rèn)識。
極左派認(rèn)為級別越高的程序員應(yīng)該寫代碼越厲害。那么到底什么是厲害?
厲害是算法的能力嘛?如果是這樣的話那些國際編程競賽的金牌們應(yīng)該是最頂級的程序員,但顯然不是。
厲害是做產(chǎn)品的能力嘛?Linux之父Linus一個人在1994年就寫出了第一版Linux內(nèi)核,然而他1998年加入全美達(dá)公司后也只遠(yuǎn)遠(yuǎn)不是最高級別的技術(shù)人員(CTO或者是VP of Engineering)
極右派認(rèn)為級別越高的程序員代碼能力越不重要。
他們覺得級別高的程序員只是會吹牛,或者會做PPT,把身下的程序員的功勞都攬在自己身上。
從一個角度上來說這是倒果為因,級別越高的程序員往往寫代碼的時間很少,而并不是他們的代碼能力不行??v觀各個公司的技術(shù)高級職位,鮮有之前沒有在一線技術(shù)崗位干過很長時間的。比爾蓋茨、雷軍這些大家耳熟能詳?shù)娜宋锒际羌夹g(shù)出身,并且技術(shù)能力都很強(qiáng)。
無論是極左派或者極右派,他們都忽視了一個事實:程序員的級別不應(yīng)該只是衡量單維度的能力。
軟技能和硬技能
一個人的技能可以分為硬技能(Hard Skills)和軟技能(Soft Skills)。
對于程序員來說,硬技能包括并不限于算法,設(shè)計,實現(xiàn),測試,架構(gòu)等多個方面。高級程序員不比是寫代碼快,也不是比寫的代碼多,更不在于能寫出多么“精妙”的代碼。
程序員的硬技能實力應(yīng)該表現(xiàn)在:
解決難的,復(fù)雜的,抽象的問題。
設(shè)計和實現(xiàn)出高效、可擴(kuò)展、可維護(hù)的軟件、框架、系統(tǒng)。
推動組內(nèi)、組間的技術(shù)方向發(fā)展。
如果你觀察一些公司里的大拿程序員,他們都或多或少的會在以上的方面展示過人的一面。做好以上的幾點(diǎn),可以讓程序員變成一個好的“技術(shù)人”。
在硬技能方面之外,同樣還有軟技能,程序員的軟技能包括:
學(xué)習(xí)能力——快速掌握自己所不擅長的領(lǐng)域,并結(jié)合自身實際吸收和運(yùn)用。
溝通能力——和技術(shù)和非技術(shù)性同事之間的進(jìn)行高效流暢的溝通,能夠接受和傳達(dá)必要的信息。
協(xié)調(diào)能力——分清任務(wù)輕重緩急,把握住短期目標(biāo)和長期目標(biāo)之間的平衡,解決人與人之間的沖突。
……
程序員的軟技能和硬實力同樣重要,有的時候甚至要大于硬實力,為什么呢?
因為往往你不是一個人在工作,一個人的輸出和團(tuán)隊相比是很有限的。一個人的硬技能再強(qiáng),也突破不了自身的物理極限(時間、身體),而現(xiàn)代化的企業(yè)中,需要團(tuán)隊的合作,才可以在短時間內(nèi)完成龐大的工作。
再說Linus,他的硬技能強(qiáng)到可以一個人去寫操作系統(tǒng),但是在所在他的公司里也不能做到最高級別的技術(shù)人員,究其原因,一個是他可能沒有野心不想去做,另一個重要原因是他的軟技能——特別是溝通能力上有很大的缺陷。如果由他來帶領(lǐng)團(tuán)隊的話,那么可能還達(dá)不到他一個人的輸出能力。
但我們是否可以一味的只追求軟技能的提升軟技能,而不重視硬技能的發(fā)展呢?軟技能不是萬能的,軟技能也要硬技能做為依托。 學(xué)習(xí)、溝通、協(xié)調(diào)能力都是基于你自身對需要學(xué)習(xí)、溝通、協(xié)調(diào)的對象(技術(shù))有清晰的認(rèn)識,而這些認(rèn)識來自于你的硬技能儲備。一個剛畢業(yè)的程序員,無論他的軟技能多么逆天,沒有技術(shù)上的積累,也很難勝任高端的職位。
我們可以用一個公式來總結(jié)一下:
程序員的影響力(Impact)∝自身的硬技能 *自身的軟技能 +所在團(tuán)隊的能力 *自身軟技能
如果理解了這個公式,那么對于第一段中各個公司的級別不對稱現(xiàn)象就有清晰的認(rèn)識,我們可以分析以下一些團(tuán)隊的例子:
高技術(shù)小團(tuán)隊 =》 強(qiáng)調(diào)單兵技術(shù)作戰(zhàn)能力 =》程序員的級別 ∝自身的硬技能
低技術(shù)小團(tuán)隊 =》 強(qiáng)調(diào)單兵技術(shù)作戰(zhàn)能力和協(xié)力其他團(tuán)隊的能力 ≈程序員的級別 ∝硬技能(少) *自身的軟技能
高技術(shù)大團(tuán)隊 =》 需要協(xié)調(diào)高技術(shù)人才 =》程序員的級別 ∝自身的硬技能(多) *自身的軟技能
低技術(shù)大團(tuán)隊 =》 需要充分的協(xié)調(diào)、管理能力 =》程序員的級別 ∝自身軟技能
總結(jié)
每個人都有自己擅長的和不擅長的,能夠揚(yáng)長避短則事半功倍,反之盲目的追求不合適自己的高級級別,則事倍功半??辞遄约旱拈L處和短處,尋找最適合發(fā)揮自己的空間,這樣升級也會順利不少。
希望看完這篇博文,能夠讓大家開啟思索自己的升級之道,也祝大家早日步步高升。
-
程序員
+關(guān)注
關(guān)注
4文章
952瀏覽量
29817
發(fā)布評論請先 登錄
相關(guān)推薦
評論