前言
我的上篇文章:面试分享:专科半年经验面试阿里前端P6+总结(附面试真题及答案) 评论区有几位同学问我如何学习,今天就单独开篇文章来谈谈吧,欢迎各位大佬在评论区贴上自己的学习方法。
以下是我的学习方式
学习某种语言
-
大致看一下
官方文档
,不要一个一个的仔细研究,太费时间也记不住(别担心,后面有方式帮你记牢),英语不好的(我的英语比较渣)推荐直接使用Chrome+谷歌翻译插件
通篇翻译,读懂大概意思,再回来看英文文档是否有理解偏差的地方,相当好用?。如果你有其它语言基础,可以对比着看,很多东西是通的,找到他的不同点,了解他的优势及实用场景 -
看看前辈们整理的Awesome Lists
- 如果没有你需要的,可以加一个
awesome
关键词直接搜索,比如:小程序 Awesome、react awesome
- 如果没有你需要的,可以加一个
-
想想你到底想用这个语言来干什么?
- 假设我想要node.js来写一个rest api,我就会 用github搜索:node rest api(最好不要用中文搜索)
- 我会选取其中几个Readme写的好并且持续维护的项目直接clone到本地,开始一个一个研究clone下来的项目,最后对比着看,取他们所有优秀的地方
-
拿 express-mongoose-es6-rest-api 这个项目来举例
-
打开项目,首先搞明白项目根目录里面的文件夹/文件都是干嘛的,这个时候谷歌搜索就派上大用场了,一个个的搞明白
-
通过上面步骤知道了应该在package.json里面找找入口文件(其它语言类似)
-
可以从入口文件直接读它的源码,可能里面很多内容看着都一脸懵逼,
不要怕 不要怕 不要怕
(稳住 我们能赢 哈哈) -
我当时读的时候先看package.json(第一次看这些代码没什么先后顺序的区分,完全凭感觉,最多就是走点弯路)
-
附上我去年刚刚学习前端时候是如何读package.json的,用包管理网站/谷歌搜索一个一个的搞明白,坚持很重要,去年的笔记截图:
-
回头看一下,通过上面步骤我学到了什么酷炫的东西呢?
- express、express开发模式、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.js、redux等
- 如果没有example,看文档
- 遇到问题直接看源码,打断点慢慢调试,太复杂实在不明白就看它的issue,没有就提,提完一般要一段时间才有人回你,这期间可以自己去谷歌上搜索相关问题,或者进入它的组织群,国内比如ant(直接加他们的微信/钉钉群),国外比如next.js,核心维护者一般都会留Twitter在文档里,直接联系就好了(英语渣的使用谷歌翻译,自己多补补英语),解决完问题记得关闭issue哦。