程序员这个行业,日新月异,技术体系更新速度快,新技术新框架层出不穷,而且所有的技术都像一个无底洞,当你学得越多会发现不懂的越多,不懂的越多,需要学习的就更多。
因此,一旦选择了这个行业,就意味着你必须不断学习才能跟得上大家的脚步,而要想成为一名优秀的程序员,更是需要通过正确的方法,设定正确的目标来进行不断地学习。
作为一名常年混迹于各种技术群,并且特别喜欢帮助别人解决问题的热心肠老司机,群里的很多小伙伴经常会找我询问应该怎么样学习一门技术。
俗话说得好,授人以鱼不如授人以渔,所以每当别人问我这个问题时,我总是倾囊相授。
虽然我自己也算不上特别优秀,但自认为还算是个努力的程序员,我特别喜欢一句话就是“你可以不聪明,但不可以不努力”,毕竟天才程序员只是很少的一部分,大部分大牛还是靠着正确的学习方法,比别人花更多的时间更多的经历在学习上才达到了他们现在的成就。
所以这里我结合自己7年的技术生涯经验,给出了自己在技术学习上的一些方法跟建议,希望能给大家一些启发,并且帮助大家少走一些弯路。当然了,不同的人有着不同的学习方法,这些建议不一定都是最好的,如果大家有自己的看法,欢迎在文章的评论中给出自己的意见。
###学会阅读官方文档 首先不得不提的就是阅读官方文档,虽然是个老生常谈的问题,但是在我所接触过的人群中,还是很大一部分开发人员不会去阅读官方文档,而给出的理由之一就是英文不好。
这里我们先抛开英文的因素来聊聊阅读官方文档(这里的官方文档不仅仅指的官方API文档,更包括官方教程(guide\tutorial\Training)以及官方博客等)的好处:
#####1. 能够对技术或框架有更宏观更全面的认识
其实在最初工作的两年中,我也没有阅读官方文档的习惯,虽然看到很多前辈的教程中一直建议大家要学会阅读官方文档,但限于当时的认知并没能认识到其中的作用和意义。
直到后来公司需要做webapp,领导选择了sencha touch这个框架,并且只给了两周的时间让我写出一个CRM的demo,而当时市面上并没有什么中文教程,也没有中文书籍,唯一的办法就是自己去看官方文档。
顶着时间上的压力,万般无奈下,我只能开始去翻看官方文档,这一看不要紧,但从此打开了我新世界的大门。
我发现官方的guide教程竟然如此地详细,在后来的阅读中,我将这些内容整理成了sencha touch入门系列博客,并写了一个入门demo放到了github上,帮助技术群里的小伙伴解决了不少问题,于是乎,我成了别人眼里的sencha touch大牛,也成了各个sencha touch技术群的管理员,后来sencha touch的工作机会,私活项目也都随之而来。
然而大家不知道的是,我只是比他们多读了官方文档,多研究了官方的samples,而很多博客上的大牛,也是在阅读文档基础上做好了总结,因此很多人跟他们的差距其实就差了个文档阅读。
实际上,大部分技术或者框架的官方文档都非常非常的详细,曾经看到过有篇文章描述说是细到牙齿,是的,真的是细到牙齿,比如
Java的tutorial:把Java的每个知识点都讲到了
Android的Training:从创建项目到各种功能的最佳实践,手把手教你写代码
Android的Guide:把每个重要知识点拎出来详细讲解
如果你能认认真真读完这些文档,在整个技术架构的宏观理解上,你已经领先了大部分人。
在时间条件允许的情况下,我的习惯是通读官方的guide相关教程一遍,对整个技术架构有个宏观的认识,这样的好处就是在实现功能或者解决问题时,能够更快地找到最优方案。
可能很多情况下由于项目时间比较紧,很多人都是直接上手就开始做,为了尽快完成项目功能,这也是没办法的事,也有人建议学习技术直接上手做项目就行,但是这样的方式由于知识点相对零散,在项目实现过程中很容易走弯路,到头来可能花的时间比读文档还久。
这就好比你要去某个地方,读过文档相当于手握了一张地图,你要去哪里很快的就能定位到具体的方位,而直接上手做项目相当于你没有地图只知道大概的方位,你需要花更多的时间寻找或者找人问路才能找到地点,有时甚至会走进死胡同。
#####2. 能够及时获取技术或框架的更新内容,了解最新的技术点 大家都知道,目前的软件行业技术更新速度非常快,而书籍、视频或是博客,很大一部分都跟不上这样的迭代步伐,有的时候你参照他们的教程去写程序会发现因为版本不一致的问题,有些代码会出错,从而耽误很多的时间。
现在再回头看我之前的sencha touch博客,很多内容包括命令都已经失效,早已被新的指令所替代。
因此,只有学会阅读官方文档才能第一时间获取到最新版本的内容并掌握最新的知识点,这样才能快人一步。 |