作為一個前端工程師,是往node方面轉,還是往HTML5方面轉?

這兩方面,哪個未來幾年更具有潛力


既然題主補充說明他不是「新華電腦教育」的前端,那我就把原答案刪掉。

我想說的是,現在已經是2014年年底了,在幾乎所有主流網站都使用 HTML5 的情況下,你想繼續在前端界——甚至在整個 Web 界——混就必須學 HTML5。

搞 IT 做程序員,不與時俱進,怎麼混得下去?

至於 Node.js,它是用於後端開發的,前端可以不學,但學了能讓自己對 Javascript 掌握得更深,尤其是非同步的思維。


當你問這個問題的時候,我碰到很多類似於這樣一個狀態的同學,他們都有一個共同的疑問該學php還是nodejs,包括我自己也曾有過同樣的經歷。幸運的是,通過我內心的掙扎或對當前市場供需關係以及行業發展的綜合評估後,我還是在接觸了php之後回到js這片天空上來了,一方面是客觀因素,一方面是興趣導致的,前端太好玩了。其實這也是一個開發者成長必須經歷的一個洗禮,一個磨難,一個挑戰。很多人不差智商,不差情商,不差體力。就是學不好一個東西。最後敗在堅持,專註上面了。經受不住其它語言,內心私慾的誘惑,都一一敗下陣來。缺少的就是:堅持專註。業界堅持,專註代表: @司徒正美@張鑫旭 。司徒大牛 600篇js文章,司徒正美 - 博客園 ,是歲月或歷史或勢力的見證。張同學42頁博文也是一個標誌。張鑫旭-鑫空間

關於html5,他是個新東西嗎?是新瓶裝老酒而已,有實際處理問題的經驗,可以平滑的過渡,學習成本很低,但並不表示沒有。

以下是我在群內回答一個同學問題時的一點個人建議,僅供參考:

學前台的需要了解後台的一門語言,了解,是要到哪種程度?是要會做一些東西出來嗎?

了解數據從資料庫中查的動作,或輸出傳遞返回http的這個過程。也可以深入了解一下輸入網址之後做了什麼事的這個貼子。

http://www.html5rocks.com/zh/tutorials/internals/howbrowserswork/

NutUX

從瀏覽器的渲染原理講CSS性能-Smallni"s blog

瀏覽器的渲染原理簡介

javascript文件並行載入與順序執行 《高性能javascript》讀書筆記


js 並行載入與順序執行

從輸入 URL 到頁面載入完成的過程中都發生了什麼事情? FEX 做最專業的前端

NutUX


瀏覽器的工作原理:新式網路瀏覽器幕後揭秘

js和css的順序關係%E5%92%8Ccss%E7%9A%84%E9%A1%BA%E5%BA%8F%E5%85%B3%E7%B3%BB

js css的順序

Javascript 裝載和執行

瀏覽器載入和渲染html的順序

比如了解基本的sql語句,select,delete,update,insert,然後了解各個語言操作sql的基本語句,然後輸出到頁面上的過程,在深入就是了解一下mvc的開發流程。

然後你會發現,世界上有2種語言,操作sql的後台語言,操作dom的js。

然後就有方向了,學了js,學任何一門後台語言,都可以無縫的跨界,比如php,nodejs,jsp,c#,ruby,python, and so on.區別的是語言開發的平台,工具,有時候連api都是很像似。

從前端的角度我推薦2門語言,php,nodejs。想照顧一些老的東西,就學php,展望新方向可以了解一下nodejs。反正這2個從操作sql的方面來說,有很大的相似性。按照這個結論下來,無論選nodejs,php都可以,可以從主觀上判斷,到底是那個更適合你。或者做一個小的留言板,看看那個更符合你的思維習慣。

瓶頸就是你寫得少,建議多寫,用解決實際問題的經驗來跨越語言造成的障礙。

剛才你說做一些東西出來,建議有這幾個,你可以選擇一下:

留言板,個人網站/博客,企業網站,電商網站,文章管理cms,門戶網站,難度分別從前到後。

然後回歸正題,只是建議你了解,了解是為了把前端乾的更好,什麼時候真正的深入學習?建議在學好js的前提之下,學習一門後端語言,nodejs或php都有各自的應用場景,要麼選一個公司現在用的,要麼選擇一個適合自己思維的。

另外什麼叫學好js?請向各個業界js大牛看起,不一定非要那麼深的深度,但一定達到自己力所能及的高度。

