高效学习的方法是快速的掌握最少必要知识,最小可用产品
是什么
基本的概念搞清楚,有助于后面的预研。
为什么用?它适合那些场景
在特定的场景下才能发挥一项技术的优势,毕竟大部分技术都是为解决特定问题而生的。
怎么用
这就很简单了,一般都提供安装文档、使用手册、开发手册等等,以及别人的应用笔记等,都可以找到怎么用的例子。
有哪些弊端
能应用自然是好,但一定弄明白这项技术不擅长做什么,万能的技术总是少数,总不能什么东西都往它身上套。Redis是好用,但依赖系统内存。SSDB与Redis属同宗,协议兼容,但不受内存限制,而看硬盘的扩展性。
周围生态如何
上下游的技术融合,社区的支持,版本的更新频率等等,都是衡量一个技术生态的因素。如果兼容性好,适配难度低,应用自然广泛。比如Spring周边产品几乎成了Java开发的标配。
替代性技术有哪些
总会有大牛使不惯别人的东西,于是同一问题的解决方案并不会只有一个。替代性技术的出现,一定程度上弥补了不同技术在某些技术点上的盲点。也给我们在做技术方案是提供了不同的思路。大牛顺手写了个Git方便自己做开源产品的研发。
他人的应用总结
这一点很重要,前人的应用总结是后来者的之路明灯。从那些分享者的总结中,会发现那些隐藏在技术背后的隐患,使用实战技巧等等,这些都是我们在实践之前都应当学习的教训、经验。
如上操作,更多的是依赖搜索引擎、技术官网、网友专栏文章等等,一点一点去深入进去,最后形成一个思维导图,将掌握的资料整理出来以加深印象。
动手
谋定而后动,准备充足才能事半功倍。当然看了那么多不行动就属于纸上谈兵,真正应用时就会眼高手低。
动手时还有很重要的一点,记得做笔记。即便按着官方或者别人成功的应用总结来做,往往也不会一帆风顺,因为大家的环境是不同的,就会出现各种各样的问题。记下来吧,将来都是经验的总结。