隨著信息產(chǎn)業(yè)的迅猛發(fā)展,IT行業(yè)人才需求量也在逐年擴(kuò)大。
據(jù)國內(nèi)數(shù)據(jù)統(tǒng)計,未來五年,我國信息化人才總需求量高達(dá)1500萬—2000萬人。其中“軟件開發(fā)”、“網(wǎng)絡(luò)工程”等人才的缺口較為突出。以軟件開發(fā)為例,我國軟件人才需求以每年遞增20的速度增長,每年新增需求近百萬。
這也是目前很多非科班出身的同學(xué)為了搭上互聯(lián)網(wǎng)的快車開始學(xué)習(xí)編程的原因,但是剛開始應(yīng)該選擇哪個學(xué)科,卻給很多同學(xué)帶來了很大困擾。
小編在和同學(xué)的交流當(dāng)中發(fā)現(xiàn),大家對于“前端、后端、全棧”的概念還非常模糊,俗話說“磨刀不誤砍柴工”,了解了互聯(lián)網(wǎng)的工種定義、職能及技能需求,才能使你能,有計劃的學(xué)習(xí),從而邁向互聯(lián)網(wǎng)經(jīng)營的目標(biāo)。
一、前端方向
網(wǎng)站的“前端”是與用戶直接交互的部分,包括你在瀏覽網(wǎng)頁時接觸的所有視覺內(nèi)容--從字體到顏色,以及下拉菜單和側(cè)邊欄。這些視覺內(nèi)容,都是由瀏覽器解析、處理、渲染相關(guān) HTML、CSS、Javascript 文件后呈現(xiàn)而來。
技能與工具
前端開發(fā),就是要創(chuàng)造上面提到的網(wǎng)站面向用戶的部分背后的代碼,并通過建立框架,構(gòu)建沉浸性的用戶體驗。為了實現(xiàn)這個目標(biāo),開發(fā)需要熟練運用下列語言、框架、工具庫:
語言:HTML,CSS,和 Javascript;
此外,掌握 jQuery 和 LESS 等工具庫也很重要,它們能幫助以的方式編碼;
很多前端開發(fā)崗也要求 Ajax 方法的使用經(jīng)驗,它可以幫助你使用 Javascript 在后臺從服務(wù)器拉取數(shù)據(jù),協(xié)助實現(xiàn)頁面的動態(tài)加載。
打個比方,前端的工作專注于“房屋”裝修,而蓋房子的工作由后端負(fù)責(zé)。
通過一些專門的工具,前端與設(shè)計師/用戶體驗分析師密切合作,幫助構(gòu)建原型或是線框圖,參與產(chǎn)品開發(fā)到發(fā)布的全過程。
一些前端甚至能準(zhǔn)確定位影響用戶體驗的特定問題,并給出建議或是代碼解決方案,對產(chǎn)品設(shè)計帶來積極影響。
在專業(yè)能力外,與其它團(tuán)隊協(xié)作,以理解特定目標(biāo)、需求、機(jī)遇,以及的執(zhí)行力也非常重要。
這聽起來工作內(nèi)容很多,但也回報豐厚。“我是一名技術(shù)人員,也是一名設(shè)計者,在數(shù)字平臺上使用標(biāo)記語言和代碼修改視覺元素并與之互動是很自然而有趣的體驗,”有八年前端開發(fā)經(jīng)驗的 Mikey Ilagan 說“這讓我能夠直接影響到用戶體驗,操縱應(yīng)用和網(wǎng)站里用戶所見并直接與之交互的元素,這非常棒!”
總之,前端要為后端搭建的“房屋”進(jìn)行內(nèi)部設(shè)計和裝修工作。裝潢風(fēng)格由房屋所有者指定。Apptix 的產(chǎn)品市場負(fù)責(zé)人 Greg Matranga 表示:“前端有時容易為他們的工作感到振奮,因為他們有廣闊的空間發(fā)揮自己的創(chuàng)造力。”
二、后端方向
是什么給網(wǎng)站前端提供支持?數(shù)據(jù)存放在哪里?這就涉及后端內(nèi)容了。網(wǎng)站后端包括服務(wù)器、應(yīng)用還有數(shù)據(jù)庫。后端構(gòu)建并維護(hù)這些組件,為網(wǎng)站提供多方面支持。
技能與工具
為了讓服務(wù)器、應(yīng)用、數(shù)據(jù)庫能夠彼此交互,后端工程師需要具有如下技能:
用于應(yīng)用構(gòu)建的服務(wù)器端語言:PHP, Ruby, Python, Java, .Net 等;
數(shù)據(jù)相關(guān)工具:MySQL, Oracle, SQL Server 等;
PHP框架:Zend, Symfony, CakePHP等;
版本控制工具:SVN, CVS , Git 等;
還要熟練使用 Linux 作為開發(fā)和部署環(huán)境。
后端使用這些工具編寫干凈、可移植、具有良好文檔支持的代碼來創(chuàng)建或新 Web 應(yīng)用。但在寫代碼之前,他們需要與客戶溝通,了解其實際需求并轉(zhuǎn)化為技術(shù)目標(biāo),制定較有效且精簡的方案來進(jìn)行實現(xiàn)。
“我熱愛后端開發(fā)因為我喜歡操縱數(shù)據(jù)”,后端就職于 Wildbit 的 JP Toto 說。“現(xiàn)在共有和私有 API 已變成移動設(shè)備、網(wǎng)站以及其它互聯(lián)系統(tǒng)交換數(shù)據(jù)的必備通道。創(chuàng)建對大家有用的 API 是我工作里非常鼓舞人心的部分”。
三、全棧
有時前后端之間并沒有明確的界限,“前端通常需要額外學(xué)習(xí)后端技巧,反之亦然,尤其在特定市場條件下”,Matranga 說:“需要跨領(lǐng)域知識,有時甚至需要成為全才。”
全棧工程師,較初是6年多以前由 Facebook 帶動的概念。全棧的核心,是指這批能夠承擔(dān)包括前端、后端在內(nèi)的所有功能開發(fā)任務(wù),他們擁有一個技能全家桶。
“能夠同時承擔(dān)服務(wù)器端和客戶端工作會為你帶來多機(jī)會,” Grovo 的全棧工程師 Federico Ulfo 說 “當(dāng)然這也就意味著多的挑戰(zhàn)。以廚藝作類比,掌握烹飪和烘焙都需要時間與經(jīng)驗積累,同時掌握兩者要花費多精力。照著菜譜做誰都可以,我此處所說的是做出真正美味東西的能力。”
技能與工具
全棧也通常在服務(wù)器端進(jìn)行編程工作,但他們熟練前端語言,能夠操縱網(wǎng)站面向用戶的部分?;旧峡梢孕稳菟麄兪前偈峦ā?/p>
下圖表來說明全棧開發(fā)不斷增長的復(fù)雜性,這是過去與當(dāng)前技術(shù)需求情況對比:
具體工具依項目和客戶需求而定,全棧需要對 Web 架構(gòu)的每一個層次都有足夠的了解:搭建和配置 Linux 服務(wù)器,編寫服務(wù)器端 API,利用客戶端 Javascript 代碼驅(qū)動應(yīng)用,將設(shè)計層面的東西轉(zhuǎn)化到實際的 CSS 代碼。
掌握并使用大量工具的同時,全棧需要敏捷地分配服務(wù)器端和客戶端任務(wù),提供解決方案并對比不同方案的優(yōu)劣。