最後分享一下我個人的心得:每個人都有好奇之心,這對做技術的來說並不是什麼壞事,正因為這顆好奇之心,不斷的帶領向前邁進。另外了解一下滿足一下好奇心沒什麼不好。就如同我當時學習php一樣,感覺學習之後有多牛B,真正的學習後做了一個網站出來之後發現,確實收穫不少,對前端也有幫助。但是js的水平還是在原地,除了擅長使用jquery之外,並沒有太多的擅長。所以我了解之後迅速回歸到原生js的學習當中,就是發起的這個項目 jikeytang/frontcode · GitHub ,

豪情前端作品列表: 然後這是我寫了2個月的戰果,放到生產中去,肯定有不少bug,但重要的是邁出了第一步。

到目前為止我感覺,還沒有達到一個自己滿意的力所能及的高度,努力中。但人的精力是有限的,能力是有限的,在有限的精力裡邊把一件事情做好就已經很不錯了。

另外想找個好群就加這個吧:389875212


Node是前端工程師的天使翅膀,前端從此不在固步於瀏覽器,可以翱翔在伺服器端開發(koa chair tianma等),前端工程化工具(yo grunt bower gulp等),跨平台桌面軟體(atom編輯器)

HTML5 CSS3 ES6是看家本領

技能掌握越全面,思路越廣闊


現在你還對HTML5猶豫?

node到是要看看你工作環境,如果想嘗試全端,可以考慮一下,不過說實在的坑比較多,特別是著名的回調金字塔。


玩玩 Angular,Backbone/React... 用 node 優化流程建 CRUD server,再玩玩 mongodb,redis,meteor,firebase... 做一個趕時髦的前端文藝青年。

不過最終真正能用到產品上的有啥?只是玩的開心而已。


複製一個之前的答案,我想也適合這個主題

作為一個一直工作於前端的人,我來說說我的經驗吧。(ps:我是今年剛畢業的非重點學校(全國五百倒一)的非計算機專業學生,目前在一家外企工作。)

大學時因為好友認識的人比較多,有比較好的人脈,在大二開始的時候,我們接一些學校外面的網站來當兼職以及練手。

那時候我負責的是前端,所以我算是以前端入門web的。由於不是計算機,當時學的東西,要是按照需要學的,如

- CSS Hacker

- 瀏覽器兼容性

- Javascript以及jQuery

等等這些已經是一些眾所周知的事,這裡就不多說了。說說之後的事吧,當時Nodejs剛火的時候,試著接觸了一下,還沒有今天這樣子,而且還沒有Backbone,Angularjs,ember這些東西。當時,我以為世界就只有這麼大,前端也就只有那麼點東西。

我猜你需要的是一個方向,因為你學到的前端的知識已經達到你所知道的極限,需要去了解一個更廣泛的空間

當我開始實習的時候(外包公司),我開始接觸到了更多的東西,我試著用不同的框架去做不同的東西。

我試著拿Nodejs下的CoAP協議去搭建一個物聯網框架

phodal/iot-coap · GitHub

試著開始用

  • RESTify

  • Node Mongodb

  • Node SQLite

等框來完成這樣一個簡單的系統,以及用JS來寫測試,mock對象,stub對象,spy對象。

在某個時候,當我和你抱著同樣想法的時候,開始了又一次新的旅行

phodal/moqi.mobi · GitHub

拿backbone,mustache,requirejs去搭建一個移動CMS。

接著最近我開始做一個前後端分離的系統

phodal/freerice · GitHub

Node+RESTify提供後台JSON,與cms同樣邏輯的系統完成前台。

最後我得出的結論是:

那些認為前端不能一直做的理由是,

看不到前端的未來。

看不到前後端分離的未來。

前端在過去也是沒有前途的,當時JS沒有現在流行,NodeJS還沒有出來。但是今天呢?

最後打一個小廣告,我的博客,大部分是關於前端的: 狼和鳳凰 | Phodal Geek"s Life


前景方向,nodejs與HTML5的前景都可謂一片輝煌:

  • 現在的github上js已經是最活躍的社區沒有之一,而node的項目基本佔了半壁江山,這是一個很活躍很年輕的領域,而且能很方便地解決很多問題
  • HTML5則是在各大廠的強力支持下成長的,尚在他不成熟的時候都已經有了大量的PhoneGap應用及桌面端WebView在大量使用它,應用場景相當豐富,也不會跟其它技術棧衝突

