精华 迷茫时学习Node.js最好的方法
发布于 7 年前 作者 i5ting 17113 次浏览 最后一次编辑是 6 年前 来自 分享

给迷茫的你学习Node.js最好的方法

WechatIMG1.png

这是真事儿,在3w咖啡整理书稿,然后小弟梁过来了,聊聊他的现状,一副很不好的样子,在天津我曾带过他大半年,总不能不管,我给他的建议是:“每天看10个npm模块”

对于学习Node.js迷茫的人来说,这是最好的方式,当你不知道如何做的时候,就要向前(钱)看,你要知道积累哪些技能对以后有好处。对于学习Node.js必经之路,一定是要掌握很多模块用法,并从中汲取技巧、思路、设计思想的。与其不知道学什么,为什么不每天积累几个技巧呢?

但这个是有争议的,朋友圈收集的反馈非常直接

  • 一天看10个?怎么个看法?
  • 每天看10个。。。工作不饱和啊
  • 看完能年薪百万不?
  • 你说的不对,不在多,在精
  • 您说的这个会用任意个包解决过小需求算会么?还是要阅读过文档才能算?

下面我会一一作答

一天看10个?怎么个看法?

这里的10个其实只是个虚数,看个人能力和决心,量力而行即可。

但请一定要能做到每日精进。

Node.js模块在npm上的统计数据表明,截止到今天2017年9月24日,共有55.9万个模块。单日下载在1.5亿次。这么大规模的模块,每天学几个,水平一定会增长的非常快的。

最难的不是下决心,而是坚持!这是最值得自豪的称赞,没有之一!

每天看10个。。。工作不饱和啊

想要成长又不吃苦,哪有这样的好事儿,编程没有捷径的。在我看了每天看10个并不多。

至于说工作不饱和,我不认同。工作多少和有效工作是2个概念,很多人有效工作时间不足2小时…毫不夸张!你不能抽出时间学习,你知道你的时间都用到哪里了么?你真的会时间管理么?

按照柳比歇夫的做法,记录一天看看,你自己到底在什么地方花费时间最多?按照我小弟的说法,基本上白天被中断的时候非常多,各种人来找他,这让他痛苦不堪。其实这事儿非常好解决,你就告诉它:“稍等,我现在在忙,等我5分钟,行不?”,别小看这样的一句话,它可以帮你挡掉80%的中断。

他还说了一个例子,写完功能后,由于没有后台管理,需要他帮测试添加修改数据,基本上一周2天半做功能,另外2天半辅助造数据,我当时就火了,你是不是傻?写个管理后台的crud要多久?为什么要蠢到去手动改数据?明明是自己的方式不对,自己坑自己嘛!将一些重复的劳动消灭,不合理的劳动消灭,争取更多的时候用在写代码和学习上不好么?

看完能年薪百万不?

上面的图里也说了,一般正常工作的人掌握的可能连200个模块都没有,这是很实际的。毕竟大家的不会频繁的切换场景。所以很多人工作很久,还是不知道怎么写开源软件,1)不知道写啥,没思路 2)不会写,没写过。每次看到这样的人都很郁闷,真是可怜之人必有可恨之处啊。

是的,大部分不具备接触更多场景想法的几乎。但是,接触面不够,你又怎么能够做出更好的选择呢?每次大家都说,合适的场景做合适的技术选型,这话基本等于废话,大部分根本不具备这样的能力。我举个例子,Node.js有2个知名的redis库,一个是redis,另一个是ioredis,我一般都是推荐ioredis的,作者是luin,前阿里巴巴工程师,现在是石墨技术负责人。对于ioredis的代码写的非常棒,无论是api设计,还是性能、测试、代码质量等都明显的高于redis库。甚至redis的人找luin要求合并一起基于ioredis写。如果连这么基本的选型的都做不了,只能说明你自己的无知。见得少,不具备区分的能力。而已。

至于年薪百万,身边好多朋友早都到了。这些人大都思维敏捷,思路清晰,无论是在业务上创造价值,还是在架构上降低成本,都是能够把握全局,高屋建瓴,具有俯视视角的人。

大局观好的人真心不多。那么怎么样能够拥有较好的大局观呢?其实还是要多思多看多总结。这不是虚话。第一次当首席被涨工资的时候,还是蛮有趣的。当时公司比较闲,我躲在老板的小办公室(小黑屋),整理了公司所有的产品,屡清楚它们之间的关系,并试图给出解决方案。当时cto刚来,找我聊天,我就给他讲了这些,于是就有机会按照自己的想法来做。

大家都在混日子的时候,才是你的机会。如果真的你能够坚持1年,每天10个,1年至少学会3000个模块,好处是对这些模块更清楚,对node能够使用的场景更了解(大局观),对如何在合适的场景提供更好的选型有更好的理解,最重要的是有恒心,这样的人放在什么岗位都错不了的。年薪百万真的不是梦,但大家不相信的原因是,自己没有做到,也不愿意相信别人能做到。这其实就是成功的人与loser的差距吧。

