2016第40週五

鄭州出發回杭州的高鐵上,感受前端愈來愈重要了,缺前端,缺靠譜的前端。前端

當二十年前,前端領域剛剛出現甚至還不叫前端之時,那會兒的網站開發人員的工做主要是用 Flash 作動畫、用 Dreamweaver 「可視化編寫」網頁、用 Firework 切圖,因此很長一段時間,業內從業人員俗稱或自嘲爲「切圖仔」。數據庫

 

2010 年 Backbone、Angular等前端 JavaScript 框架的相繼出現,讓前端開發人員逐漸有了底氣:npm

 

由於他們也能夠藉助程序設計領域由來已久的 MVC、MVVM 來構建有可靠範式支撐的 SPA(Single Page Application,單頁應用) 了。編程

而 2009 年出現、2011 年後不溫不火的 Node.js 把 JavaScript 直接從瀏覽器端帶入到服務器端,繼而 npm 社區方興未艾,進而出現 React、Polymer 等推進 W3C 規範或多方互相影響、借鑑、學習的「新概念」前端 JavaScript 框架,讓從業人員意識到:後端

 

前端領域也能夠實現組件化,反推規範的制定。前端工程化

而與此同時,前端工程化也告別了刀耕火種之狀態,一同步入了初級階段。瀏覽器

 

早早地,Node-WebKit(現名爲 NW.js) 和 Electron 已在桌面端攻城掠地多時,早有像 Atom 編輯器這樣由 Github 社區開發維護並廣受好評的成功開源項目。服務器

 

然後 Facebook 的 React Native 把矛頭和目標直指 Android 和 iOS 開發領域,其願景不可謂不宏大。網絡

 

React Native 引入虛擬 DOM 的概念,藉助中間的抽象層,理論上能夠橫跨全部平臺,支持使用 HTML、 CSS、 JavaScript 構建跨平臺產品和應用,大大加速開發效率,減小開發週期。前端工程師

期間,不乏像 Meteor、MEAN 這樣的全棧平臺和框架大展身手...

 

至此,前端領域在短短的四五年間,可謂變幻莫測、生機勃勃,也難免顯得稚氣未脫,遠未成熟...

 

步入 2016 年,ECMAScript 標準將繼續深化,JavaScript 新版本將每一年如約而至...而此時此刻,卻愈加猜不透前端的走向了...

 

然而,就此打住

AJAX 還未普及之時,「前端」做爲 View 層(視圖層),僅僅只承擔了展現頁面效果的工做,每每由後端工程師一併完成,或者說原本就沒有前端工程師的職位。

 

所謂前端,其實就是設計師開始用 Dreamweaver 玩可視化編程了。接着經過 Ajax,前端工做忽然能夠與服務器進行數據交互了,有了一點獨立的苗頭,可絕大部分前端工做也仍是由後端工程師承擔。

 

2006 年 jQuery 的出現以及接下來幾年 jQuery 社區的火爆,讓前端工程師能高效完成兼容各大瀏覽器的頁面交互效果的工做。

 

漸漸地,也就有一些走在前列的「閒人」開始「謀劃着」要前端工程師承擔更多的職責(也有多是這幫人不喜歡什麼事情都依賴後端工程師)。慢慢地,前端工程師有 Node.js 能夠把玩了,今後不再須要依靠後端工程師的協助,即可獨自一人完成一整個項目和產品的開發、測試、上線、運維,今後也就必須瞭解業務邏輯、瞭解服務、瞭解路由、瞭解網絡、瞭解服務器、瞭解跨平臺開發、瞭解 App 開發...

 

要點來了

說了這麼多,要點其實很簡單,能夠理解爲:

 

有人不但願老是依賴後端工程師,想要 JavaScript 跨平臺,因而搞出了 Node.js

開發者的智慧和力量,將 npm 社區推向史無前例的高度

前端工程師藉助這一趨勢,只要熟悉 JavaScript 即可一展身手,構建屬於本身的產品,不須要後端工程師的協助

然而這其中最大的一個斷層即是:

 

現階段,絕大多數前端工程師在成爲前端工程師以前,都是有經驗的後端工程師,這些人天然很容易接受新型「前端工程師」所須要承擔的職責,由於原本前端就是從後端分離出來的工種和業務,他們大致都清楚後端領域的基礎知識,以及有必定的後端實戰開發經驗。

 

然而,這可爲難了不少從設計師轉行的前端工程師以及零基礎學員,由於他們通常都是從 View 層,也就是產品的設計與實現(俗稱「切圖」)開始步入前端的,讓他們忽然接受業務、數據、網絡、服務這些層級,我想一開始多多少少也會迷茫和摸不着頭腦罷。

BTW,我就是後者,因此深有感觸。

 

結論

最後,總結一下我自學前端近 20 個月、反觀以前的自學歷程後,生髮的感慨以及自認爲合適的自學路徑:

 

若是你的夢想是不借助後端工程師,自行研發一款產品(不能否認,這是個人夢想之一),我建議一開始就想好本身想作什麼產品,直接從過後端工程師的工做,也就是學習數據交互、數據庫、路由、網絡等基礎知識,或者是直接學習 Node.js 開發。自學這個以後,你即可以作出可用的功能。

那麼接下來的事情就是:產品交互和產品顏值了。此時再自學 HTML 和 CSS,從界面設計與實現的角度切入前端開發,不管是藉助 CSS 框架仍是 JavaScript 框架實現 View 層的快速設計與開發,那是極極好之事。

至於交互設計,我想只能靠多把玩優秀的產品,從中領悟了,靠的是感性認知和天賦啦。再以後,若是有意拋棄後端,則能夠深刻學習 Node.js,將後端之所學,在 Node.js 上一一尋找對應。

永遠記住:不要爲了學習編程語言而學習編程語言。一切從需求和產品出發,須要什麼,補足什麼。

相關文章
相關標籤/搜索