从上个星期4月16日开始学习Node.js到今天到已经一周了,简单的记录下自己的学习过程,希望能够对大家有所帮助。
我是3月底拿到了阿里前端的实习offer,4月14接到了企鹅的hr的电话,4月15阿里部门也终于有人联系我了,向阿里的导师问了下部门的相关情况,纠结一晚上之后决定弃掉其它offer滚去阿里了。感谢 alsotang的内推 PS: 选择阿里一个很大的原因是阿里给发MacBook Air,企鹅那边说开发环境应该是linux or win。
这是导师给我的技术栈列表: Node.js AMD/CMD connect CoffeeScript Jade/ejs Stylus/LESS Yaml mocha instanbul phantomjs d3
可以看出技术栈全部是Node.js相关的,然后我的技术栈:Python 、Golang、JavaScript、Python大一就开始玩,然后去年在选择新语言的时候在Golang和Node.js中又选择了Golang放弃了Node.js。Javascript只是偶尔玩玩。决定去阿里的话就要从零开始学习Node.js了。然后开始第二天开始突击Node.js。
首先16日去了趟图书馆借回了所有和Node.js相关的书籍,包括《Node.js入门经典》、《Node.js开发指南》、《了不起的Node.js》、《Node.js实战》、《CoffeeScript应用开发》
16日下午啃完了《Node.js开发指南》,然后草草干掉之前拖了很久的《编写高质量代码:改善JavaScript程序的188个建议》。 晚上又开始按照 https://cnodejs.org/getstart 的资料列表扫了一遍 《Node.js 包教不包会》 ,《七天学会NodeJS》。 然后本地配置好了环境(nvm,cnpm),顺便把配置过程写到了Dockerfile做成了docker image。方便随时开启一个干净的docker容器来测试代码。代码戳这里
17日扫完了《Node.js实战》,然后读了一遍node.js官方文档中文翻译,期间被迫帮老师写了一个演示用的基于Canvas的绘画板教学用(复制粘贴网上代码…)。
18日看完了《了不起的Node.js》,读完了node.js官方文档中文翻译,还有io.js的官方文档(结合io.js的源代码lib目录下面的js文件)。看了下TypeScript。
19日干掉了NPM文档。扫了一遍 阮一峰老师的《ECMAScript 6入门》,把17日写的Canvas的画板用Typescript分模块重构了下。 先后体验了下AMD(RequireJS)、CommonJS(Browserify)等方案,没用大阿里的SeaJS是因为我的模块是用TypeScript编译出来的,TypeScript好像不支持CMD标准(哪位大神fork一个改改)。
20,21日 因为是周末,由于众所周知的原因,没怎么写代码,就继续把借的没看完的书翻完,《Node.js 包教不包会》等教程又草草看了一遍。看了下nodeclub和acdream源代码。
22日 因为嫌每次开始用TypeScript写一个东西都要npm install一堆之后再从DefinitelyTyped下载对应的类型定义文件,而官方提供的tsd工具又太慢,于是写了一个小工具来自动生成。 然后发布到了npm上面, 地址 ,原理就是几行shell命令,开始用Python实现了一遍,然后用Node.js写了一遍,接下如果有时间就把调用的模块几个自己写一遍,加上test。
23日 今天, 略…
个人总结的学习历程(不怎么适合新手):
- 学好javascript,不解释。
- 刷完几本入门实体书(貌似市面还没有中文的node.js进阶书籍),建议刷3本左右,里面的Backbone等章节可以跳过了。可以全部看一遍之后再开始一个个实例写出来运行。
- 配置好环境, 搞定翻墙,还在用windows的就自行兼容一下。 oh-my-zsh/fish、nvm、cnpm、io.js等等都装好。
- nvm建议修改源代码中的NVM_NODEJS_ORG_MIRROR 为 http://npm.taobao.org/mirrors/node
- oh-my-zsh开启 node npm相关的plugins
- 装好编辑器,vim/emacs粉跳过,sublime、atom、brackets等随便挑一个,webstorm虽然好像被很多人鄙视,但还是建议装好用用,用过eclipse的也可以装插件写node.js。
- 看完 nodejs中文文档和 io.js还有npm的文档(io.js的文档比node.js内容丰富点)。选择性看看nodejs源代码lib目录下的js代码。这样很多类似 “exports 和module.exports 的区别”这样的问题就不会问了。
- 可选,看完Typescript Handbook,sublime/webstorm有typescript插件,装好之后就可以让你写javascript(typescript)拥有golang般的自动补全和静态分析。
- 没写过Typescript的可以看看 https://atom.io/packages/atom-typescript 的截图。
- 不喜欢TypeScript的可以试试CoffeeScript。
- 刷完 《Node.js 包教不包会》 , 这个是我看过的教程里面的唯一值得单独拿出来说的,里面每个章节的主题都适合继续寻找资料深入学习。
- 刷完 cnodejs的精华帖子。
- 建议看完nodeclub,acdream的源代码。
- 推荐acdream源代码是因为我是acmer…
- 开始刷npm常用模块, 有好玩的模块看看源代码或者fork改改,express,async等模块源代码都值得看看。
- 找大神的GitHub一个个项目翻代码, alsotang ,寸志等等。更多见 名人堂
- 订阅《Web技术日报》 ,Node.js - 推酷等 ,每天看看。
- 待续…