前端領(lǐng)域發(fā)展很快,各種新技術(shù)新思想不斷涌現(xiàn),這是一個(gè)好現(xiàn)象。
但是前端發(fā)展太快也帶來(lái)一些問(wèn)題,比如有同學(xué)就問(wèn)到我究竟應(yīng)該學(xué)些什 么,Angular.js、React、Node.js、ES6、ES7、CoffeeScript、TypeScript……似乎永遠(yuǎn)有太多東西需要學(xué)習(xí),有些東西好像還沒(méi)學(xué)明白就被另一些新的技術(shù)取代而“過(guò)時(shí)了”。
1、我們需要知道前端工程師是做什么?
前端工程師是 互聯(lián)網(wǎng)時(shí)代軟件產(chǎn)品研發(fā)中不可缺少的一種專(zhuān)業(yè)研發(fā)角色。
從狹義上講,前端工程師使用 HTML、CSS、javaScript 等專(zhuān)業(yè)技能和工具將產(chǎn)品UI設(shè)計(jì)稿實(shí)現(xiàn)成網(wǎng)站產(chǎn)品,涵蓋用戶PC端、移動(dòng)端網(wǎng)頁(yè),處理視覺(jué)和交互問(wèn)題。
從廣義上來(lái)講,所有用戶終端產(chǎn)品與視覺(jué)和交互有關(guān)的 部分,都是前端工程師的專(zhuān)業(yè)領(lǐng)域。
2、前端工程師需要什么樣的知識(shí)和技能?
有人說(shuō)前端工程師的技術(shù)棧是這樣的
還有人說(shuō)是這樣的
實(shí)際上前端工程師最核心的技能還是:
在一個(gè)典型的互聯(lián)網(wǎng)公司的產(chǎn)品研發(fā)流程中,前端工程師和其他角色的關(guān)系大致上是這樣的:
前端是最接近產(chǎn)品和設(shè)計(jì)的工程師,起到銜接產(chǎn)品和技術(shù)的作用,前端為用戶可以看到的部分負(fù)責(zé),所以也是最接近用戶的工程師。
在多終端的時(shí)代,如果一個(gè)產(chǎn)品同時(shí)支持PC、移動(dòng)端,前端工程師還需要和更多的角色打交道:
JavaScript 對(duì)于前端是最重要的技能,所以優(yōu)秀的前端工程師要有扎實(shí)的JavaScript基本功。
而JavaScript這門(mén)編程語(yǔ)言也是目前程序設(shè)計(jì)領(lǐng)域炙手可熱的寵兒,如今的它不僅僅只是用來(lái)開(kāi)發(fā)Web,還可以用在各個(gè)方面。
JavaScript 可以用在“樹(shù)莓派”這類(lèi)智能硬件芯片開(kāi)發(fā)
前端工程師也是軟件工程師,所以軟件工程師的基礎(chǔ)知識(shí)也是非常重要的,這些基礎(chǔ)知識(shí)包括:
數(shù)學(xué)
計(jì)算機(jī)體系
數(shù)據(jù)結(jié)構(gòu)和算法
編譯原理
HTML和CSS也是前端工程師非常重要的基本功,很多同學(xué),尤其是喜歡寫(xiě)代碼的同學(xué)容易忽視 Markup Language,實(shí)際上 ML 也是 UI 相關(guān)的領(lǐng)域里面很重要的內(nèi)容,不應(yīng)該被忽視。
HTML: The Living Standard
HTML & CSS
3、有同學(xué)問(wèn)說(shuō):“前端工作需求很多,老是改來(lái)改去,實(shí)際的技術(shù)點(diǎn)并沒(méi)有多少,產(chǎn)品決定業(yè)務(wù)邏輯,從事底層基礎(chǔ)服務(wù)會(huì)不會(huì)更有挑戰(zhàn)和職業(yè)未來(lái)?”
的確,越貼近業(yè)務(wù)和產(chǎn)品層面上的工作,需求差異性越大,可能改動(dòng)越頻繁。
不僅僅是前端改來(lái)改去,PHP服務(wù)端做業(yè)務(wù)的同學(xué)也面臨這樣的問(wèn)題,業(yè)務(wù)邏輯改來(lái)改去。
越底層通用性越強(qiáng),改動(dòng)相對(duì)較少。
不過(guò)事情都是有兩面性的,首先可以這么想想,是底層基礎(chǔ)服務(wù)的市場(chǎng)大還是互聯(lián)網(wǎng)業(yè)務(wù)和產(chǎn)品的市場(chǎng)大。
其次,基礎(chǔ)服務(wù)的通用性很容易達(dá)成,而產(chǎn)品層面 上如何通用化,如何在業(yè)務(wù)驅(qū)動(dòng)的產(chǎn)品研發(fā)中利用工程化和工具化提升開(kāi)發(fā)效率,這其實(shí)是一個(gè)很難的問(wèn)題。
豐富的互聯(lián)網(wǎng)產(chǎn)品已改變和正在改變著我們的生活,然 而作為產(chǎn)品的創(chuàng)造者,工程師們?cè)鯓幼屪约哼^(guò)得更好,這個(gè)領(lǐng)域值得研究。
另外,不要覺(jué)得實(shí)際的技術(shù)點(diǎn)沒(méi)有多少。
舉幾個(gè)例子:實(shí)現(xiàn)曲線和曲面動(dòng)畫(huà),計(jì)算地圖的最短路徑,讓png靜態(tài)圖片類(lèi)似于gif圖一樣做局部的運(yùn)動(dòng),抽獎(jiǎng)游戲,物理效果的HTML5游戲,3D圖表,增強(qiáng)現(xiàn)實(shí)的WebGL視頻流處理等等,這些都是在前端領(lǐng)域中遇到的實(shí)際問(wèn)題。
就 JavaScript 來(lái)說(shuō),在實(shí)際項(xiàng)目中設(shè)計(jì)最合適的模型高效率解決現(xiàn)實(shí)問(wèn)題本身就很有挑戰(zhàn)。
作為一種典型的新生代編程語(yǔ)言,JavaScript 特性豐富,使用靈活,性能優(yōu)良。
面向?qū)ο蟆⒑瘮?shù)式編程、各種設(shè)計(jì)模式、MVC 和 MVVM,這些本身就有足夠的吸引力。
前端要解決界面和交互問(wèn)題,實(shí)際上UI層面上的問(wèn)題一直是軟件工程方面的一個(gè)難題,因?yàn)閁I不停地在變化。
瀏覽器各個(gè)版本的兼容性、Web 標(biāo)準(zhǔn)、移動(dòng)設(shè)備、多終端適配,給了前端工程師很大的挑戰(zhàn),對(duì)前端工程師的能力也有很高的要求。
許多UI問(wèn)題有不只一種解決方法,許多問(wèn)題有非常巧妙的思路和精彩的解決辦法,前端在工程師群體里是屬于非常有創(chuàng)造力的一個(gè)群體,因?yàn)檫@個(gè)行業(yè)需要豐富的創(chuàng)造力和想象力。
前端工程師還是Web標(biāo)準(zhǔn)的制定者、實(shí)踐者和推動(dòng)者,而現(xiàn)在的W3C標(biāo)準(zhǔn)不僅僅局限于瀏覽器,還包括各種手持智能設(shè)備,車(chē)載設(shè)備、智能家居等等。
在未來(lái)萬(wàn)物互聯(lián)的時(shí)代,前端將不僅僅是網(wǎng)頁(yè)上的工程師,而是所有人機(jī)交互領(lǐng)域的工程師。
java培訓(xùn)班小結(jié):
其實(shí)還是那句話,前端工程師首先是軟件工程師,基礎(chǔ)是最重要的,如果基礎(chǔ)不扎實(shí),一切應(yīng)用技能就都是“浮云”。
前端的基礎(chǔ)是什么?
HTML、CSS、JavaScript基本功,數(shù)學(xué)、算法、數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、編譯原理基本功。
一個(gè)優(yōu)秀的前端工程師必須要有自己擅長(zhǎng)的領(lǐng)域,并且鉆研得足夠深入,同時(shí)要有眼界,能“跨界”。
可以以前端作為職業(yè),但千萬(wàn)不要把自己的技能限制在前端領(lǐng)域,因?yàn)橛泻芏鄸|西,只有站在前端之外,才能看得更清晰,更透徹。
-
工程師
+關(guān)注
關(guān)注
59文章
1586瀏覽量
69047 -
前端
+關(guān)注
關(guān)注
1文章
212瀏覽量
18100
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦

如何成為一名合格的KaihongOS南向驅(qū)動(dòng)開(kāi)發(fā)工程師
如何成為一名合格的KaihongOS北向應(yīng)用開(kāi)發(fā)工程師
如何成為一名嵌入式軟件工程師?
Allegro工程師能力升級(jí)建議 工程師技能如何升級(jí)進(jìn)階
硬件系統(tǒng)工程師寶典—完整版
嵌入式軟件工程師就業(yè)好不好?
如何成為一名合格的北向應(yīng)用開(kāi)發(fā)工程師

不同時(shí)期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過(guò)于真實(shí) #YXC晶振 #揚(yáng)興科技
硬件工程師需要掌握的硬件基礎(chǔ)知識(shí)


評(píng)論