前言
我的上篇文章: 面试分享: 专科半年经验面试阿里前端 P6 + 总结(附面试真题及答案) 评论区有几位同学问我如何学习, 今天就单独开篇文章来谈谈吧, 欢迎各位大佬在评论区贴上自己的学习方法
以下是我的学习方式
学习某种语言
大致看一下官方文档, 不要一个一个的仔细研究, 太费时间也记不住 (别担心, 后面有方式帮你记牢), 英语不好的(我的英语比较渣) 推荐直接使用
Chrome + 谷歌翻译插件
通篇翻译, 读懂大概意思, 再回来看英文文档是否有理解偏差的地方, 相当好用如果你有其它语言基础, 可以对比着看, 很多东西是通的, 找到他的不同点, 了解他的优势及实用场景
看看前辈们整理的 Awesome Lists
如果没有你需要的, 可以加一个 awesome 关键词直接搜索, 比如: 小程序 Awesomereact awesome
想想你到底想用这个语言来干什么?
假设我想要 node.js 来写一个 rest api, 我就会 用 github 搜索: node rest api(最好不要用中文搜索)
我会选取其中几个 Readme 写的好并且持续维护的项目直接 clone 到本地, 开始一个一个研究 clone 下来的项目, 最后对比着看, 取他们所有优秀的地方
拿 express-mongoose-es6-rest-api 这个项目来举例
打开项目, 首先搞明白项目根目录里面的文件夹 / 文件都是干嘛的, 这个时候谷歌搜索就派上大用场了, 一个个的搞明白
通过上面步骤知道了应该在 package.json 里面找找入口文件(其它语言类似)
可以从入口文件直接读它的源码, 可能里面很多内容看着都一脸懵逼,
不要怕 不要怕 不要怕
(稳住 我们能赢 哈哈)
我当时读的时候先看 package.json(第一次看这些代码没什么先后顺序的区分, 完全凭感觉, 最多就是走点弯路)
附上我去年刚刚学习前端时候是如何读 package.json 的, 用包管理网站 / 谷歌搜索一个一个的搞明白, 坚持很重要, 去年的笔记截图:
回头看一下, 通过上面步骤我学到了什么酷炫的东西呢
expressexpress 开发模式 express 常用三方中间件及前端安全相关的一些东西
node.js 的日志管理
使用 joi 验证数据
jwt 的使用, 及应用场景(不止可用于 js 项目)
babel 是干什么的, 搞明白了后, 我就开始写 es6/7 代码了
eslint 是什么玩意, 搞明白后, 我就用上了
gulp 是个什么玩意, 开始自己试着编写我需要的 task
学会使用 nodemon
git commitizen 规范(不止可用于 js 项目)
服务端 js 测试及覆盖率
travis CI(不止可用于 js 项目) ...... 还有一些, 不一一列举
现在可以开始看源码了, 不懂就查文档(这个时候看文档比之前直接看文档记得熟练)
看第一个项目往往是最难的, 坚持吧, 坚持下来后面就容易多了(这是我的笨办法)
再举一个学习其它语言的例子, 前段时间看身边很多小伙伴在手机上玩答题游戏, 我就想写一个答题脚本实现脚本自动答题的功能
首先第一个想到的就是研究下微信小程序跳一跳脚本的实现原理
在网上搜索学习到跳一跳脚本的一般实现原理: python 起一个脚本通过 webDriverAgent 触发 ios 设备的截图, 根据截图用 python 分析旗子位置, 分析下一个方块的中心点, 根据算法算出按住时间, python 触发 WebDriverAgent 执行
开工... 简单看了 python3.5 的文档及编码规范
github 上找了个相关项目 wechat_jump_game
学习大概流程, 及常用工具...
开始写自己的项目, 期间遇到给跳一跳不太一样的地方, 答题游戏需要文字识别, 当然还是通过万能的谷歌找答案: tesseract-ocr 百度 OCR, 网上大部分人说谷歌的 tesseract 没有百度 ocr 识别率高, 所以直接用了百度 OCR
最后, 写完项目还要思考
例 1: 如果不通过手机截图 (不通过 webdriveragent) 怎么玩? 可以通过手机连电脑, 共享屏幕, 然后电脑截图, 直接 ImageGrab.grab 很简单; 貌似还可以直接破解协议
例 2: 你甚至可以写这样一个脚本玩探探, 哈哈
例 3: 如何高级一点玩呢? 加入 face++ 人脸识别啊, 算出颜值, 漂亮的再喜欢(玩笑, 主要是想说明做完项目要思考, 做这个项目能给你以后带来什么)
学习某种开源框架 / 工具
一般比较好的开源框架 / 工具, 它自身项目里面就会有很好的 example 与写的很好的文档, 比如 next.jsredux 等
如果没有 example, 看文档
遇到问题直接看源码, 打断点慢慢调试, 太复杂实在不明白就看它的 issue, 没有就提, 提完一般要一段时间才有人回你, 这期间可以自己去谷歌上搜索相关问题, 或者进入它的组织群, 国内比如 ant(直接加他们的微信 / 钉钉群), 国外比如 next.js, 核心维护者一般都会留 Twitter 在文档里, 直接联系就好了(英语渣的使用谷歌翻译, 自己多补补英语), 解决完问题记得关闭 issue 哦
最后附上 Github, 以后 blog 也会第一时间更新到: https://github.com/Gavin1995 的 blog 项目 issue 里面
来源: https://juejin.im/post/5a9572c25188255efc5f844d