ul Haq CSDN
在職業(yè)發(fā)展初期,薪水并不一定是最重要的因素,但它是你付出的回報,并且反映出雇主對特定技能的重視/認可程度。
作者 | Fahim ul Haq
譯者 | 風車云馬,責編 | 劉靜
出品 | CSDN(ID:CSDNnews)
以下為譯文:
作為一名軟件開發(fā)人員,無論是經(jīng)驗豐富的專業(yè)人員還是剛剛起步,您一定需要學習新語言、新框架和新工具。如果你想在就業(yè)市場上保有競爭力和獲得高薪待遇,這是至關(guān)重要的。
本文將談一些最受歡迎的技術(shù),學習這些技術(shù)會對你的薪水產(chǎn)生什么影響。我知道在職業(yè)發(fā)展初期,薪水并不一定是最重要的因素,但它是你付出的回報,并且反映出雇主對特定技能的重視/認可程度。通過本文,你會了解一些技術(shù)的發(fā)展趨勢,對今后的職業(yè)生涯有所幫助。
本文中的薪資數(shù)據(jù)是基于那些有0-2年工作經(jīng)驗,并在中小型企業(yè)(101-500名員工的規(guī)模)工作的開發(fā)人員。所有數(shù)據(jù)的地理分布都在西雅圖和華盛頓地區(qū)。
那里的薪資在整個行業(yè)中都保持良好,可以作為你未來工資的基本指標,當然,這不是精確預(yù)測。薪水會根據(jù)行業(yè)、地域、公司規(guī)模、你自己的經(jīng)驗水平、面試熟練程度、談判技巧以及其他一些因素而有所不同。
我應(yīng)該先學什么編程語言?
這當然是有爭議的,但是有一些主要的語言是初學者應(yīng)該關(guān)注的:Python、Java、c++和JavaScript。主要有以下幾個原因:
· 這些語言的開發(fā)人員需求量較大,不愁找工作。
· 它們相對比較容易學習。
· 它們會幫助您像開發(fā)人員那樣思考,在編程邏輯和語法方面打下堅實的基礎(chǔ)。
· 它們有無數(shù)的資源可以學習。
在做決定之前,你應(yīng)該問自己一個問題:“我想進入編程的哪一領(lǐng)域?”你對前端開發(fā)、后端開發(fā)或兩者都感興趣嗎?這將指導(dǎo)你選擇第一語言。
下圖顯示了上述幾種語言的開發(fā)人員的平均工資。
Python
Python開發(fā)人員得到了最豐厚的報酬,平均工資約為95,706美元。Python在其各種應(yīng)用程序中發(fā)展迅速,從游戲/web開發(fā)到數(shù)據(jù)科學和機器學習,因此對Python開發(fā)人員的需求很高。
Python幾乎可以服務(wù)于任何用例;它靈活、強大,而且易于學習。它是一種高級語言,代碼易于閱讀,也沒有那些令人困惑的語法。
無論您想從事什么工作,Python都將是一項非常有價值的技能,并且在任何職業(yè)中都非常有用。
Java
Java通常是雇主最青睞的語言之一,因為它的簡單性和廣泛的適用性。專攻Java的開發(fā)人員找到體面的工資沒有一點問題,平均工資為88,483美元。
雖然Java歷來被許多公司視為最需要的技能,但是Python正在超越它,因為它所服務(wù)的用例更加廣泛。但與Python相比,Java有更多的學習曲線,因此仍被認為是更簡單的語言之一。
Java開發(fā)人員喜歡各種領(lǐng)域的應(yīng)用——從電話到游戲機再到數(shù)據(jù)中心,Java軟件可以在任何地方運行。這令Java開發(fā)人員激動人心,因為Java語言在不斷地發(fā)展,這給了您一個站在新技術(shù)前沿的機會。
如果您真的想成為一名專業(yè)的開發(fā)人員,那么擁有一些Java經(jīng)驗也無妨。
C++
如果你想與眾不同,那就挑戰(zhàn)c++吧。剛開始的時候,c++開發(fā)人員的平均工資約為88,190美元,但有很大的發(fā)展空間。為什么?由于在自動駕駛汽車和物聯(lián)網(wǎng)等領(lǐng)域的應(yīng)用,c++正在經(jīng)歷“第二人生”。
此外,c++是一門相當難掌握的語言,隨著越來越多的開發(fā)人員傾向于其他多用途語言,對有能力的c++開發(fā)人員的需求只會越來越大。如果你堅持下去,相信回報一定會很高。
可能c++剛?cè)腴T有些難學,但是它將幫助您成為更好的開發(fā)人員,您了解計算機、編譯器和語言的工作方式,并最終了解您的程序如何影響系統(tǒng)。c++離匯編代碼只有幾步之遙,它將使您對編程的構(gòu)建塊有更深入的了解。
如果你真的想了解編程的核心,那么c++是一個很好的入門語言。
JavaScript
如果您想做前端或全堆棧開發(fā),那么JavaScript是一種必須了解的語言。剛開始工作時,你期望的平均工資大約是87,903美元。
JS的偉大之處在于,它是一種容易上手的語言,F(xiàn)acebook等公司正在創(chuàng)建有用的庫和框架(如React),讓JS開發(fā)變得更容易、更快。
現(xiàn)在是JavaScript開發(fā)人員的大好時機,因為其通用性和健壯性得到了很多改進。
接下來我應(yīng)該學習什么編程語言?
一旦你選擇了前端或后端,并且在你的第一語言中獲得了堅實的編程基礎(chǔ),那么是時候去探索其他的東西了。下表按編程語言顯示了開發(fā)人員的平均工資。
當你開始選擇時,找到一門挑戰(zhàn)你現(xiàn)有思維過程的語言是一個很好的練習。例如,如果您一直使用函數(shù)式編程原則,那么可以嘗試使用一種面向?qū)ο笤瓌t的語言,反之亦然。這樣做可以拓寬你的技能,讓你能夠輕松地融入不同的團隊。這對于早期的開發(fā)人員來說尤其重要。
一定要記住,某些編程語言更適合解決特定類型的問題,所以您應(yīng)該考慮每種語言的用例、優(yōu)點和缺點。
考慮到這一點,除了第一部分中提到的四種語言(Python、Java、c++、JavaScript),還有一些其他值得研究的語言。
對于Java開發(fā)人員來說,Scala是一門極具挑戰(zhàn)性的語言。它將函數(shù)式和面向?qū)ο蟮木幊谭庋b成包,讓您可以自由地以各種風格編程。
對于Python開發(fā)人員,您可能想要查看c++。在你的職業(yè)生涯中,c++是一門非常值得學習的語言,因為你將開始真正理解編程和計算機是如何工作的,而不像高級語言(如Python)那樣對你隱藏許多基本的操作。
對于c++開發(fā)人員,您應(yīng)該考慮學習Rust或者Go。c++的一個常見缺陷是它很難處理內(nèi)存管理和并發(fā)方式。像Rust和Go這樣的語言使用了一種不同的內(nèi)存管理模型,這使得創(chuàng)建安全、并發(fā)的程序變得更加容易。
為什么Scala和Go的平均工資這么高?隨著Scala的不斷改進,很多公司開始注意并迅速采用,根據(jù)需要構(gòu)建可伸縮的程序。Scala通常也用于企業(yè)設(shè)置,這也是平均起薪如此之高的原因。
至于Go,它是一門相對較新的語言,有一些很棒的功能,精通它的開發(fā)人員較少。尤其是對企業(yè)來說,需求量很大。它非常適合現(xiàn)代使用微服務(wù)體系結(jié)構(gòu)的開發(fā)和程序。對Go開發(fā)者的需求正在迅速增長,這也是他們能賺這么多錢的部分原因。
對于JavaScript開發(fā)人員,您應(yīng)該學習HTML和CSS,同時花一些時間學習一些可用的庫和框架(React.js, Angular.js, Node.js, Vue.js)。
無論你接下來選擇學哪門語言,都要清楚自己的職業(yè)道路。例如,對于c++開發(fā)人員來說,學習諸如HTML之類的東西并不一定有用,因為它們的用途非常不同。
前端開發(fā)者:在JavaScript之后我應(yīng)該學習什么?探索這些框架和庫
如果沒有框架和庫,JS就不會有今天的樣子。下圖顯示了專門從事該技術(shù)的開發(fā)人員的平均工資??梢?,同樣都是JS的開發(fā)人員,但是如果采用了這些不同的框架或庫時,會大有不同。
StackOverflow的《2019年開發(fā)者調(diào)查》顯示,JQuery、React.js和Angular.js是最流行的庫和框架。它們在行業(yè)內(nèi)廣泛使用,雖然它們有一些相似之處,但它們的核心是不同的,通常用于解決不同的問題。JQuery可能是開發(fā)人員社區(qū)中最流行的,但它在現(xiàn)代前端開發(fā)方面的相關(guān)性越來越小。
有趣的是,當您增加JQuery技能時,數(shù)據(jù)顯示的薪水反而“減少”。雖然這有點夸張了(你的薪水不見得就會降),但這確實說明了一個事實:公司對JQuery并沒有表現(xiàn)出很大的興趣——至少那些支付高薪的公司沒有。
如果您對全棧開發(fā)感興趣,那么您應(yīng)該花一些時間在非常流行的Node.js上。上面提到的庫和框架用于客戶端,而Node.js用于服務(wù)器端。js與一個好的框架結(jié)合起來,正是您構(gòu)建web應(yīng)用程序前端和后端所需要的。
最后,您應(yīng)該選擇最熟悉的框架或庫,并滿足需要解決的問題。
如果您了解JS,那么最好分配一些時間來學習這些技術(shù)。它將有利于您的職業(yè)生涯,并會提高薪水。
發(fā)展你的技能
目前有很多庫、框架和工具,并不是每種工具都適合每個開發(fā)人員,所以要明智地投資您的時間。
以下是一些非常突出的技術(shù),你可以研究,每一個技術(shù)可能會對你的工資產(chǎn)生什么影響。
有趣的是,當你增加了Ansible和.net作為技能時,薪水會“下降”。雖然對你來說可能不會有實際的工資下降,但這可能說明了這樣一個事實:那些支付高薪的公司并不追求這些技術(shù)。
Kubernetes和Docker已經(jīng)席卷了整個世界,而對于了解這些工具的開發(fā)人員的需求可能會繼續(xù)大幅增長。如果您想學習一種新工具,那么可以試試這些技術(shù)。
如果您是一名Python開發(fā)人員,并且對機器學習感興趣,那么您可以查看TensorFlow和pandas。
找到一個適合你的數(shù)據(jù)庫系統(tǒng)
有很多數(shù)據(jù)庫可供選擇:有基于sql的,有基于nosql的,也有同時使用的,所以建議你花點時間學習兩者。然而,像Redis和MongoDB這樣的NoSQL數(shù)據(jù)庫是開發(fā)人員首選的DBMS。
如果您只想集中在一個方向上,那么首先需要決定如何組織數(shù)據(jù)。您希望它是關(guān)系還是非關(guān)系?在此基礎(chǔ)上,最好了解每種DBMS的優(yōu)缺點。許多開發(fā)人員喜歡使用MongoDB,因為它有類似json的文檔存儲方法。
除此之外,我們看到對從事Redis的開發(fā)人員的需求也很大。
如果您不確定要選擇哪個數(shù)據(jù)庫,請查看此關(guān)系圖以快速了解SQL和NoSQL數(shù)據(jù)庫。
云平臺
對現(xiàn)代開發(fā)人員來說,處理云計算是一項重要的任務(wù)。您需要熟悉在一個云平臺上構(gòu)建和部署軟件。如果我們選擇一個云平臺做基礎(chǔ)開發(fā),數(shù)據(jù)顯示AWS目前的需求略高。
那么谷歌云平臺(GCP)呢?我把它從報告中排除了,因為數(shù)據(jù)太有限了,無法得出有意義的結(jié)論。
移動操作系統(tǒng):Android和iOS
你想為Android還是iOS開發(fā)應(yīng)用程序?對于Android,最常用的語言是Java,而對于iOS則是Objective-C。雖然下面的細分顯示iOS開發(fā)者通常會多賺一點,但Android正迅速成為開發(fā)者的首選操作系統(tǒng)。
StackOverflow的《2019年開發(fā)者調(diào)查》指出,Android是使用最多的移動操作系統(tǒng)。
結(jié)論
值得重申的是,對于開發(fā)者來說,薪水并不是最重要的,你個人的興趣和愿望才是主要的考慮因素。如果你打算投入時間學習一些東西,那么知道能獲得什么樣的回報也是很有必要的。
不管你在職業(yè)生涯中處于什么位置,不管你現(xiàn)在有沒有學習新技能的計劃,探索和了解哪些技術(shù)正朝著什么方向發(fā)展總是有好處的。
原文鏈接:https://dev.to/educative/what-software-technologies-will-earn-you-the-highest-pay-3fc3
本文為 CSDN 翻譯,轉(zhuǎn)載請注明來源出處。