这是真事儿,在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 小型库集合,一天看十个不是梦!

给迷茫的你学习Node.js最好的方法的更多相关文章

  1. 从官网学习Node.js FS模块方法速查

    最新文档请查看仓库 https://github.com/wangduandu... 1. File System 所有文件操作提供同步和异步的两种方式,本笔记只记录异步的API 异步方式其最后一个参 ...

  2. 转载:【知乎Live】狼叔:如何正确的学习Node.js

    [知乎Live]狼叔:如何正确的学习Node.js 作者:狼叔:i5ting 原文链接:https://i5ting.github.io/How-to-learn-node-correctly/

  3. 学习node js 之微信公众帐号接口开发 准备工作

    绪:因工作须要,近期開始学习Node js,之前隐隐约约听到过node js 但没有实际见到过,仅仅好google了:至于什么是node js,能做些什么,有多么好.或者有哪些弊端我这里就不多说了,由 ...

  4. 【灵魂拷问】你为什么要来学习Node.js呢?

    [灵魂拷问]你为什么要来学习Node.js呢? 学习node.js适合的人群: 需要必备一些HTML,CSS,JavaScript及编程有一定程度了解的读者阅读,一些简单的命令行操作,具备服务端开发经 ...

  5. 学习 Node.js 的 6 个步骤

    第一步 对于刚接触Node.js的新手来说,第一步无非是打好基础,你需要弄明白以下事情: JavaScript 的特性和语法.假如你对 JavaScript 还不熟悉的话,推荐书籍及链接: JavaS ...

  6. Centos7 中 Node.js安装简单方法

    最近,我一直对学习Node.js比较感兴趣.下面是小编给大家带来的Centos7 中 Node.js安装简单方法,在此记录一下,方便自己也方便大家,一起看看吧! 安装node.js 登陆Centos ...

  7. TODO:Node.js pm2使用方法

    TODO:Node.js pm2使用方法 pm2 是一个带有负载均衡功能的Node应用的进程管理器. 当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完 ...

  8. 如何系统地学习Node.js?

    转载自知乎:http://www.zhihu.com/question/21567720 ------------------------------------------------------- ...

  9. 学习 node.js 搭建web服务器

    开始 学习使用 node.js 首先完成搭建一个 web服务器.myweb.js var http = require('http'); var url = require('url'); var h ...

随机推荐

  1. UVa 1252 20个问题

    https://vjudge.net/problem/UVA-1252 题意: 有n个物体,m个特征.每个物体用一个m位01串表示,表示每个特征是具备还是不具备.我在心里想一个物体,由你来猜. 你每次 ...

  2. jquery和bootstrap获取checkbox选中的多行数据

    在项目中,经常遇到,于是整理 引用bootstrap的js和css 代码解释: $("#dgFlowList").find(":checkbox:checked" ...

  3. selenium-chrome-headless

    #coding=utf-8 from selenium import webdriver import time chrome_options = webdriver.ChromeOptions() ...

  4. html & js 单双引号

    1.html使用双引号,嵌套亦如此,表示dom元素的属性 <input value="Test" type="button" onclick=" ...

  5. 多年未写过java了

    java面试必须了解和记忆的知识点(linux,nginx,数据库之类的暂时不考虑了) java面试的115常见问题,这个博客还是不过的推荐一下吧 http://www.importnew.com/1 ...

  6. C#通过Oracle.ManagedDataAccess无法访问Oralce

    问题描述:通过C#引用Oracle.ManagedDataAccess.dll访问Oracle,写了如下一段代码,在本机能正常访问,但是将编译后的exe放到服务器上面就无法访问了,一直提示登录失败.而 ...

  7. alias和alias_method的区别:

    1.alias 是 Ruby 的一个关键字,因此使用的时候是 alias :new name :oldname,而 alias_method 是 module 类的一个方法,因此使用的时候是 alia ...

  8. nyoj 1237 简单dfs

    最大岛屿 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等.加勒比海盗,你知道吧?杰克船长驾驶着自己 ...

  9. 对LOV中的值进行强制验证

    当LOV之中只有一个LovMap返回当前ITEM时,修改了LOV输入框的值,会弹出验证窗口,若此时忽略此窗口,在进行下一步的时候不会去验证此LOV中的值是否一定在可选列表中. 解决方式, 1.在页面加 ...

  10. MyBatis Generator自动创建代码

    MyBatis Generator自动创建代码 1.首先在eclipse上安装mybatis插件 2.创建一个mavenWeb项目. 3.在resource中写入一个xml,一定要与我得同名 < ...