学习总结

1,765 阅读5分钟

前言

由于现在敏捷开发盛行,为了功能能够快速迭代上线,有时候就没有充足的时间,去研究使用的技术底层,在用户量逐日积累的背景下,偶尔会出现一些生产问题,随着功能的继续迭代,偶尔变成经常,系统越来越不稳定,这个时候,就要去搞懂底层,优化代码和架构了。本文将介绍如何学习一门新技术,新工具,提高工作效率等。

1、如何学习一门新技术

有些人学习一门新技术,仅限于安装下,跑个demo,然后就结束了,过一段时间就忘记了,等于没学。

  1. 搞懂基础概念,先跑一个demo,增加自己的自信心;
  2. 深入学习,通过官方网站,下载安装,阅读官方资料,源码等;
  3. 通过google、必应搜索引擎,搜索好文章,巩固理解;
  4. 在GitHub上搜索,一些开源的项目,或者总结。

1.1、明确学习目的

比如:

  1. 看见别人或者别的项目在用;
  2. 看见各种技术论坛或者公众号都在提这个;
  3. 工作中需要解决一个问题,这个技术和要解决的问题比较接近;
  4. 纯粹想看看。

1.2、quick start

  1. 一般的开源项目都会有提供quick start,根据文档来操作一遍,把demo跑通,先不要了解原理,先跑一个例子;
  2. 跑通后再回顾下;
  3. 如何觉得操作不起来,可以到youtube上搜索下视频,一般会有对应的视频。

1.3、看官方文档或者书

  1. 最好是看官方文档,书或者其他的存在滞后;
  2. 不要看文章或者论坛,那都是二手货或者n手货,并且不全面;
  3. 看书也有技巧,不要一个细节一个细节的读,太累,带着目的看,有些章节对你一点用没有,直接跳过,特别是偏应用方面的技术;
  4. 不要想着走捷径,学习没有捷径,你要做的是提升你的阅读能力与专注度,一开始看文档确实很累,你需要的是耐心和毅力,慢慢就好了,总要有个过程;
  5. 会用翻译,mac有自带翻译或者装个有道翻译;
  6. 要会记一些技术名词,技术的名词其实不多;
  7. 要做笔记,好记性不如烂笔头。

1.4、翻源代码

  1. 首先明确你看代码的目的,带着问题去看代码,不要你看懂所有的,而是要看懂你关注的,很多人看代码容易被细节给断住,比方说看spring,想知道它的事务传播是怎么实现的,带着这个问题看,一目了然;
  2. 看之前要想一想如果你来实现文档里面描述的功能集合,你会怎么实现,然后再看,两相对比,会掌握的更快,比方说spring,本质上就是定义一堆xml或者注解,启动的时候读xml或者注解,然后把bean初始化放到容器里面,供后面使用;
  3. 要了解设计模式与一些技术名词,结合着文档看,一般文档都会有架构介绍,最典型的例子就是tomcat,里面有Tomcat,Catalina,Engine,Host,Web等概念,对着文档看代码非常爽;
  4. 实在看不懂的,可以到网上搜索,比方说tomcat 源码,一堆看源码的分析文章;
  5. 看代码的时候,注意别人怎么灵活运用设计模式,运用继承等,运用java的一些高级技巧,这些都可以学习

1.5、要有产出

  1. 看东西最怕的是看完就丢,要做笔记,要写文档;
  2. 要思考:
  • 思考我学了这技术,对我有什么帮助,能不能运用到工作中;
  • 怎么集成到现有项目中,等等;
  1. 要回顾。

2、如何使用一个工具

高效使用工具,可以提交工作效率,有利于解决难题,增加自己的信心。

2.1、举例

  1. 拿idea举例,看官方使用文档和各种tips,掌握各种快捷键,有意识的记一些快捷键来提升工作效率,比如:
    • 回退与前进
    • 打开类或者文件
    • 全局或者局部搜索或替换
    • 代码自动补全
    • format
    • 创建新文件
    • 自动生成get set等等
  2. chrome开发工具
  • 如何全局搜索关键字
  • 如何使用debug工具
  • 各种快捷键
  1. 图片中提取文字工具

3、如何用技术提示你的工作效率

程序员是产出产品或者工具给其他人(品牌或者消费者)使用的,但是在对待自己上,我们也要有这样做工具或者产品的思路来提升工作效率。

3.1、举例

  • 例子一:Android项目打包,Android给不同品牌打apk包时,都会要修改一些配置和package名称,这种之前全部是手动化操作,浪费时间与精力,还容易错。可以用python写了一些代码,把打包变成自动化,并且跟Jenkins集成,后续打包基本就是点一下按钮的事情。

  • 例子二:自动清理线上日志,之前线上时不时磁盘满了,要清理日志,可以变成自动化,写了几个脚本配置下定时任务ok了

还有很多例子就不一一列举了,这些例子其实解决并不难,主要的还是你要有这个思维有这个思考,把你平常的重复劳动给避免掉,程序员要有这样的思维。

总结

学习是反人性的,创业是没人性的。想要在茫茫人海中,脱颖而出,靠的更多的是主观原因,就是自己努力,不找客观原因,养成每天学习一到两小时的习惯,坚持一个月后,可以享受学习带来的充实,坚持一辈子,可以收获汗水背后的果实。