本文通过提供给大家学习的方法,以及我个人录制的一系列视频,帮助你更快更好的学习 Nodejs,了解前后端的 HTTP 知识,以及配置和使用阿里云 ECS 来部署你的 Nodejs 项目,成为那个具有争议的全栈开发工程师。

如果你是前端开发工程师,你本地电脑上不可避免的要安装 Nodejs,作为工具也好,作为服务器也好,要帮助你做掉很多又脏又累的事情,比如 less/scss 的编译,ES6/7 到 ES5 的转换,Javascript 代码的压缩合并,切页面调试样式的热更新,无论是通过社区迅速更新换代的 Grunt/Gulp/Webpack,还是通过自己集成或者定制到本地的其他模块,Nodejs 的这个运行环境都是你得力的助手。

如果你是后端开发工程师,比如之前是开发 PHP,Java,最近转行做 Nodejs 或者想要增加一个语言技能才来学习 Nodejs,你也不可避免的要去了解 ES5/6/7 或者说 Javascipt 的整个语法概念,去浏览 Nodejs 的各个 API,然后基于 Nodejs 之上的一些流行框架,比如 Express/Koa,甚至是阿里开源的 Egg,用你既有的后端开发经验,对于 Web 服务层交互的知识,再套上这些框架的 API,来玩票性质的搭建一些子项目运行一些产品业务。

如果你是运营或者产品经理,但是你已具备一些基本的开发技能,比如 HTML/CSS/Javascript,甚至是对 Linux 主机的系统使用,域名解析也有一些经验,你可能也更愿意在不去学习另外一种全新的语言下,来借助 Nodejs 搭建你的 Web 服务,帮你的小点子小创意快速上线测试,获取一些用户的反馈或者价值验证,事实上我认识的不少产品经理对 Express/React/Vue 这些很喜欢,能高效的帮他们实现一些产品原型的测试。

以上举例,是为了说明影响你涨薪也就是职业发展的其中一个因素,就是某项技能的深度,或者是某些技能的广度,这些技能包含但不限于前端后端或者产品,不要给自己设限,从事某个工种不代表你只可以钻研这个工种,就拿前端举例,既然本地有了 Nodejs 的运行环境,那么适度的往下扩展技能树是顺水推舟的事情,而对 Nodejs 很感兴趣的无论任何职业的人来说,什么时候学习它都不晚,因为整个互联网经过几十年的发展目前的现状就是, Javascript 成为了 Web 层最容易入门使用且最被工业标准和厂商推广的语言,掌握了这个语言,就掌握了 Nodejs 的 1/3,剩下的 2/3 分别是 HTTP 知识和 Nodejs 本身的运行机制和系统能力。

我在 2016 年被杭州芋头哥邀请去大搜车做了个小分享,当时现场氛围特别好,整个杭州甚至苏州的许多做 Nodejs 的同学,其中超过 2/3 都是前端工程师,都跑来一起嗨皮,我之后又模拟录制了一遍,对于 Nodejs 不熟悉的同学依然有参考意义,大家可以听一下:

Java 和 Javascript 是雷锋和雷峰塔的关系,而 Nodejs 和 javascript 可以简单的看做是雷锋塔和雷峰塔上的砖这样的关系,虽然这样比喻不够准确。

掌握 Javascript 和掌握 Nodejs 并不冲突也并没有绝对的先后顺序,因为往往我们开始使用 Nodejs,是从 Web 的层面,而这个层面,我们有很多简易入手的框架使用,比如 Express,即便不了解它的原理,以模仿性质的方式我们都可以通过阅读文档来编写一个简单的网站程序,然后基于这种迅速可见可得的体验进一步激发我们学习的兴趣,花更多的时间去从多维度反复敲打自己对于 Nodejs 的知识结构,这样一天两天慢慢就理解它的知识点了,通过实际的手写代码,运行服务器,看预览效果,再去查文档,写更复杂的代码,有些关键字不懂再去查查,这样其实就是一个不断反复不断倒带学习的过程,说是学习,其实并没有刻意的去啃 Javascript 或者 Nodejs 的语法和 API,而是自然的从工具使用走向理论构建的过程。

上面这段是面向非常初级的 Nodejs 学习者,如果已经有了其他语言的编程能力,那么入门 Javascript 也不会有太大障碍,可以先去了解 Javascript 这门语言的特点,再去尝试使用 Nodejs,在我看来,只要你对于 Javascript 和 Nodejs 是陌生的,那么学习这两个就是交替并行来回穿梭的过程,在去熟悉 Nodejs 的过程中,也就逐步的了解到了 Javascript 的语法规则,在研究 Javascript 的过程中,也就更容易领会 Nodejs 暴露出来的框架封装出来的方法函数变量他们的使用姿势和运行特点。

对于学习习惯不同记忆能力不同的人来说,看文档和做项目哪个更优先,应该不会有标准答案,而且这两个在中期以后往往是交叉的,我个人的学习习惯一般是,先做项目,如果项目太难,我就把项目中难的功能都去掉,梳理出一个最简版本,以写代码为为主,以看文档作为补充,比如白天或者核心时间写代码,午间或者公交车上这些零碎时间翻文档,可以有目的的看,也可以随便挑几个感兴趣的看,这样做的缺点是,在项目一开始启动的时候,会因为不熟悉文档,走一些弯路而且比较耗脑力,它的优点是,一开始就写代码有作品雏形出来,容易激发我征服它的斗志,更有欲望把它做出来,所以这样开始的方式,往往我都不会中途放弃,而看文档的方式,我会觉得枯燥,或者不知所云,可能看看就困了放弃了,这种不太适合我,但是它的优点也很明显,如果充分的看了文档,基于原作者或者原始团队的角度理解技术点,更容易一开始就走在正确的道路上,无论是名词还是原理或者 API,心中会很有方寸,做项目的时候也容易推测出来出问题的环节去哪里找答案。

对于新人来说,先把项目做起来会比较实用,走弯路和踩的坑必然会多一些,但是这样更容易产生兴趣把硬骨头啃下来,也会提高解决问题的即时反应能力,所谓临阵不惧,运筹有度。

练手项目从观看类型上分两种,一种是纯文字形式的,比如连载的博客,一种是视频,或者是直播或者是录播的视频,连载的博客好处是都形成了文字,并且有代码示例,看的时候可以用脑力集中消化某一个技术点,容易看懂,这同时也是它的一个缺点,因为博客中不同的技术点都用大脑消化后,就会产生一种已经理解了它的直觉,这种直觉会促使你快速的通读全完直到最后,所有的编程环节却没有动手实施,导致过了三五天后再来回想这些文字和当初所理解的概念,脑海中就会印象模糊甚至一片空白,用行话说就是没有把消化后的知识持久化。

直播的视频对个人的时间要求比较严格,同时直播中不能暂停甚至不能提问,会导致自己被动的 Push 往前走,容易遗留下一些关键的问题点没有及时消化,不过现在有的直播平台会自动存储有备份,所以也可以重播。

我个人倾向于看录播的视频,可以暂停,可以快进,可以重播,跟着屏幕敲代码大概是目前最好的一种跟随实战的方式了,录播的视频这方面有很多的学习平。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注