本人做前端,没有后端基础,只懂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进一步学习。


推荐阅读:
查看原文 >>
相关文章