这是真事儿,在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 10048 噪音恐惧症(Floyd)

    https://vjudge.net/problem/UVA-10048 题意: 输入一个C个点S条边的无向带权图,边权表示该路径上的噪声值.输入一些询问,每次询问两个点,输出这两点间最大噪声值最小的 ...

  2. Vim简本

    参考链接:http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/ 本文将更简化,只保留其中的精华部分. Level One — ...

  3. 通过gevent实现【单线程】下的多socket并发

    server import sys import socket import time import gevent from gevent import socket,monkey monkey.pa ...

  4. 遇到Io阻塞时会切换任务之【爬虫版】

    #! /usr/bin/env python3 # -*- coding:utf- -*- from urllib import request import gevent,time from gev ...

  5. 内存溢出和内存泄漏 mark下

    https://jingyan.baidu.com/article/495ba841e4423438b30edeb5.html https://www.cnblogs.com/hyh-test/p/8 ...

  6. 大数据学习:storm流式计算

    Storm是一个分布式的.高容错的实时计算系统.Storm适用的场景: 1.Storm可以用来用来处理源源不断的消息,并将处理之后的结果保存到持久化介质中. 2.由于Storm的处理组件都是分布式的, ...

  7. SpringBoot导入excle文件数据

    本文主要描述,Springboot框架下上传excel,处理里面相关数据做逻辑分析,由于用到的是前后端分离技术,这里记录的主要是后端java部分,通过与前端接口进行对接实现功能 1.在pom.xml文 ...

  8. Asp.Net MVC中Action跳转

    首先action的跳转大致归类: 1跳转到与当前同一控制器内的action和不同控制器内的action. 2带有参数的action跳转和不带参数的action跳转. 3跳转到指定视图,不经过Contr ...

  9. mac 无法打开xx ,因为无法确认开发者身份

    系统偏好与设置 - 安全性与隐私 - 通用 允许从以下位置下载的应用: 选择 [任何来源],如果没有这个选项,使用终端执行下面的命令: spctl --master-disable (spctl空格 ...

  10. Confluence 6 设置公共访问备注

    你不能为匿名用户赋予空间管理员或者限制权限. 你可以让用户自行注册你的 Confluence 站点,同时也可以选择其他的用户注册选项,比如邀请用户注册等.请查看:Add and Invite User ...