*
参考文章:http://mp.weixin.qq.com/s?__biz=MzA4NTg1MjM0Mg==&mid=2657261357&idx=1&sn=ebb11a1623e00ca8e6ad55c9ad6b2547#rd
*
面对一项新技术的时候,我们怎样去学习才能循序渐进,最终理解得深刻?
让我们先把可供自学的资料列出来,分析一下:
-
Tutorial(入门教程)。由该项技术的官网提供。通常是英文的。这份资料是给初次接触该项技术的人看的,一般是一步一步地教你完成某些例子。当我们说某项技术对于新手不太友好的时候,一般也是因为这项技术的Tutorial部分做得不够好。
-
Specification,简称Spec。这是集中体现该项技术的设计思想的东西,是高度抽象的描述。这个一般也是一份完备的、系统的描述,包含该项技术涉及到的方方面面。这部分资料在不同的地方叫法不同,在相对简单的技术项目中,也可能没有;在另一些情况下,这部分资料混杂在其它文档资料之中;它还可能以论文(paper)的形式出现。
-
API Reference。大而全的API索引和文档,针对不同的语言接口可能提供多份。当我们使用这项技术进行编程的时候,API Reference自然是个离不开的、总是要不停去查询的一份资料。
-
别人写的技术博客。质量良莠不齐,到底有没有价值,我们要学会去分辨。
-
技术书籍。跟技术博客类似,质量有好有坏。稍后我们和技术博客放在一起来分析。
-
Source Code。如果我们要学习的技术是开源的,那么很幸运,我们能得到源代码。这是一份终极资料。
那么,这里就有一个选择性的问题:我们选择哪部分知识加载到“内存”里呢?
显然,应该优先选择重要的,对我们最有用的信息。
对于那些最核心的技术,我们应该做到:
-
通读Spec。读完就不再困惑。
-
重要部分的API Reference要通读。里面包含了很多跟实现有关的信息。
-
如果工作需要,还可能需要读到Source Code。特别是对于平常一直在使用的SDK,不一定从头到尾把源码读通,这样工作量太大且效率不高,但一定要把你的开发环境设置成一点击某个调用的方法就能跳转进源码实现。只有这样,你才能把平常开发的时间利用起来,随时随刻都点过去看源码。
对于剩下的知识里80%的部分,应该至少理解到Spec层次。只有这样,我们才能游刃有余地去使用它。
通读重要的Spec,在很多情况下,其实还是很有难度的。这需要毅力,和一点点英语基础。
按本文前面提到的例子,做Java的人有谁读过Java Spec?做Android的人有谁把developer.android.com上的API Guides都能通读下来?而做iOS的人,developer.apple.com上的各个Programming Guide又完整地读过几个?对于经常调用的SDK,你会有计划地去通读其中重要部分的API Reference吗?
能够把这一套做下来的,有可能不成为技术牛人吗?
*