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