知名架构师史海峰开玩笑说:“1000元1一个”,算上也差不多,这年头会个express,工资上万也很多吧。

你说的不对,不在多,在精

你说我说的不对,但我却要说你说的对。确实是在精不在多。

但是有一点你错了,上下文说的是当你迷茫的时候。你不知道要怎么学习,那就只能每日精进,别管学什么,只要对最后的目标有益即可。

还要说一点就是,学习之初最好选小模块,避免上来就来大的难的,容易消化不良。而且对于自信心的打击是非常大的。

您说的这个会用任意个包解决过小需求算会么?还是要阅读过文档才能算?

学习当然是要越深越好啦。先会用,然后扒源码,扒套路(开源做法,测试,代码结构,编码规范,开源协作等等)。这个过程开始是无聊的,你会有很多东西都不会。这个时候最好的做法就是一次只多学1个,避免落入长尾陷阱。

等到积累到一定程度的时候,你要适当的总结,大家的玩法哪些是类似的,哪些写法是特定场景的,从而能够理解作者的意图。甚至可以通过代码共享,和作者成为朋友。

掌握了套路后,就是创造的过程了。这才是编程最有意思的开始。

如何学习

推荐一个repo即 https://github.com/parro-it/awesome-micro-npm-packages 小型库集合,一天看十个不是梦!

另外推荐一个【知乎Live】狼叔:如何正确的学习Node.js https://www.zhihu.com/lives/928687583372926976

25 回复

赞~贵有恒啊~

哎,看来还是自己太懒了。是时候给自己定个目标了

特别想坚持下去,,但更想有一起讨论技术的伙伴,,周围没几个能请教技术的,这在这里面,又怕被打击

来自酷炫的 CNodeMD

66666感谢分享! <br> <br>我是尾巴

https://github.com/node-modules

All about node.js modules like your project ‘node_modules’ dir

Repositories 142 个,均为实际业务场景中用到,并有足够高的单元测试覆盖。不谢

image.png

狼叔你第一个问题答非所问了吧。怎么看问的是具体怎么看,比如是详细过一遍源码还是只看下用法和文档,这差别有点大……

@muermaru 下一篇给出,如果看一个node模块

不太写node的人能否直接去看npm上的模块?从哪些模块开始看起?最近想深入学习下node

激动😄,好办法,看小模块不累。

上面的图里也说了,一般正常工作的人掌握的可能连200个模块都没有,这是很实际的。毕竟大家的不会频繁的切换场景。所以很多人工作很久,还是不知道怎么写开源软件,1)不知道写啥,没思路 2)不会写,没写过。每次看到这样的人都很郁闷,真是可怜之人必有可恨之处啊。

是的,大部分不具备接触更多场景想法的几乎。但是,接触面不够,你又怎么能够做出更好的选择呢?每次大家都说,合适的场景做合适的技术选型,这话基本等于废话,大部分根本不具备这样的能力。我举个例子,Node.js有2个知名的redis库,一个是redis,另一个是ioredis,我一般都是推荐ioredis的,作者是luin,前阿里巴巴工程师,现在是石墨技术负责人。对于ioredis的代码写的非常棒,无论是api设计,还是性能、测试、代码质量等都明显的高于redis库。甚至redis的人找luin要求合并一起基于ioredis写。如果连这么基本的选型的都做不了,只能说明你自己的无知。见得少,不具备区分的能力。而已。

这段话扎心了啊啊啊啊,我要好好学习

@meiwhu 哈哈哈

狼叔最后的“如何学习”给出的小型集合库真好啊!之前一直是看到大的库的源码就头疼,现在终于可以从小库入手看看了!哈哈。。。。

@Damhoo 如果大家喜欢,后面再整理

@i5ting 一直坐等狼叔整理出来呢!之前用nodeJS的时候都是把所有的东西写在一个页面,后来慢慢的了解了库和中间件才把东西慢慢给分开!汗。。。

感谢分享,一直都不知道怎么学,可以尝试去学习了

嗯,向前(钱)看,谢谢

最近一直在做 react,有点疏远了 node,狼叔说的话在理,学习

有没有数据库ORM库推荐,感觉sequelize多表连接好难用啊,非得,是不是用的方法不对呢

@mengdu bookshelf, typeorm很多啊

@mengdu sequelize 还好吧~用的方法估计不太对,虽然写法丑了点,但还是比原生sql要短小精悍

@x-cold 多表查询是不是非得建立关联关系才能用?我在文档里没找到说明

@mengdu 我也没发现啊,只能天天加外键,我觉得这样很不合适啊。。。

@Wangyaoguang 外键这东西,感觉不太好搞,修改数据麻烦

回到顶部