本人做前端,沒有後端基礎,只懂http一些常識。

比較熟練js,但是看node的文檔感覺不是很友好。最近打算學習後端,朋友覺得python發展前景更好些。我還怎麼選擇


補充一個,可以先不學Python和Node,而是先去學PHP(畢竟世界上最好的語言[手動狗頭]),PHP比較簡單好上手,入門快,又有大量的學習資料,能寫一個項目後,你也就大概掌握了Http、表單、Ajax、MySQL、文件存儲等基礎知識~~~

————————割————————————————————————————

沒有後端基礎的話,建議還是先學Node,同時好好補充下HTTP的基礎知識(推薦一本書:《圖解HTTP》)、資料庫的基礎知識(《MySQL必知必會》)

學習Node的話可以先看看這個

Node.js 新手入門 - CNode技術社區?

cnodejs.org

至於用express還是koa2,個人建議學習時先使用express,相關的資料比較多、開源項目也多...學習參考資料直接看官方文檔,英文能力OK,直接擼英文版的,看著喫力的話,就看中文的

Node.js web application framework?

expressjs.com

Express - 基於 Node.js 平臺的 web 應用開發框架?

www.expressjs.com.cn

做完一個項目後,再去看看egg.js,學習下一個企業級項目的框架結構是怎麼樣的

egg - 為企業級框架和應用而生?

eggjs.org

最後,再去看koa2吧


我認為Python和Node是難分伯仲的。

很多人吐槽「Node缺少成熟的大框架」,我認為這個既是Node的缺憾同時也是Node的優點,為什麼這麼說?其實這和Node社區的開發思想有關,幾個領頭的開發者都推崇「寫做好一件事的小程序,然後把它們串起來」的Unix哲學,加上npm對於包之間互相依賴處理得很好,靈活性其實是Node的賣點之一。所以從某種角度來說,實際上Node並不需要像Django那樣大而全的web框架。

Node.js有微軟的加持,Windows基本被視為一等公民來支持,libuv已經可以很好的做到統一跨平臺的API;而Python雖然也對Windows有官方的支持,但是總感覺是二等公民,時不時出些小問題。

單純從語言角度來說,Python寫起來要比Javascript舒服很多。Javascript設計本身有許多缺陷,畢竟當時設計的時候只是作為在瀏覽器中做一些簡單任務的script,所以代碼一旦龐大,維護還是有困難。不過用Coffeescript可以很大的改善Javascript,幾乎可以和Python等同。

就非同步風格來說,Node.js的非同步Style是CPS,也就是層層callback,基於event,和瀏覽器中的Javascript很像。缺點是邏輯一複雜,就變得很難維護。而Python的非同步除了和Node.js很像的Twisted之外,也有基於coroutine的gevent,coroutine讓非同步代碼維護起來更容易,不過個人感覺學習曲線要陡峭一些。

我當時也在Python和Node之間徘徊過,後來發現用Django做web的開發,在一些需要RESTful或高頻請求的部分用Node.js簡直就是一片新天地哇。


前端先學node 天賦樹是同一系的 很自然。

最快get 稱號 全棧

需要寫寫腳本用python 科學計算 爬蟲 等等。兩個表達能力差不多 python的科學庫多些。解決問題用python更容易有現成方法


個人覺得還是先主攻Node,前端學Node有助於提神自己的Js水準,Python後面學都是可以的,因為當你在做前端的時候其實已經在使用Js 學Node不需要重新花成本瞭解語法,當然Python得語法也特別簡單,我也是前端 我是學了Node和Mongodb+Koa2框架後 全面瞭解了Js的運行機制才學Python的 因為公司業務需求必須要用到爬蟲技術,當然一開始我用Node寫爬蟲也是感覺不友好,才學Python的,但是你得先熟練一門語言學第二門語言才能更加精通,當然如果你對自己Js水準足夠自信,也可以直接學Python 程序都是一通百通的,你可以去看看我寫的文章,全部是Python的 因為本人目前主要職位是前端,所以我的文章也是以前端的角度來學Python,我會不定時的去更新Python的資料 我講解的都是從零基礎開始學的


node

個人認為python的動態類型維護起來比js還要麻煩(可能是我py的文檔沒有好好看過

其次管理npm比pip好不少

如果覺得js寫的不爽還可以換成typescript

最後安利幾本node好書(逃


當然是先學node呀

雖然文檔很不友好,但是可以通過前輩們的博客進行學習,比如廖雪峯的Node.js


node

如果你js沒有問題,那麼你學習node將會沒有一點問題,想快速掌握一門後臺語言,node無疑是你最好的選擇。


去百度指數和 Google Trends 上搜一下吧:


沒有後端基礎還是建議 nodejs ,就像前面回答一樣,學習週期短入門快,後面基礎豐富了就可以轉 Python , Python 糖多一點吧。


選 JAVA


從難易來說,尤其是你有js基礎,node容易。

從使用起來看,python舒服的多。我寫過一個星期node,受不了那些嵌套的大括弧,call back, promise, await,都一樣。用python推倒重來,感覺完全不一樣。永遠也不會再用node了。

python, 有flask等框架,也有aiohttp, 和Node一樣是非同步並發的。

性能上有人說aiohttp和node差不多,加uvloop更快。

但是python牽涉東西比較多,門檻比Node高。尤其非同步要寫好需要時間。我就是直接aio,沒有用flask.

python能做的東西比node多的多,除了前臺。

另一個選擇是夠浪,最容易入門。

如果找工作的話,先了解一下市場吧。


首先,你要明確你要走哪個方向?深入前端還是轉後端,如果是深入前端方向的話,那必須要會node。如果你想轉後端的話,那就學python吧。

其實也沒什麼好糾結的,我建議先學node,node語法跟js是一樣的,多了一些概念而已,學的會比較輕鬆。


首先,作為一個合格的前端,node是必學的。

其次,在web這個領域python是沒有前途的。


建議先學python,跟著flask官網學習,言簡意賅,例子很多,一步步覆蓋基礎後端開發的大部分領域。

別一上來就node的事件驅動,萬物皆流什麼鬼,更何況這些編程範式還是構建在脆弱的js上的。前端是必須要學node,但是隻學node是要走彎路的。

其實這些都是不用說太多,有經驗程序員必然會做的選擇。


python有助於從前端思維方式轉向後端思維方式,python後端的資料比node的資料質量要高不少,可以先通過node簡單熟悉一下後端的大概流程,然後通過python進一步學習。


推薦閱讀:
查看原文 >>
相關文章