如何快速学习一门新技术

child

总结

利用分解的方法论,一分二、二分四。

内部设计 外部应用
目标 问题
实现原理 技术规范
优势局限 最佳实践
技术演进趋势 市场应用趋势

1、这个技术的核心关键点是什么?要解决的问题是什么?

比如,我学习测试框架TestableMock。

TestableMock要解决的主要是什么?
解决其他框架上手难、不能测试私有方法、不能测试静态方法的问题
TestableMock的核心关键点是什么?
运行时字节码修改(字节码增强技术),动态地修改class文件

2、过往有没有类似的技术?核心技术是否相通?

JMockit也是,不过使用复杂。
JMockit的核心技术也是 字节码增强技术。
我们平时使用的AOP(Cglib就是基于ASM的)也与字节码增强密切相关。

3、这些问题应该使用何种模式解决?

深入原理,了解类加载机制。
思考封装边界问题。

4、5分钟阅读hello world级的文档和demo

30分钟做个hello world,体验下
2小时阅读关键设计文档和代码
如果我来开发这个软件,将如何设计,关键技术点如何设计

5、加入你的知识体系树里,经常复习

6、学习技术,都要学习它的基础语法,有了根基后,就可以进行创作

比如,以前我每次写脚本,我都去网上搜,在不查阅资料的情况下,写不出来。
其实,我可以将脚本中的基础语法整理出来。
以后,自己写时就可以随意进行拼凑的。
体会:在网上搜到脚本解决问题后,要弄懂脚本的意思,抽取出基础语法,慢慢积累基础语法。(求甚解,抽取基础的语法,不断积累)

7、举个例子,关于学习线程池的例子

https://mp.weixin.qq.com/s/H6XSVlaY1gB6Gse3GR8BeA
这篇文章讲了 创建线程池的那几个参数是怎么来的?为何要有这些参数,背后要解决什么问题?
技术的终极使命是落地,是解决问题。
只要一直有问题要解决,那就有意义。


竭尽全力、专心致志、全神贯注的做好分内之事;分享,成长,拒绝浅尝辄止。

💰

×

Help us with donation