前端工程師,也叫Web前端開發(fā)工程師。他是隨著web發(fā)展,細(xì)分出來的行業(yè)。Web前端開發(fā)工程師,主要職責(zé)是利用(X)HTML/CSS/JavaScript/DOM/Flash等各種Web技術(shù)進(jìn)行產(chǎn)品的界面開發(fā)。制作標(biāo)準(zhǔn)優(yōu)化的代碼,并增加交互動(dòng)態(tài)功能,開發(fā)JavaScript以及Flash模塊,同時(shí)結(jié)合后臺(tái)開發(fā)技術(shù)模擬整體效果,進(jìn)行豐富互聯(lián)網(wǎng)的Web開發(fā),致力于通過技術(shù)改善用戶體驗(yàn)。
Web前端開發(fā)技術(shù)主要包括三個(gè)要素:HTML、CSS和JavaScript!
它要求前端開發(fā)工程師不僅要掌握基本的Web前端開發(fā)技術(shù),網(wǎng)站性能優(yōu)化、SEO和服務(wù)器端的基礎(chǔ)知識(shí),而且要學(xué)會(huì)運(yùn)用各種工具進(jìn)行輔助開發(fā)以及理論層面的知識(shí),包括代碼的可維護(hù)性、組件的易用性、分層語義模板和瀏覽器分級(jí)支持等。
隨著近兩三年來RIA(Rich Internet Applications的縮寫,中文含義為:豐富的因特網(wǎng)應(yīng)用程序)的流行和普及帶來的諸如:Flash/Flex,Silverlight、XML和服務(wù)器端語言(PHP、ASP.NET,JSP、Python)等語言,前端開發(fā)工程師也需要掌握。
前端開發(fā)的入門門檻其實(shí)很低,與服務(wù)器端語言先慢后快的學(xué)習(xí)曲線相比,前端開發(fā)的學(xué)習(xí)曲線是先快后慢。
HTML 甚至不是一門語言,他僅僅是簡單的標(biāo)記語言!
CSS 只是無類型的樣式修飾語言。當(dāng)然可以勉強(qiáng)算作弱類型語言。
Javascript 的基礎(chǔ)部分相對(duì)來說不難,入手還算快。
也正因?yàn)槿绱?,前端開發(fā)領(lǐng)域有很多自學(xué)成“才”的同行,但大多數(shù)人都停留在會(huì)用的階段,因?yàn)楹竺娴膶W(xué)習(xí)曲線越來越陡峭,每前進(jìn)一步都很難。 Web前端技術(shù)有一些江湖氣,知識(shí)點(diǎn)過于瑣碎,技術(shù)價(jià)值觀的博弈也難分伯仲,即全局的系統(tǒng)的知識(shí)結(jié)構(gòu)并未成體系,這些因素也客觀上影響了“正統(tǒng)“前端技術(shù)的沉淀!而且各種“奇技淫巧”被濫用,前端技術(shù)知識(shí)的傳承也過于泛泛,新人難看清時(shí)局把握主次。因此,前端技術(shù)領(lǐng)域,為自己覓得一個(gè)靠譜的師兄,重要性要蓋過項(xiàng)目、團(tuán)隊(duì)、公司、甚至薪水。
另一方面,正如前面所說,前端開發(fā)是個(gè)非常新的職業(yè),對(duì)一些規(guī)范和最佳實(shí)踐的研究都處于探索階段??傆行碌撵`感和技術(shù)不時(shí)閃現(xiàn)出來,例如CSS sprite、負(fù)邊距布局、柵格布局等;各種JavaScript框架層出不窮,為整個(gè)前端開發(fā)領(lǐng)域注入了巨大的活力;瀏覽器大戰(zhàn)也越來越白熱化,跨瀏覽器兼容方案依然是五花八門。為了滿足“高可維護(hù)性”的需要,需要更深入、更系統(tǒng)地去掌握前端知識(shí),這樣才可能創(chuàng)建一個(gè)好的前端架構(gòu),保證代碼的質(zhì)量。
隨著手持設(shè)備的迅猛發(fā)展,帶動(dòng)了 HTML5行業(yè)標(biāo)準(zhǔn)的快速發(fā)展。web領(lǐng)域的技術(shù),大概有10年都沒有大的更新了!現(xiàn)在市場(chǎng)很需要優(yōu)秀的、高級(jí)的前端工程師。一方面是因?yàn)檫@是一個(gè)比較新的細(xì)分行業(yè),而且前端程序員大都自學(xué)一部分,知識(shí)結(jié)構(gòu)不系統(tǒng);另一方面,大學(xué)里面沒有這種課程,最最重要的是:北大青鳥這類培訓(xùn)機(jī)構(gòu)也沒有專門的前端工程師的培訓(xùn)課程??!
大多數(shù)程序員認(rèn)為 Javascript 過于簡陋,只適合一些網(wǎng)頁上面花哨的表現(xiàn),所以不愿花費(fèi)精力去學(xué)習(xí),或者以為不學(xué)習(xí)就能掌握。實(shí)際上,一門語言是否腳本語言,往往是她的設(shè)計(jì)目標(biāo)決定,簡單與復(fù)雜并不是區(qū)分腳本語言和非腳本語言的標(biāo)準(zhǔn)。事實(shí)上,在腳本語言里面,Javascript 屬于相當(dāng)復(fù)雜的一門語言,他的復(fù)雜度即使放在非腳本語言中來衡量,也是一門相當(dāng)復(fù)雜的語言!Javascript 的復(fù)雜度不遜色于 Perl 和 Python!