你們都知道程序員是少見的低門檻高工資的職業,而前端工程師又比其餘崗位入門更快,所以,不少人都想成爲一個前端工程師。可是,在決定成爲一個前端工程師以前,你瞭解前端是什麼嗎?css
一千我的眼裏有一千個哈姆萊特,因爲每一個人的經歷和工做經驗不一樣,我敢說一千個前端程序員,對前端也有至少一百種定義,我也只是一個小菜鳥,不敢對前端下什麼權威定義,只是閒來無事,又以爲這個話題比較有趣而重要,但願能夠跟你們一塊兒共同探討一下。html
讓咱們先從狹義上的前端開始討論吧。前端工程師是一個比較新穎的概念,應該不會超過十五年的歷史,之前的前端開發工做大可能是由如今的後端順手作了,沒什麼複雜度。前端的誕生,大概是隨着ajax和其餘技術的推出,網頁逐漸複雜化,從而分離出來。前端
一個對前端徹底不懂的新人想要學習前端,要先學三板斧,JavaScript,HTML,CSS。這三個可謂是前端的基礎。打個不太貼切的比方,把網頁比做一我的的話,HTML是他的骨骼,CSS是他的皮膚,而JS讓這我的運動起來。node
在搞懂這三個技術後,通常還會再學習一下JQuery和BootStrap,一個是對JS的封裝,下降了JS的使用門檻,另外一個是一個UI庫,可讓人快速的搭建樣式統一又不算難看的網頁。react
過去或者說是狹義上的前端就只是工做在瀏覽器上,IE6789,Chrome,Safari,所以他們關注的更多的是兼容性的問題。css3
狹義上的前端,可能更多的關注展示,作作官網,作作管理後臺,作瀑布流,輪播圖什麼的。git
能夠看出,狹義上的前端開發局限性比較大,通常人能夠很快入門,很快看到天花板和瓶頸,再結合前端程序員比較容易入門,致使很多其餘的崗位程序員對前端也有點歧視和偏見。這是咱們就須要把視野打開,成爲廣義上的前端。程序員
廣義上的前端開發是怎樣的呢?我認爲可能具備下面的幾個特色es6
web的複雜度進一步提高,從web網頁向web應用發展,加入大量操做系統提供的能力,如傳感器,文件存儲,網絡鏈接等。隨着小程序和快應用的推廣,前端頁面利用微信和瀏覽器,也在逐步獲取以前原生應用才擁有的能力,在不注重性能的領域,前端技術在逐漸取代原生技術開發。github
如今是移動互聯網時代,別再死盯着PC頁面了,也別知足於移動端頁面的開發了,快去搶iOS和Android程序員的飯碗吧!好吧,其實他們也屬於大前端的一部分,屬於同一陣營,在掌握了react native,weex等技術後,前端擁有了挑戰移動端開發的能力。比起移動端開發,前端開發有着免審覈,開發迅速,統一維護等好處。
除了在移動端逐漸取代原生開發,愈來愈多的桌面應用在利用Electron技術開發,如VSCode,atom等
隨着nodejs的推出,這年頭的前端總要懂點express和koa,否則出門都很差見人。渲染的頁面工做被交給前端,後端程序員只提供API接口的開發模式也愈來愈流行。
如今是數據時代,咱們要離數據更近,去處理和分析數據,本來前端程序員不被重視和天花板較低的一個重要緣由就是隻重視展現,離數據和業務太遠。這也致使前端開發可被替代性強,待遇天然也上不去。然而隨着現代的開發模式如MVVM的引入,愈來愈多的數據邏輯處理被放在前端,前端的重要性也慢慢上來了。
單純的展現並不是沒有前途,只是咱們不能停留在傳統的官網展現,要去擴充咱們的應用場景,能夠去涉足辦公軟件,直播,遊戲開發,VR,AR等場景。
前端要作的事情愈來愈多,愈來愈雜,工欲善其事,必先利其器,要完成各類各樣的需求,咱們須要升級一下咱們的手上武器。
想用es6怕瀏覽器不兼容?想用css3新特性怕出bug?讓babel和postcss幫你吧!還有各類圖片壓縮,模塊化打包合併,資源自動上傳到服務器等等工具。所以,前端開發不只僅只是完成開發任務,還須要開發各類工具去提高開發效率和處理其餘問題。
在我看來,前端有兩個重點,一個是數據,另外一個是展現。如何更好的處理數據以及進行豐富的展現並將其展現到更多的終端,是前端須要解決的問題。
我認爲,前端的優點在於,比起app須要讓用戶先耗費時間和流量去下載客戶端,用戶能夠直接經過瀏覽器能夠獲取數據,並經過鏈接進行分享。缺點是不適用於過於考驗性能的場景,然而機器的性能是會不斷提高的,適用於前端的領域也會愈來愈多,前端的明天也是光明的。
因爲閱歷有限,可能有不少不足的地方。但願你們能夠指出並討論,謝謝!