這是來自知乎的問題晨缴,是一個大二學生問的,說老師在講課時說峡捡,從工資來看喜庞,后端開發(fā)要比前端高,并且說棋返,掌握公司核心技術的都是后端。他問事實是否真的如此雷猪,然后問該如何規(guī)劃自己的工作睛竣。
這里整理的是個匿名答案,答主應該是在網易工作過求摇,后來去了阿里射沟。答案很有參考意義,特此整理出來(原回答的大小寫有部分錯誤与境,未一 一修正)一起學習討論验夯。分兩部分:
前端和后端的工資真像
前端的職業(yè)發(fā)展
一、前端工資比后端低嗎摔刁?
我可以負責任的告訴題主:據我所知挥转,至少在杭的網易、阿里,前端跟后端是一個薪酬水平绑谣。
關于以上党窜,我說的是業(yè)務層的。假如你非得說開發(fā)Web 3D引擎的前端比一個普通的Java價格貴借宵,或者玩hadoop的數據研發(fā)比一個普通前端高這就是屬于杠精了幌衣。
我們指的前后端,一定是web開發(fā)的前后端壤玫,屬于web業(yè)務開發(fā)豁护。不然寫中間件、大數據的后端欲间,寫web 3D引擎楚里、前端框架設計的前端,都屬于脫離傳統(tǒng)web開發(fā)的范疇了括改。
我指的是同水平的情況下腻豌,因為個體的差異十分大,但是普遍一個P6/7的前端跟一個P6/p7的后端是一個價格嘱能。
所以吝梅,老師對行業(yè)的一些看法并非可以全信,來知乎問問是好的惹骂;但是知乎上每個人的觀點也不一樣苏携,現(xiàn)在就有人說后端價格更高這個觀點,我再給你講得詳細一點对粪。
1. 一定程度上上持后端薪資更高的觀點也是對的右冻。為什么?如果你算一下阿里前端的平均薪資和后端平均薪資著拭,一定是后端高纱扭。
因為前端的地位提高,就這幾年的事情±苷冢現(xiàn)在你去阿里p7前端跟后端(阿里后端就是java)是一個價格乳蛾,可是之前一定是后端高,加之后端在阿里創(chuàng)建之初就有了鄙币,很多后端出身的人早進入管理層了肃叶。但是他們依然是掛著p9/p10的頭銜的后端,前端不過是10年前后才發(fā)力的十嘿,p10以上的前端其實就那么一兩個因惭。
嚴格來講到了p10這個級別已經沒什么前后端這一說了;只不過是前端出身或者后端出身而已绩衷。如果是一路走技術路線上來的蹦魔,前后端啥的都是通吃的激率。如果走的管理,其實已經不算技術了版姑,那就是純粹的管理柱搜。
所以,你現(xiàn)在根本不用擔心這些問題剥险,現(xiàn)在批發(fā)價是一樣的聪蘸,因為不管是平均數怎么樣,到自己手里的才是王道表制。
2.個體差異很大健爬,即使同一個級別拿的也有多有少。我其實在同級別的工程師里是屬于最高薪那個級別的么介,雖然討論薪資是高壓線娜遵,但是每個員工都或多或少知道自己的情況。
當時去阿里時壤短,我開的價格很高设拟,一個原因是我當時并不想離開網易。如果不到一定價格我是不會走的久脯,還有一個原因是纳胧,想探一下自己的價值到底有多高。
這就牽扯到一個程序員生存策略了:每年一定要拿出兩個月出去面試——不管你要不要走帘撰。需要不斷評估自己的價格跑慕,和發(fā)現(xiàn)自己身上的缺點及時彌補。
很多程序員不知道自己值多少錢摧找,要么不敢要工資核行、要么獅子大開口。想知道自己值多少蹬耘,去市場上試水是做好的辦法芝雪。要記住一點:你的價格是市場決定的,而不是你的能力综苔。你的能力惩系,在穩(wěn)定市場情況下可以跟價格成正比。但是市場永遠不是穩(wěn)定的休里。看看當年的安卓/ios多風光赃承,再看看現(xiàn)在妙黍,人還是那批人,市場卻要涼了瞧剖。
3.不管是前端還是后端只是個敲門磚拭嫁。很多年輕(其實我也挺年輕的)的小伙伴們都有一些執(zhí)念可免,比如打算寫一輩子Java成為Java大牛,走向人生巔峰做粤,其實想法是好的浇借,但是不可取。
我們從技術角度來說怕品,因為寫一輩子Java是當不了Java大牛的妇垢,你依然需要學習JVM系的Scala、Kotlin肉康,更底層的c/c++闯估,還有Go、Erlang這些擁有Java不同哲學的語言吼和。最后涨薪,發(fā)現(xiàn)你Java只是你的敲門磚,真正讓你成為Java大牛的是你懂的不同語言的哲學炫乓,懂得不同場景下發(fā)揮出Java的優(yōu)勢刚夺,規(guī)避Java的劣勢,深知Java的優(yōu)缺點末捣。而不是抱著Java是最好的語言侠姑,寫一輩子Java。
從職業(yè)生涯的角度來說塔粒,注意我在前文中用描述高P的工程師的詞匯结借,『xx出身』。對于高P而言,沒有前后端拇砰。前后端只是敲門磚遭京,因為我們今天討論的Web業(yè)務層面的開發(fā),說實話都是處于計算機難度底端的玩意柳畔。之于一些答主說的鄙視鏈,其實就是中國隊鄙視泰國隊郭赐,菜雞互啄薪韩。
在Web這條線上想走到高P,基本上都是走業(yè)務架構這條路捌锭,這考驗的就是大局觀了俘陷。你只會一個前端或者一個Java根本不夠格。純粹研究技術上P10的基本上屬于蜀道難了——說的清楚點观谦,對于傳統(tǒng)的Web開發(fā)工程師(前后端)不通過管理走高P基本上只有往架構方向走拉盾,這個時候靠的是你全面的能力和良好的大局觀,你當初的那些前端技術、后端技術就是個敲門磚豁状。
p10以上還能純玩技術的我指出幾個方向捉偏,算法相關崗位(深度學習倒得、計算機視覺等)、數據相關崗位夭禽、圖形學相關崗位(比如網易開發(fā)游戲引擎的大牛等)霞掺、大規(guī)模系統(tǒng)的底層相關(阿里云)、安全相關讹躯。
普通的web開發(fā)菩彬,即使前端寫出花、后端寫得上天了蜀撑,也無法靠純技術走到高P挤巡。請時刻認知到自己處于計算機難度的最底層就行了,因為前后端技術本身沒什么高深的酷麦,基本上都是工業(yè)界實踐的結果矿卑。你看到很多xx公司從xx實驗室、xx高校挖了個深度學習專家沃饶、數據科學家母廷,你見過挖了個某教授來做web開發(fā)了?
總結:
1. 前后端目前在大廠至少是一個批發(fā)價。
2. 你作為一個個體能拿多少取決于市場糊肤,也取決你的個人能力和談判能力琴昆,更平均薪資無關。
3. 不管是前端還是后端馆揉,只是你之后發(fā)展的敲門磚业舍,傳統(tǒng)web開發(fā)沒有難度可言,想走高P懂前后端升酣,是最最起碼的要求舷暮。
二、如何規(guī)劃自己的職業(yè)噩茄?
最后下面,題主問到如何規(guī)劃自己的事業(yè)。上文說的很清楚了:前端只是你的敲門磚绩聘。下面沥割,談談幾個靠前端敲門后的大方向:
1. web開發(fā):前端、后端是web開發(fā)的兩個端凿菩,其實同城web開發(fā)机杜,在很多國外公司沒前后端這個說法,都叫做『軟件工程師』或者web developer衅谷。其實椒拗,要轉換一個思想:前后端并不是對立的,而是純粹的一家人会喝。只是被國內外的一些市場強行分成了前后端陡叠,歸根到底,是需要前后端都懂得,所以在你保持前端高水平的情況下,精進一些后端技術是必要的,但是要分清主次,前端為主肢执。
2. 數據方向:以后數據就是互聯(lián)網時代的石油嘛枉阵,這個方向也不錯。在前端這邊就是可視化相關的技術,在阿里這邊有大量的數據可視化實踐预茄,因為阿里號稱自己是數據公司(中石油?)兴溜。想做這一行建議搜知乎相關如何入門。提前說下耻陕,并不是用echarts渲染個圖表就叫可視化了拙徽,這行水非常深。在高校有很多這個方向的研究人員诗宣,所以搜浙大陳為了解下膘怕,反正逼格比web開發(fā)高是一定的,以后再精進也還是離不開大數據相關的東西什么hive召庞、hadoop之類的岛心,可視化是整個數據鏈路最外層,最后走高P還是需要理解整個鏈路層的篮灼。
進一步說忘古,web開發(fā)分web前端和web后端,是以web服務的角度來看待的诅诱,數據研發(fā)這個是在web開發(fā)的基礎上用數據附能髓堪,懂可視化的一定是有前端能力的,懂hadoop的一定java玩的溜娘荡,屬于web開發(fā)的拓展方向干旁。
3. 大前端方向:上文提到,移動端的ios/安卓早就式微了它改,但是并不代表死了疤孕。只是所有公司都意識到,沒必要上原生開發(fā)了央拖。知道養(yǎng)安卓/ios/web三個團隊多浪費錢嘛祭阀,就那么點的用戶量和難度,創(chuàng)業(yè)期直接all in小程序就行了鲜戒;等做大了再上安卓/ios专控,而且也不用全上,30%的native+70%hybrid用戶根本看不出差異遏餐,而且成本和效率不知道強了多少伦腐。一些大廠,比如阿里失都,在大量實踐rn和weex柏蘑;由于公司內部安卓/ios式微幸冻,一定程度上,前端把ios和安卓收編了咳焚,統(tǒng)稱大前端(還有node)洽损。比較出名的,是餓了么和美團革半,這種收編一定程度上也是政治的需要碑定。像美團這種企業(yè),一定是重后端的又官。距劉平川說收編完安卓/ios后加上node團隊延刘,大前端人數與后端持平×矗可以想象大前端的leader的話語權了:學一點ios/安卓沒壞處碘赖。
4. 圖形學方向:圖形學的集大成者無疑是游戲行業(yè),當然阿里也有自己的游戲業(yè)務,前端自然是與圖形學有千絲萬縷的聯(lián)系外构,除了上面提到了可視化崖疤,還有相關3d引擎的開發(fā)工作。比如典勇,玉伯的團隊正在內部孵化antG(未開源)劫哼,淘寶那邊已經有前端3d引擎的開源項目,支付寶內部的螞蟻森林割笙,就是前端開發(fā)的权烧。用的正是canvas/webgl相關的技術。做這一行要求也非常高了伤溉,圖形學相關的算法般码,3d引擎的開發(fā),這都需要圖形學相關知識乱顾。要嚴格來講板祝,很難算傳統(tǒng)意義上的前端了,更像是圖形學在瀏覽器端的應用走净,之后發(fā)展肯定是需要借鑒傳統(tǒng)圖形學的方案券时,所以c/c++少不了,同時伏伯,3d/2d在瀏覽器端吃性能橘洞,需要webassembly加持,native語言是更少不了了说搅。
總之炸枣,要么在廣度上下功夫,要么在深度上下功夫,其目的就是在技術上高出其他人一個維度适肠。
來自知乎霍衫,匿名用戶
https://www.zhihu.com/question/268677313/answer/386910532
如果大家還有其他的看法,歡迎大家在評論里跟小編進行討論侯养,也可以關注微信公眾號【筑夢前端】慕淡,跟小編一起探討更多的編程小知識。