前端工程師學 Node.js 好還是 PHP 好?
謝明明邀。
既然是可愛的明明邀請,我就認真答一回。
首先node是一個基於 Chrome V8 引擎的 JavaScript 運行環境(平台),而PHP是一門語言,兩者其實是不應該放在一起比較的。在這裡引用一段話,這短話來自 關於node.js的誤會JavaScript是由兩部分組成
- core JavaScript
- client JavaScript(DOM、BOM)
而只有core JavaScript可以在node.js上運行,所以node.js借用了JavaScript的語法,但並不能用來處理瀏覽器對象(BOM)及文檔對象(DOM),所以node.js並不是設計為在伺服器端運行解析html文檔的(當然有module可以做此事),所以「在伺服器端運行的JavaScript」在一定程度上誤導了初學者。
也就是說node不只是做後端開發的,結合webkit它就可以拿來開發桌面應用了。詳見GitHub - nwjs/nw.js: Call all Node.js modules directly from DOM and enable a new way of writing applications with all Web technologies.
阿里釘釘的客戶端就是用 NW.js 寫的。當然,php語言也是可以用來開發桌面應用的,只要有對應的PHP運行環境,其它語言也一樣。也就是說題主如果要開發桌面應用,那麼題主首先該學一門語言(比如js),再去學它對應的運行環境(比如node),而題主作為一個前端工程師,即使題主只學了半年,題主也應該對js熟悉了吧?那麼只需要再學習一下node就好了,不需要去重頭學習一門新的語言,從節省時間與精力來看node是一個明智的選擇。
然而目前大部分公司後端都是用php開發的,其次是java,當然用node的也有,如阿里。所以從就業來看,如果學的好應該是不愁找不到工作的。另外,那天我讓明明你學GO,只是開玩笑,當然也不是毫無聯繫,請看如何看待 TJ 宣布退出 Node.js 開發,轉向 Go? - 前端開發The rest of the world is wrong...and we are right...But I write ruby.
估計過陣子樓主又會來問,應該學 express 好還是 koa 好?或者,應該學 yii 好還是 laravel 好?
要我說,哪來這麼多屁事,都學了是能花你多少時間。等你懂的東西多了,一天學一個都不是事。兩個都學啊,學PHP要學JS,學了JS順便學下nodejs嘛,技多不壓身啊大胸弟
先說說自己的經歷,我是一個只有半年工作經驗的前端工程師,現在在公司用node開發項目,能夠用node操作資料庫,完成一些簡單的增刪改查的項目。
所以你會覺得我會推薦你去學習node,但是並不會,我會推薦你去學習java。
對於想學習後端開發的前端工程師,選擇什麼語言並不是最重要的,重要的是通過學習哪一門語言,可以了解到後端的理念,以及後端的開發方式,如果你學會了java,不管是學習node還是php都是非常快的事情,快到幾天之內就可以做小項目。
於是為什麼推薦你學習java而不是php或者node?
因為java語言的編碼習慣,開發思想是要更好的,而且資料足夠的多,坑比node少很多。
為什麼不推薦php,個人原因,非常的不喜歡php的寫法。
很多時候,你花在一些坑上面的時間,都可以學習很多新的東西了,例如我之前用mongo和node開發,中間遇到了一些坑,調試了很久,問題都沒有解決,百度了很久也沒有找到自己想要的結果,最後換成mysql,問題就直接解決了。
並且對於初級的node開發,你還要解決callback hell的問題,這些都會成為你在開發路上的坑,解決這些問題花費的時間,都可以好好的把java入門了。
因為大多數的初級前端工程師的後端能力都是很差的,對於後端的理解都是很少的。但是如果你對後端的開發方式理解的話,學什麼語言並不重要。
最最重要的是:一定要有實際的項目來提升自己,這比看視頻,看書都更有用。
當然是node.js
nodejs
說實話我當時也糾結了很久,不過我不是糾結先學PHP還是Node.js,我是糾結
到底做一個真正的hack呢,還是做一個兢兢業業的碼農,每天在生產線上搬最平凡的磚
後來成了2B程序員。
樓主保重學兩者並不衝突,對於新人,PHP上手快,所以建議先學PHP,有時間在研究Node.js。
BAT,Facebook都用PHP,學習PHP肯定錯不了。重要的是伺服器相關的知識,協議資料庫安全balabala,語言隨意啦
Nodejs還是很有前景的。你如果會PHP,學nodejs很簡單的。所以建議都掌握。
個人愚見,想了解後端知識不是學nodejs,而是先把操作系統、網路知識和各種協議先擼一遍,瀏覽器里跑的js和node里跑的js並無本質區別。
還是Java好
新手先學PHP吧,Nodejs門檻比PHP高很多
別想太多啊,js都沒玩溜就想著後端了....
.NET
感覺前端學node並沒有什麼優勢...