1.要有主动学习开放的心态
2.获取一门新技术(可以把新技术看成一种工具,或许你工具箱里面有,或许你需要寻找)
第一种情况,通过自己逛论坛、博客、新闻,碰到一门比较热门新技术,感兴趣
思考这个技术是否能运用到你现有业务问题域,能否优化你现有的方案?如何优化。
或者以后可能会用到它
去了解它(主动获取、主动学习)
重点是你自己要主动去了解热门技术行业动态,有关注的好的技术博客、论坛
第二种情况,是自己碰到问题,想找一种新的解决方案
这时候需要分析你自己知识库里面,有现成解决方案么?现有方案是否是最优的?有什么利和弊?
如果有
自己是否是熟练运用?
熟练运用,则直接运用即可。
如果不能熟练运用,则进行学习。
如果没有
则进行搜索查找(搜索查找也是一门技术,包括怎么查找?怎么描述自己的问题?去什么地方查找google或者提问stackoverflow)
3.对新技术进行(3W)思考
搞清楚为什么学习这门技术(why),采用这种技术前后有什么好的改变
了解这门技术的核心概念(what),该技术解决或者简化了那个问题域的问题
该技术采用了什么方式达到这种效果(how)
4.实际使用一下该技术的核心的功能,强化对它的认识
方式就是参考该技术官网的Quick Start(快速开始)章节,一步一步来。(入门阶段)
5.Getting Started Guides ,也是一步一步的教你进阶功能(英文是一个优秀程序员的必备技能)
这个过程可能会碰到各种杂音,了解这门技术之前你需要了解哪些技术(就是自己的基本功如何)
如果碰到自己不了解的技术,那应该作为一个新技术进行学习 (入门阶段)
(学习是一个良性循环的过程,学的越多,就学的越快)
4、5这两步保证你对一门技术入门
6.从官网上把该技术的详细文档扒拉下来,使劲读吧。通读这些文档能让你进入它的实现细节,以及各种使用方式与场景,甚至一些最佳实践
一门技术最好的文档必须是它的官方文档,如果不是,那么这门技术火不了。注意通读文档的过程中一定要在项目加以运用。
如果在项目中没实践机会,自己可以写一些小的demo来实践。学习知识时实践与理论相结合的道理恒古不变。(理论联系实践、要动手)
如果不会写demo可以去github上查找。(进阶阶段)
4、5、6这三步保证你对技术的理解已经强过大多数人
7.把你所学、所想讲出来,写出来,暴露在公众之下,接受批判,从而发现自己的不足,促使你进步。
有空给大家做几个讲座,写几个系列文章,那么你在大家眼中就成了这门技术的牛人。
你就有了各种机会来解决使用该技术遇到的各种疑难杂症,反过来加深和修正你的理解。
没事上上StackOverFlow,回答别人几个问题,或者订阅该技术的问题列表,经常看一看。(进阶阶段)
8.加入国内/国际技术社区(国内没这样的社区咋办,机会来了,赶紧自己建一个),进一步发挥自己影响力。
阅读技术源码(如何阅读源码?)
翻译、编写与该技术相关的书籍;
如果该技术是开源的,那么有时间就提交修改把,自己就成了开发者一员了。
这就是质的飞跃,从使用工具进阶到创造工具。
走完4、5、6、7、8
你已经不是仅仅掌握这门技术了,你已经超神了好吧
总结
能达到这五步的肯定要花很长时间,不是一般人能够到的高度。
那当然了,这个过程肯定很难,但并非难到登天。
至少我身边有很多这样的例子。
其实你只要完成前三步(4、5、6),你就比50%的程序员牛了,完成第四步(7),你已经站在90%程序员的前面。
主动学习很重要,主动学习很重要,主动学习很重要。
官方文档很重要,官方文档很重要,官方文档很重要。
实践很重要,实践很重要,实践很重要。
学习一门技术不是一蹴而就的。
水滴石穿,你不可能一天就把一门技术熟练掌握(要有恒心)。
1万小时的锤炼是任何人从平凡变成超凡的必要条件(一万小时定律)。
学习的快慢还得看自己的基本功(要循序渐进、从简单入门、量力而行)。
学习的过程会碰到更种困难,要克服(不放弃、有毅力)
要先付出,才能获得回报
不要和别人比,和自己比进步(鼓励自己)
别人学的快、理解的深刻(是别人比你的基本功好、碰到的杂音少一些,比你思考的多一些)
身边的牛人要虚心学习,和别人讨论,了解别人思维方式,能促进自己学习。
最后是做笔记,把自己碰到的坑记录下来。(便于自己温习)
碰到问题不要着急,先认清问题,然后思考从哪获取答案