每個程序員都需要學習 JavaScript 的7個理由小結
最近在和招聘經(jīng)理交流現(xiàn)在找一個好的程序員有多難的時候,我漸漸意識到了現(xiàn)在編程語言越來越傾重于JavaScript。Web開發(fā)人員尤其如此。所以,如果你是一個程序員,那么你應該去學習JavaScript。
需求
我之所以這樣說的主要原因是,隨著JavaScript的日漸成熟,以及Node.js方案變得越來越可行,我們對JavaScript程序員的需求正在持續(xù)增長。 JavaScript在需求比例上已經(jīng)超過了C#,僅屈居于Java之下。如果你看看GitHub上可行的項目,你會發(fā)現(xiàn)JavaScript出現(xiàn)得越來越多,甚至領先于Java和C#。最后,再看看StackOverflow,你會發(fā)現(xiàn)JavaScript也處于頂層活躍中。
更好的薪酬
根據(jù)SitePoint,JavaScript的薪資要高于C#。當然,雖然現(xiàn)在Java的薪水還是比JavaScript高上那么一點。但隨著JavaScript需求的增長,你可以預見它的薪酬肯定會提高。
在Gooroo,關于薪酬VS需求呈現(xiàn)的畫面略有不同。雖然我們對JavaScript的需求是顯而易見的,但是很明顯,幾種需求較小的語言反而薪酬更高。我懷疑這是因為許多公司仍然認為JavaScript是任何一個程序員都會用的語言。但是,當他們認識到“任何一個程序員都會JavaScript”,實際上是“任何一個程序員只會寫蹩腳的JavaScript代碼”的時候,也是他們經(jīng)歷慘痛教訓的時候。然后需要真正的JavaScript程序員進入清理留下的爛攤子。
在StackOverflow,我們看到了一份非常詳細的關于開發(fā)人員在過去三年時間中的歸類。當你最后看到“使用的技術”部分的時候,我們發(fā)現(xiàn),如果你稱自己為JavaScript程序員(這里假設是在客戶端),那么你得到的報酬雖然比C#程序員低,但會比Java程序員要好,但如果你說自己是一個Node.js程序員(全JavaScript),那么你能拿到第二高的工資。唯一比Node.js還高的是Objective-C(我假設以后會是,Swift)。
JavaScript正日趨成熟
新的JavaScript標準每年都會發(fā)布,而且現(xiàn)在很明顯,被添加到JavaScript的語法糖 (Syntactic Sugar)的數(shù)量每年都在增加。其中一個我期待的功能是,能在我的JavaScript代碼中使用異步和await關鍵字,以消除回調地獄(callback hell)。
你越早開始學習JavaScript,那么學習起來就越容易。所有的改變都是循序漸進的,就像瀏覽器正在不斷地改進處理JavaScript代碼的能力??梢灶A見在不久的將來,瀏覽器不僅可以緩存JavaScript文件,還可以緩存JavaScript文件的編譯版本。
JavaScript程序員更能被委以重任
大概在一年前我和我的一個老朋友聊天的時候,他提到,他是他們小組(約20個程序員)唯一一個用這樣的方式寫JavaScript以消除變量對全局范圍的污染的程序員。這只是最簡單的例子。很多人稱自己為JavaScript程序員,卻不知道這些基本知識。所以,JavaScript大有可為。
而且不要忘了,現(xiàn)在很多支持性能分析和內存泄漏的工具才剛處于起步階段。如果你現(xiàn)在就掌握了這些技能,那么將來肯定可以更好地推銷自己。
如果你對這一類東西感興趣,那么可以閱讀PluralSight上的一些課程。只要搜索“JavaScript profiling”即可。
日趨完善的框架
Angular的新版本正在開發(fā)中,而且還有Aurelia作為候選。商業(yè)產(chǎn)品如Scencha的EXTjs。還有用于服務器端編程的Node.js。等等等等。用JavaScript開發(fā)實際的應用程序并不太難。我敢保證,如果我愿意的話,我完全可以只用JavaScript來寫一個可以運行的桌面應用程序。嘿嘿。
JavaScript無處不在
JavaScript可運行在所有主要平臺的所有主流瀏覽器上,也可運行在每一個主流操作系統(tǒng)的服務器端上?,F(xiàn)如今我們在為網(wǎng)站寫任何一個主要功能的時候都需要有懂能夠用JavaScript寫前端的開發(fā)人員。而后端代碼是用什么編寫的則無所謂——不管是Java,PHP,.NET,Node.js還是其他——但是客戶端就一定需要一個JavaScript開發(fā)人員。事實上,現(xiàn)在很多開發(fā)人員依然沒有認識到JavaScript有多么強大。不知道正在閱讀的你是否也是這些井底之蛙的一員。如果你確實是一個了不起的JavaScript程序員,那么基本上所有有關于服務器端平臺的工作都能夠勝任。如果再了解這些平臺基本上就可以上任了。
JavaScript是一種編譯語言
這也許會嚇你一跳,從技術上說,JavaScript是一種編譯語言。這有兩個含義。首先,一旦代碼被編譯,它的運行速度或許就能媲美于任何其他可執(zhí)行文件。其次,為JavaScript寫工具在技術上是可行,并且將會創(chuàng)建一個不必每次加載代碼到內存中時就重新編譯的二進制文件。
你有什么感想?
當然,以上都是我的觀點。你有什么感想嗎?歡迎不吝賜教。
英文原文:7 Reasons Every Programmer Needs to Learn JavaScript
翻譯作者:碼農網(wǎng) – 小峰
相關文章
Javascript中eval函數(shù)的使用方法與示例
JavaScript有許多小竅門來使編程更加容易。其中之一就是eval()函數(shù),這個函數(shù)可以把一個字符串當作一個JavaScript表達式一樣去執(zhí)行它。以下是它的說明2007-04-04溫故知新——JavaScript中的字符串連接問題最全總結(推薦)
這篇文章主要介紹了JS中的字符串連接問題,ECMAScript 中最常見的一個問題是字符串連接的性能。在調用 join() 方法時才會發(fā)生連接操作,具體操作步驟大家可查看下文的詳細講解,感興趣的小伙伴們可以參考一下。2017-08-08js實現(xiàn)unicode碼字符串與utf8字節(jié)數(shù)據(jù)互轉詳解
這篇文章主要介紹了js實現(xiàn)unicode碼字符串與utf8字節(jié)數(shù)據(jù)互轉,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-03-03javascript Window及document對象詳細整理
注:頁面上元素name屬性以及JavaScript引用的名稱必須一致包括大小寫否則會提示你1個錯誤信息 引用的元素為空或者不是對象2011-01-01