android程序员这个行业,技术体系更新速度快,新技术新框架层出不穷,所有的技术都像是一个无底洞,当你学得越多就会发现不懂的越多,不懂的越多,需要学习的就更多。
因此,一旦选择了这个行业,就意味着你必须不断学习才能跟得上大家的脚步,而要想成为一名优秀的程序员,更是需要通过正确的方法,设定正确的目标来进行不断地学习。
1.读文档,读文档,读文档,重要的事情说三遍!!!
如果你是一名有一定开发经验程序员,那我强烈地建议你一定要看官方文档!!!
如果你是一名初学者,那现阶段来说,看文档会是件非常非常的吃力的事,但我还是强烈地建议你一定要看官方文档,不过可以在你通过视频教程或是书籍学习并入门之后再慢慢的阅读。一门技术的官方文档是对这门技术的体系结构以及重要知识点最直接也是最准确的描述和讲解。如果你仔细阅读过了它,那你就对这门技术的整个体系、架构、知识点已经有了宏观上的认识,在你实现某个功能时,你可以很快定位并找到最佳的解决方案。而那些没有阅读过文档的人,在功能实现时则只能通过查找资料或是询问别人的方式来找答案,一些本来可以使用官方特性轻松实现的功能可能一不小心便走了条复杂的弯路。阅读英文文档的另一个作用,就是会提高你在需要解决问题时搜索关键词的能力,因为读得多了,很多关键单词已经留在了脑海中,当你需要google或者stackoverflow的时候,便很容易抓住重点关键词从而搜索到需要的内容。
2.项目实战
首先要说的是,技术的学习是个日积月累,由量变到质变的过程,没有任何的办法能够让你在短时间内成为大牛。所以,当你通读完官方文档的时候,你实际上只是迈出了一小步,要成为真正的大牛,还需要在之后的学习中不断努力。
那我们如何来进行下一步的学习呢?
我们学习一门技术的最终目的就是将其运用到实际项目中,一门技术不管多厉害,如果没有办法运用到实际项目中,那它的意义跟价值就非常有限了。
而且人脑不比计算机,是会遗忘的,如果不通过大量的项目实战,很多知识点你很快便会忘记,至少我是这样的(谁能告诉我,记忆力不好怎么才能被拯救!!)。
所以读完官方文档后,我们是一定要通过大量的项目实战来不断巩固我们的知识点的,此时的你很多知识点其实是不能完全理解的,只有通过项目的历练,在踩坑中分析,在解决问题中成长,才能从本质上理解一些技术的概念。
有经验的开发人员应该多多少少有这样的经历,就是有些概念一开始并不是很理解,但是在一次次的项目过程中,你会发现竟然不知不觉地明白了其中的原理,是的,就是这种感觉!
对于项目实战,我其实没有太多的技巧,还是一句话,撸起袖子就是干,但是这个过程中你一定要去多思考,为什么这么写,为什么这么做,学着去了解原理,去关注本质
3.读技术文章
在这样一个信息大爆炸的时代,要从网上找到某一门技术的干货文章是非常容易的一件事,各类的技术平台(csdn,cnblogs,oschina,infoq,segmentfault等等等),各类的微信平台公众号,都是很好的获取干货信息的途径。
虽说官方文档很神奇,但是还是有很多知识点我们可能还没发现,因为他们往往隐藏在更深的API文档之中,而大量的API也导致我们很难将所有的API文档都通读,更多的还是将其作为一个查阅工具来使用。
在我的观念里,不主动去关注各种技术平台获取技术信息的程序员不是一名合格的程序员,
所以每天早晨我都会花至少一个小时在关注的各类技术平台上获取有用的信息
一方面查找相关技术的干货文章,通过对这些文章的阅读对自己的知识点进行巩固和查漏补缺,毕竟技术的学习不仅仅是文档上那些最原始的技术点,还包含各种架构的设计、工具的使用、功能的实现及解决方案的应用等,通过这些平台上的各种文章,可以让自己的知识体系更加地完善。
另一方面,作为一名开发人员,我们需要通过这些平台了解最新的技术动态,关注技术的发展趋势,毕竟现在技术的更新速度非常之快,技术生态圈的转换随时会导致某项技术的淘汰(作为一个俗人,我是来赚钱的,所以根据技术趋势做好技术储备对我来说是必不可少的)
4.技术学习光靠一个人是不行的,所以我们还需要多跟别人探讨技术问题,可以是周围的同事跟朋友,也可以是技术群
原因1:对大部分人而言,技术群给我们的好处之一就是不懂的技术问题可以进去寻求帮助,当然,提问的前提最好是你已经百度,Google跟stackoverflow过了,并且没能找到合适的答案。
原因2:群里都是来自五湖四海的小伙伴,他们来自于不同的公司,而不同的公司可能采用不同的技术或架构,通过对群里聊天内容的筛选,我们经常能在大家沟通的过程中看到一些新的技术框架或名词,我会将这些名词跟框架记录下来,然后到网上去进行了解和学习,可以说,这在一定程度,帮助我拓展了视野。
原因3:这是我最喜欢干的事,就是帮助别人解决技术问题,有人可能会疑惑为什么我会喜欢帮助别人解决技术问题
首先呢,帮助别人解决技术问题能给我带来一定的成就感
其次呢,你在帮助别人解决某个技术问题时,你需要对这个问题的产生及相关概念有比较透彻的认识,同时还需要组织好自己的语言,用最通俗易懂的方式来让对方理解,这个过程无形中就帮助你巩固了知识点,同时也提高了自己的文字表达能力;
如果遇到没有遇到过的问题,那解决这个问题的过程,不仅可以提升自己解决问题的能力,同时还能帮助我们学到新的知识。