還在為工作發愁?學JavaScript吧

Areos Ledesma, Will Asrari發表於2015-05-11

事實上,每家專業招聘機構,從Glassdoor.com和Linkedin到美國勞工部,都報導了就業市場對開發人員需求的增長速度出於意料地快。這種需求可能已經不新鮮了,但是就業市場對哪種開發語言的需求量最大,依然是個熱門話題。雖然對HTML5技能的依然需求保持穩定,但真正必須掌握的語言就是JavaScript。

在Monster網站的技術求職趨勢報告中,特別指出了JavaScript是必須掌握的幾門技能之一,這要得益於企業級Web應用的增長。在2015年1月,Mashable網站列出了對於開發人員來說最重要的15項技能,JavaScript排在第二。相比前幾年JavaScript並不受歡迎,這種變化很明顯。部落格作者Glen Maddern的文章代表了對JavaScript的全新思考,他相信JavaScript正從一種“湊合”的語言變成一種優秀的語言。

JavaScript好在哪裡?

為什麼如今JavaScript如此火爆?首先,很多企業都在採用它,它在很多技術系統中均扮演了正面的角色。根據JavaWorld的Martin Heller的說法,JavaScript不僅僅可以搭配HTML5和CCS來構建Web前端,在移動應用中也經常見到它的身影,甚至在後端開發領域,它也透過Node.js伺服器在發揮作用。如果你去讀讀這篇文章《全棧JavaScript介紹》,你就會理解JavaScript遠遠不止是一門“90秒鐘可以掌握”的程式語言那麼簡單。JavaScript在產品經理和設計師人群中越來越流行,因為它實現了很多具有良好使用者體驗的功能,支援大多數流行的網頁瀏覽器和平臺。這對於設計師和終端使用者來說是好訊息。

隨著移動領域的飛速發展,消費者和企業使用者不管使用什麼裝置,都開始期望得到高響應性的(譯者注:指標對不同裝置的顯示螢幕自適應地顯示內容)、無縫的Web體驗。那些理解大勢所趨的品牌,都撤下了m.開頭的移動版網站,開始提供完全動態的體驗,它們具有豐富的功能,效能良好,而且可以根據環境為你展示不同的內容。此外,客戶端為了達到使人驚歎的效果,也需要動畫和互動;最早,Flash是這些目標的解決方案。如今,JavaScript能得到更好的效果。

以前原生應用中很多很酷的功能,在網頁瀏覽器中只能用Macromedia的Flash或微軟的Silverlight這樣的外掛才能做出來。今天,JavaScript配合HTML5和CSS3就能達到這些效果。複雜的資料互動(比如內嵌過濾、即時反饋、基於上下文的規則等)以前需要花數個星期才能編出來,但現在如果用流行的JavaScript庫和框架來操作和實現,能達到開箱即用的效果。由於這些原因,前端開發人員的職位需求描述已經從“有jQuery經驗”,變成了“有Angular、Node、Bootstrap和jQuery經驗”。作為一門語言,JavaScript在迅速成長,但高質量的開發會不斷地催生新的需求。

侷限性

光有技術還不能造就一個優秀的開發者。他要有從整體角度去理解和處理應用的能力。JavaScript可以成為架構和開發策略的一部分,但它本身並不能作為一種架構或開發策略。

換句話說,JavaScript很不錯,但是它不是萬能的。有經驗有能力的開發者知道,何時何地應該如何去使用它。但開發新手不一樣,就像他們對待任何程式語言那樣,一旦他們熟悉了某種庫或框架,就想著用它來搞定一切,哪怕它對某個任務來說並不是很合適。這個問題要潛伏一段時間才能暴露,這將會給業務的可伸縮性、可維護性和效能帶來負面影響。

舉個例子,在一些發展中國家,網路頻寬、計算機的CPU和記憶體資源都很成問題,這種情況JavaScript就不是最好的選擇。甚至,使用者的瀏覽器版本落後最新的版本很多,也是很常見的事情,所以如果大量使用JavaScript的話,效能和相容性就會成問題。如果你產品的受眾是世界性的,那就少用些“最前沿的UI”,否則產品到部分使用者手裡會產生糟糕的使用者體驗。此外,在安全管控甚嚴的工業領域,JavaScript也不是開發應用的好選擇。

