2014年web開發(fā)者應(yīng)該學(xué)習(xí)的技術(shù)
任何一個(gè)在web開發(fā)這個(gè)行業(yè)有多年從業(yè)經(jīng)驗(yàn)的從業(yè)者都應(yīng)該知道,這個(gè)行業(yè)發(fā)展得太迅速了。每天總有新的技術(shù)、框架、語言或技術(shù)方法誕生,問題是對(duì)我們中的大部分人來說都喜歡學(xué)習(xí)“所有的東西”,但這是不大符合實(shí)際的!所以,在2014年,作為Web開發(fā)者應(yīng)該學(xué)習(xí)什么呢?
目前很多技術(shù)博客和文章都對(duì)2014年的web開發(fā)趨勢(shì)提供了很多深入的分析和指引,但一個(gè)很實(shí)用的方法去了解在來年什么是應(yīng)該值得去學(xué)習(xí)的話,那就是招聘者的需求!歸跟到底,我們中的大部分人都是將開發(fā)作為職業(yè)的,如果某項(xiàng)技術(shù)是沒有建設(shè)性或者值得稱道的地方,則沒什么值得去學(xué)習(xí)了。如果有很多企業(yè)都選擇接受使用某種特定的技術(shù)、語言等,則你可以斷定他們并不是草率的去決定。這意味著認(rèn)可的技術(shù)必須至少具備下面的條件:
- 有堅(jiān)實(shí)的基礎(chǔ)–有大公司的支持或者有良好的社區(qū)支持
- 文檔及支持–企業(yè)是不能接受一個(gè)新的技術(shù)缺乏論壇或文檔的支持,因?yàn)檫@樣不可能讓程序員去深入了解這門技術(shù)。
- 社區(qū)–對(duì)于任何的技術(shù)、業(yè)務(wù)流程或方法論,其中有良好的社區(qū)支持是重要的條件。
- 穩(wěn)定性– 如果某項(xiàng)技術(shù)還沒達(dá)到能完整發(fā)布到生產(chǎn)環(huán)境上的版本,企業(yè)是不會(huì)讓自己的平臺(tái)去冒險(xiǎn)使用的,企業(yè)需要的是穩(wěn)定。
有了以上幾點(diǎn)作為判斷,則很容易知道企業(yè)需要什么樣的人才。我每天都能從求職網(wǎng)站中收到大量的招聘信息,從中可以窺探新的一年中,企業(yè)需要什么樣的人才,那么2014年中,作為web開發(fā)者應(yīng)該關(guān)注和學(xué)習(xí)什么技術(shù)?
圖片來源: http://themarble.co.uk/top-10-programming-languages
從Google上可以查找到目前最熱門的語言和有可能獲得高薪的語言,綜合一下,我認(rèn)為以下是應(yīng)該在2014年學(xué)習(xí)(或者是應(yīng)該繼續(xù)保持學(xué)習(xí))的語言或技術(shù)
JavaScript - https://developer.mozilla.org/en-US/docs/Web/JavaScript
在客戶端開發(fā)方面,Javascript絕對(duì)是無可匹敵的皇者,任何的客戶端開發(fā)幾乎都要使用Javascript,它讓開發(fā)者可以創(chuàng)建十分復(fù)雜的交互功能。大部分web開發(fā)者也已經(jīng)對(duì)Javascript有開發(fā)經(jīng)驗(yàn),因?yàn)樗菀兹腴T并且在Web開發(fā)中應(yīng)用甚廣。目前web開發(fā)社區(qū)已經(jīng)有上千種框架和工具都是基于Javascript開發(fā)的,可見其相當(dāng)重要。
PHP - http://php.net/
和Javascript一樣,PHP也是老牌的腳本語言了。由于它有很穩(wěn)定的開發(fā)環(huán)境以及龐大的社區(qū)資源支持,因此能讓開發(fā)者快速搭建復(fù)雜的web應(yīng)用。作為PHP開發(fā)者,當(dāng)你遇到技術(shù)上的問題的時(shí)候,可以借助別人已經(jīng)有的解決方案去解決,這都?xì)w功于這么多年來PHP龐大的社區(qū)和海量的資源。借助Javascript的協(xié)助,目前有很多PHP框架都可以輕易解決很多問題。
Java -http://www.oracle.com/technetwork/java/index-138747.html
對(duì)于Java,不少web開發(fā)者對(duì)其的感覺可謂是又愛又恨。之所以要各位web開發(fā)者,包括那些之前對(duì)Java沒什么認(rèn)識(shí)的在2014年要多關(guān)注Java,是因?yàn)樽罱鼛啄辏捎贏ndroid和移動(dòng)開發(fā)的飛速發(fā)展,而Java剛好是Android開發(fā)的主要語言,因此如果想在移動(dòng)開發(fā)中分一杯羹的開發(fā)者,則應(yīng)該在今年開始Java語言的學(xué)習(xí)。
NodeJS - http://nodejs.org/
相比其他語言,Node.js可謂是新秀。NodeJS從名稱上就可以看出和Javascript有一點(diǎn)關(guān)系(但當(dāng)然不完全是)。NodeJS可以用來構(gòu)建快速,可擴(kuò)展性極強(qiáng)的網(wǎng)絡(luò)應(yīng)用。在過去幾年,NodeJS創(chuàng)建了很好的社區(qū)并且創(chuàng)造了很多相當(dāng)杰出的應(yīng)用。如果能把NodeJS和其他新技術(shù)如MongoDB等結(jié)合起來,則可以更輕易地構(gòu)建快速、直觀和實(shí)時(shí)性極強(qiáng)的web應(yīng)用,因此強(qiáng)烈推薦各位web開發(fā)者關(guān)注NodeJS。更多關(guān)于NodeJS的信息請(qǐng)參考這里。
Ruby on Rails - http://rubyonrails.org/
Ruby是近年來發(fā)展最為迅速的語言之一。其中甚至有不少的PHP開發(fā)者已經(jīng)轉(zhuǎn)向Ruby陣營,并認(rèn)為Ruby是他們見過的最好的語言之一。讀者可以從下面這篇文章去對(duì)比PHP和Ruby的各個(gè)方面。要記得的是并沒有對(duì)錯(cuò)之分,主要是要看項(xiàng)目和具體需求而決定采用是PHP還是RUBY。
下面講解下框架方面在2014年有哪些是值得關(guān)注的。在框架方面,開發(fā)者總是熱衷與爭論哪個(gè)是最好的。接下來列出的是在Javascript和PHP中筆者認(rèn)為是值得在2014年關(guān)注的框架。
Laravel - http://laravel.com/
圖片來源:http://www.sitepoint.com/best-php-frameworks-2014/
Laravel是PHP的框架,其中從sitepoint的調(diào)查統(tǒng)計(jì)可以看出,最近這個(gè)
框架的發(fā)展十分迅速,其中深得開發(fā)者的喜愛原因之一是其內(nèi)置RESTful API和對(duì)JSON的方便支持,這是目前其他一些框架比如CodeIgniter等目前不能提供的。
ExpressJS – http://expressjs.com/
Express是一個(gè)NodeJS的框架,它將NodeJS的一些底層功能進(jìn)行了包裝,以讓用戶更方便地使用。由于NodeJS還是相對(duì)較新的技術(shù),因此還沒有很好的最佳實(shí)踐,而Express框架則正好填補(bǔ)了這個(gè)空白,在眾多的NodeJS框架中目前它是最流行的并且有豐富的文檔等資源,一個(gè)很好的整合NodeJS和AngularJS和Express可以在這里看到。
AngularJS – http://angularjs.org/
AngularJS是最近在客戶端編程中大放異彩的Javascript編程框架,它能讓開發(fā)者很容易將客戶端腳本組織成MVC架構(gòu),這意味著編寫可維護(hù)的客戶端模塊和可重用的代碼都是小菜一碟。強(qiáng)烈推薦各位程序員學(xué)習(xí)下面的這個(gè)教程《AngularJS 30分鐘入門》。
其他值得關(guān)注的實(shí)用工具和方法論
我們已經(jīng)談過了語言和框架,下面我們?cè)倏聪略?014年值得關(guān)注的實(shí)用工具和方法論,它們都能給開發(fā)者的日常工作很大的幫助。
迭代敏捷開發(fā)–迭代敏捷開發(fā)應(yīng)該是每位web開發(fā)者必須掌握的理論。敏捷開發(fā)的回報(bào)是相當(dāng)可觀的,它讓開發(fā)者在項(xiàng)目開始階段就以嚴(yán)格的標(biāo)準(zhǔn)去開發(fā),能快速生產(chǎn)出可交付的產(chǎn)品,然后根據(jù)客戶的反饋不斷去重新迭代開發(fā)出更優(yōu)秀的產(chǎn)品。
Grunt.js –Grunt.js是構(gòu)建在NodeJS上的Javascript前端自動(dòng)構(gòu)建工具。如果你需要重復(fù)的執(zhí)行像壓縮,編譯,單元測(cè)試,代碼檢查以及打包發(fā)布的任務(wù),那么你可以使用Grunt來處理這些任務(wù),此外還能實(shí)現(xiàn)如:
- CSS, HTML和JavaScript的優(yōu)化
- 代碼壓縮和優(yōu)化
- 文件版本化和進(jìn)行哈希編碼
- 圖片優(yōu)化
Vagrant –Vagrant能創(chuàng)建可重用和方便遷移的開發(fā)環(huán)境,可以讓你可以很容易在一個(gè)虛擬機(jī)中運(yùn)行已經(jīng)設(shè)置好的開發(fā)環(huán)境。如果有新入職的程序員,他們要做的事情只需要把vagrant安裝在他們的Linux、Windows或者M(jìn)ac的就可以了,并且使用簡單的命令就可以運(yùn)行整個(gè)開發(fā)環(huán)境,大大節(jié)省了時(shí)間。
Jenkins - Jenkins是持續(xù)構(gòu)建(CI)平臺(tái)能實(shí)現(xiàn)如自動(dòng)化部署代碼、單元測(cè)試、打包及其他功能,越來越多的企業(yè)已經(jīng)選用這款開源的工具進(jìn)行持續(xù)構(gòu)建管理。
小結(jié):
在本文中,筆者簡單根據(jù)目前市場(chǎng)上招聘的信息對(duì)2014年值得WEB開發(fā)者關(guān)注的語言、框架、方法和技術(shù)作了小結(jié),希望各位WEB開發(fā)者都能關(guān)注這些趨勢(shì),更好在2014年發(fā)揮所長。
原文鏈接:http://www.revillweb.com/articles/web-developers-what-should-you-be-learning-in-2014/