我后端基础为零,怎么学好Node.js呢?有很多朋友说,PHP已经是上个世界的了,真的假的哈?作为初入移动互联网界的小弟级中小弟级,求大神指导。就我所知道的后端,好似还有Python、Ruby、Scala等等。好纠结哈、好纠结,学哪个好呢?话说是不是应该把这个同时也贴到知乎上面去呢?我想我是一定会做这件事情的,同时。 求大牛+大神+码神,以前瞻性的眼光指点迷津一下下。
——我会同时自己不断回答我的问题,因为见证着自己的成长,成为牛掰程序员,改变世界,是梦想!更要是不多年数后的,那真真实实的生活状态。
梦想无用论者表示,最重要的事情是,马上挑一门语言开始学,多实践,自然会找到接近best practise的路。不要期望一门语言能解决所有问题,尤其是“后端技术”这么宽泛的概念。你现在需要的只是一个能解决手头问题的语言,鉴于你现在是零基础,那么你提到的任何一个语言,必然都能解决你现在的问题。
按我的建议,学什么语言不重要,重要的是你学语言想干什么?比如做网站?开发安卓app,等等。明确一个自己感兴趣的目标之后,在选择语言,以兴趣引导语言,学习才有动力。比如做网站,那可能就是php,nodejs,做个简单的blog,在实践中慢慢了解语言,在学习中慢慢成长。
如果你学会了其中的一个,然后在去了解其它的,可以说,入门会很快,因为里边有很多相同的东西。
java 首先,你一定不要用myeclipse进行java web的学习,这样,会让你永远不明白什么java web里面的jsr 规范。作为一个有志向的程序猿,深入到规范的标准时必须的。其次,就是至少掌握一门包管理工具(maven,ivy,gradle),这样会让你学习开源项目的时候得心应手。
优点:可靠的大型解决方案多,速度快(告诉你一个事实,java作为后端语言的性能在各种评测里面都是名列前茅的,不过对于新手而言的感观的慢这点要改过了确实不容易)。 缺点:概念多,包管理工具不易上手。
php 简单,好用开源成熟的东西多,至于你朋友说php是上一个世纪的东西,我告诉你,现在流行的技术都是上一个世纪的(java,python,javascript)
优点:上手快,学习资料多。 缺点:php5和php6 不兼容,速度慢(这个问题,在你还没有精通php之前,请暂时不要考虑),一般只能用来开发web。
python 优雅,简洁,好看,前后端通杀。由于我只是两年前有个开源项目用到了python,然后,那个项目结束以后也没怎么接触python了,所以,这里的评价可能不太正确。
优点:能用的开源项目多,学习门槛不高。 缺点:py3和py2不支持。对win 不友好,缩进的编程,可能会由于文件编码导致项目崩溃。
nodejs 单线程,事件异步驱动模型,通杀网络层,传输层,还可以进行嵌入式的开发(对于跑v8 的js 而言,性能杠杠的,已经有不少人用nodejs + 树莓派开发出各种好玩的东西)
优点:活跃的国外社区,为人民服务的作者众多,强力的github支持(这里不是说nodejs本身,而是nodejs整个模块的生态,一般模块的作者都会回复你的issue,这点心有体会,没有什么东西比把问题交给别人解决最好的了。。。), 缺点:很多模块并不成熟,中文资料不多,过时。国内社区不活跃,喷子很多(主要喷node的性能比php还差我补充一下,大部分(注意是大部分,不是全部,喷的时候不要瞎喷)的评测都毫秒杀php(http://www.techempower.com/benchmarks/),还有就是js作为编程语言的不成熟,关于这点,你去好好翻一下 es5标准(v8的实现的就是es5标准)再来开喷。),所以,要学node,你的英语起码要有初中生的水平,用于方便阅读英语资料和与老外交流。还有就是,不是很人类的callback 编程风格。不过我很喜欢。。