热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

前言我的上篇文章:面试分享:专科半年经验面试阿里前端P6总结(附面试真题及答案)评论区有几位同学问我如何学习,今天就单独开篇文章来谈谈吧&

前言

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

以下是我的学习方式

学习某种语言

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

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

    • 如果没有你需要的,可以加一个awesome关键词直接搜索,比如:小程序 Awesome、react awesome
  3. 想想你到底想用这个语言来干什么?

    • 假设我想要node.js来写一个rest api,我就会 用github搜索:node rest api(最好不要用中文搜索)
    • 我会选取其中几个Readme写的好并且持续维护的项目直接clone到本地,开始一个一个研究clone下来的项目,最后对比着看,取他们所有优秀的地方
  4. 拿 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项目) ...... 还有一些,不一一列举
    • 现在可以开始看源码了,不懂就查文档(这个时候看文档比之前直接看文档记得熟练)?

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

  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里面


转:https://juejin.im/post/5a9572c25188255efc5f844d



推荐阅读
  • javax.mail.search.BodyTerm.matchPart()方法的使用及代码示例 ... [详细]
  • Visual Studio Code (VSCode) 是一款功能强大的源代码编辑器,支持多种编程语言,具备丰富的扩展生态。本文将详细介绍如何在 macOS 上安装、配置并使用 VSCode。 ... [详细]
  • 解决问题:1、批量读取点云las数据2、点云数据读与写出3、csf滤波分类参考:https:github.comsuyunzzzCSF论文题目ÿ ... [详细]
  • 近期,微信公众平台上的HTML5游戏引起了广泛讨论,预示着HTML5游戏将迎来新的发展机遇。磊友科技的赵霏,作为一名HTML5技术的倡导者,分享了他在微信平台上开发HTML5游戏的经验和见解。 ... [详细]
  • 本题主要考察二维数组的遍历和重塑。通过将二维数组降为一维,再根据新的行数和列数重新构建矩阵。 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • Python 3 Scrapy 框架执行流程详解
    本文详细介绍了如何在 Python 3 环境下安装和使用 Scrapy 框架,包括常用命令和执行流程。Scrapy 是一个强大的 Web 抓取框架,适用于数据挖掘、监控和自动化测试等多种场景。 ... [详细]
  • 本文总结了一些开发中常见的问题及其解决方案,包括特性过滤器的使用、NuGet程序集版本冲突、线程存储、溢出检查、ThreadPool的最大线程数设置、Redis使用中的问题以及Task.Result和Task.GetAwaiter().GetResult()的区别。 ... [详细]
  • 第二十五天接口、多态
    1.java是面向对象的语言。设计模式:接口接口类是从java里衍生出来的,不是python原生支持的主要用于继承里多继承抽象类是python原生支持的主要用于继承里的单继承但是接 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 本文介绍了如何利用 `matplotlib` 库中的 `FuncAnimation` 类将 Python 中的动态图像保存为视频文件。通过详细解释 `FuncAnimation` 类的参数和方法,文章提供了多种实用技巧,帮助用户高效地生成高质量的动态图像视频。此外,还探讨了不同视频编码器的选择及其对输出文件质量的影响,为读者提供了全面的技术指导。 ... [详细]
  • 近期在研究逆向工程,因此尝试了一些CTF题目。通过合天网络安全实验室的CTF实战演练平台(http://www.hetianlab.com/CTFrace.html),我对Linux逆向工程的掌握还不够深入,因此暂时跳过了RE300题目。首先从逆向100开始,将文件后缀名修改为.apk进行初步分析。这一过程不仅帮助我熟悉了基本的逆向技巧,还加深了对Android应用结构的理解。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • React项目基础教程第五课:深入解析组件间通信机制 ... [详细]
author-avatar
kanney姜_958
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有