【全是干货】谈谈如何学习一项新技能,没有理论,全是实战

前言

我的上篇文章:面试分享:专科半年经验面试阿里前端P6+总结(附面试真题及答案) 评论区有几位同学问我如何学习,今天就单独开篇文章来谈谈吧,欢迎各位大佬在评论区贴上自己的学习方法。

以下是我的学习方式

学习某种语言

  1. 大致看一下官方文档,不要一个一个的仔细研究,太费时间也记不住(别担心,后面有方式帮你记牢),英语不好的(我的英语比较渣)推荐直接使用Chrome+谷歌翻译插件通篇翻译,读懂大概意思,再回来看英文文档是否有理解偏差的地方,相当好用😉。如果你有其它语言基础,可以对比着看,很多东西是通的,找到他的不同点,了解他的优势及实用场景

  2. 看看前辈们整理的Awesome Lists

  3. 想想你到底想用这个语言来干什么?

    • 假设我想要node.js来写一个rest api,我就会 用github搜索:node rest api(最好不要用中文搜索)
    • 我会选取其中几个Readme写的好并且持续维护的项目直接clone到本地,开始一个一个研究clone下来的项目,最后对比着看,取他们所有优秀的地方
  4. express-mongoose-es6-rest-api 这个项目来举例

    • 打开项目,首先搞明白项目根目录里面的文件夹/文件都是干嘛的,这个时候谷歌搜索就派上大用场了,一个个的搞明白

    • 通过上面步骤知道了应该在package.json里面找找入口文件(其它语言类似)

    • 可以从入口文件直接读它的源码,可能里面很多内容看着都一脸懵逼,不要怕 不要怕 不要怕(稳住 我们能赢 哈哈)

    • 我当时读的时候先看package.json(第一次看这些代码没什么先后顺序的区分,完全凭感觉,最多就是走点弯路)

    • 附上我去年刚刚学习前端时候是如何读package.json的,用包管理网站/谷歌搜索一个一个的搞明白,坚持很重要,去年的笔记截图:

      image
      image

    • 回头看一下,通过上面步骤我学到了什么酷炫的东西呢😎

      • express、express开发模式、express常用三方中间件、及前端安全相关的一些东西
      • node.js的日志管理
      • 使用joi验证数据
      • jwt的使用,及应用场景(不止可用于js项目)
      • babel是干什么的,搞明白了后,我就开始写es6/7代码了😂
      • eslint是什么玩意,搞明白后,我就用上了
      • gulp是个什么玩意,开始自己试着编写我需要的task
      • 学会使用nodemon
      • git commitizen规范(不止可用于js项目)
      • 服务端js测试及覆盖率
      • travis CI(不止可用于js项目) ...... 还有一些,不一一列举
    • 现在可以开始看源码了,不懂就查文档(这个时候看文档比之前直接看文档记得熟练)😃

    • 看第一个项目往往是最难的,坚持吧,坚持下来后面就容易多了(这是我的笨办法)

  5. 再举一个学习其它语言的例子,前段时间看身边很多小伙伴在手机上玩答题游戏,我就想写一个答题脚本实现脚本自动答题的功能

    • 首先第一个想到的就是研究下微信小程序跳一跳脚本的实现原理
    • 在网上搜索学习到跳一跳脚本的一般实现原理: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++人脸识别啊,算出颜值,漂亮的再喜欢(玩笑😂,主要是想说明做完项目要思考,做这个项目能给你以后带来什么)

学习某种开源框架/工具

  1. 一般比较好的开源框架/工具,它自身项目里面就会有很好的example与写的很好的文档,比如next.js、redux等
  2. 如果没有example,看文档
  3. 遇到问题直接看源码,打断点慢慢调试,太复杂实在不明白就看它的issue,没有就提,提完一般要一段时间才有人回你,这期间可以自己去谷歌上搜索相关问题,或者进入它的组织群,国内比如ant(直接加他们的微信/钉钉群),国外比如next.js,核心维护者一般都会留Twitter在文档里,直接联系就好了(英语渣的使用谷歌翻译,自己多补补英语),解决完问题记得关闭issue哦。

最后附上Github,以后blog也会第一时间更新到:https://github.com/Gavin1995 的blog项目 issue里面

关注下面的标签,发现更多相似文章
评论
说说你的看法