架構師和資深開發人員理解上面這些因素,知道什麼時候使用JavaScript是正確的選擇,什麼時候不是。這裡的底線就是把這方面的最佳實踐時刻牢記,確保使用者體驗不受影響。

JavaScript就業市場展望

JavaScript會經得起時間考驗嗎?會長盛不衰,還是曇花一現,很快被更好的技術所替代?換句話說,用JavaScript來開發你的企業應用是否保險?

很多開發者同意Flash已經窮途末路。部分人認為Flash退出歷史舞臺是自然演化的結果,但更多人都知道是誰擊敗了它。JavaScript已經替代了Flash,至少在下個十年中,它會繼續擴張,在各種軟體系統中承擔越來越多的角色。我們來考慮一下Flash提供的功能——主要是UI方面的——再把這些UI功能的數量乘以幾倍來估算應用程式所有方面的功能,可想而知JavaScript將帶來多大的價值。JavaScript會有過時的一天嗎?當然會,但我們還不知道是何時。

另一個有可能促成JavaScript長盛不衰的因素是它總是在不停地演進。新的JavaScript庫和框架在不斷地湧現出來。就在幾年前,AngularJS還處於beta測試中;而今天,就業市場對有AngularJS經驗的開發者的需求空前高漲。並且這僅是一個例子,說明JavaScript的前沿成果演變成市場主流的速度有多快。當然知識是多方面的。解決重大問題的能力、最佳實踐以及能夠清晰地理解這些庫和框架如何解決我們面臨的挑戰,是人事經理為人才定價的最重要依據。

要精確預測一門技術會如何演進是不可能的,但是我們可以確定今天用JavaScript寫的應用,在未來好多年中都需要得到持續的支援。就算我們樂觀地認為JavaScript會很長壽,目前的這些產品也需要在未來十年中得到多次升級和修改,以適應企業級的應用。為了能維持業務,或增強JavaScript寫的應用,企業在當下以及未來都需要撥出預算來和外部機構合作,或僱傭內部的專家。

JavaScript開發者下一步該做什麼

對於那些經歷著Web技術演進並保持自己的JavaScript技能持續更新的開發者來說,這一切都是好訊息。但是,剛剛入門的開發者(或剛剛參加工作的年輕開發者)要想抓住這一波機會,應該做些什麼呢?當下從事技術工作的迷人之處就在於,所有的文件、示例程式碼以及其他開發者討論過的問題,只要稍一搜尋便唾手可得。

轉投JavaScript的開發者,或者想試水現代Web技術的人,可以從線上進修課程開始。像Codecademy這樣的網站免費為初學者提供了JavaScript課程。如果開發者希望透過實戰來學習儘可能多的知識,那麼訂閱Pluralsight可能是更好的選擇。Pluralsight有更多的課程門類可供選擇,從AngularJS基礎課程,到使用Backbone.js在服務端儲存資料,樣樣都有。這些課程都由業界專家編寫並解說。

這些庫和框架的開發者社群是很強大的。如果你需要面對面討論解決問題的學習方式,那麼你可以考慮找一個本地學習小組或上Meetup去找一個,這類小組通常會分享關於特定技術問題的知識。像StackOverflow這樣的網站也是一個知識寶庫,開發者遇到的常見(或不那麼常見)的問題都會有。

大多數頂級的框架和庫都是開源的,並且託管在GitHub上(比如,GitHub AngularJS)。對於當代軟體開發來說,GitHub是一筆無法想象的財富,它提供了大量在不斷演進的優秀軟體。開發者如果希望幫助開源軟體發展,並獲得開發者社群的認同,可以透過解決bug、更新wiki和提交新功能補丁等方式來參與進去。而且越來越多的技術招聘者在篩選階段要求檢視應聘者的GitHub或Bitbucket的賬戶,使得這一點變得更加重要。

你的職業發展、受歡迎程度和薪水從沒有像現在一樣,掌握在自己手裡。你是否還記得幾年前,就業市場對iOS開發者的需求量空前的大?如果像你這樣的UI開發者當時只能站在邊上看著那些招聘廣告流口水,那麼好訊息來了:現在是你的時代了。由你統治的市場來了,並將繁榮很久。

相關文章