而至於說選擇,我反對很多說HTML5是基礎而Node是進階的看法,因為這兩個根本不是一個範疇的東西。其實在這兩者之間的選擇,不是純粹的技術選擇,而是關於發展方向的選擇:

  • Node方向明顯是往數據處理及其通信方向走,更偏傳統程序員的進階思路。如果你想做的是程序員,那Node就是前端最好的跳板,在這基礎上再去玩其它服務甚或其它語言,都是相當不錯的工具或基石;
  • 而HTML5明顯更往用戶方向走,要做到的事情更多是讓用戶在WEB界面上能有更多樣化的功能與交互體驗,甚至可以在這基礎上做重量級的遊戲,等等。

的確,這兩者是不衝突的,但從另一方面來說,兩邊的思維方式卻又是截然不同的。作為一名前端,我更傾向於兩邊都有所涉獵,再根據自己的興趣及需要進行深入研究。


如果你之前只做前端,那麼你選擇node.js將是一項不小的挑戰,以我們團隊經驗為例,原先有一定後端編程經驗的人,初接觸node仍然是有點繞,好一陣子才緩過神來的感覺。

HTML5未來的發展是肯定的,不過要有一定的發展轉化結果前,你需要足夠的蛋定,一點點的學和做。有點像小雞變鳳凰的過程。

我個人認為你的這個疑惑本身是兩個問題,寫個登錄註冊的node腳本可能還不能算標準的noder,只能算了解一點吧。所以結論就是你是在考慮不同的發展路線,結合上面的兩點簡單的分析,你可以再好好考慮一下,但建議不可今天學node,明天覺得html5更好,來回折騰在入行的初級階段幾乎是致命的。


技術也有潮流,大家都一致的認為現在是DT時代,這個時代需要什麼樣的技術就往那個方向去靠。當然前提是,你必須得有持續的興趣。


現代的 Web App 開發其實已經無法離開 NodeJS,目前的JS模塊化引發了一系列前端開發應用程序化,也引入了 MVC 框架、Workflow control、編譯系統、單元測試環境等等,這無疑對開發人員有了更高的要求,因為以上的一切都不同於傳統伺服器渲染頁面的模式,這一切都是基於 NodeJS 在前端代碼中完成。

HTML5 只是基本技能罷了。


努力學習html5,有能力能學node就學學。


感覺不衝突啊,作為前端完全有精力兩個都學,區別可能在於專註於誰,這個坎個人愛好或者工作,前景兩個肯定都不錯

為了一個另外一個就放棄沒必要


1、nodejs相比其他後端語言,更多在於解決底層問題。意味著如果要深入nodejs領域,需要吃透諸如網路協議等學校裡面的知識,大家還記得多少?

2、在應用層方面,比較流行的框架是express。express還年輕,應用層的很多坑,它還沒完全填上。你是要一邊開發業務流程一邊填坑?還是要一邊填坑一邊開發業務流程?

3、過去沒有前端,世界依舊美好。後來有了前端,世界更加美好。前端是為了梳理、優化體驗。富Web開發和終端開發沒區別,到頭來還是會獨立出UI工程師專職處理UI層面的問題。

4、前端工程師是真的需要一門用JavaScript語法的能在伺服器常駐運行的語言?還是因為我們後端童鞋不理解我們的所需,提供不了我們所需要的,才涉獵後端。前端不是建立在CPU、內存、硬碟上,而是建立在各種API、Web服務上的。介面充分的時候,有什麼是前端不能做的?

PS1:地鐵作答,思路略亂

PS2:學習、個人項目,NodeJS都是不錯的選擇。企業項目,首先評估下你們有沒值班的童鞋來隨時填坑。


當你還需要問這個問題的時候,那麼答案一定是先搞清楚啥是HTML5吧 然後再nodejs


如果久了 必須全棧


不衝突吧


連 Node 和 HTML 5 你都不了解你還好意思說自己是前端工程師?


其實有全棧開發的。


不存在這個問題,本質上都得用到js,只是多了些不同的東西,別糾結,做就行


聰明的人不會把自己局限於做頁面!!nodejs的出現對前端是個絕好的機會!


推薦閱讀:

如何讓後端開發高質完成前端的工作?
前端開發現在都在用什麼系統和相應IDE?
react 中inline-block的間距去哪了?
web前端如何學習github上的項目?
開發人員可以分為哪幾類?

TAG:前端開發 | HTML5 | Nodejs |