博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
程序员之路 学习经验总结 副本2
阅读量:6083 次
发布时间:2019-06-20

本文共 4268 字,大约阅读时间需要 14 分钟。

程序员这个行业,日新月异,技术体系更新速度快,新技术新框架层出不穷,而且所有的技术都像一个无底洞,当你学得越多会发现不懂的越多,不懂的越多,需要学习的就更多。

因此,一旦选择了这个行业,就意味着你必须不断学习才能跟得上大家的脚步,而要想成为一名优秀的程序员,更是需要通过正确的方法,设定正确的目标来进行不断地学习。

作为一名常年混迹于各种技术群,并且特别喜欢帮助别人解决问题的热心肠老司机,群里的很多小伙伴经常会找我询问应该怎么样学习一门技术。

俗话说得好,授人以鱼不如授人以渔,所以每当别人问我这个问题时,我总是倾囊相授。

虽然我自己也算不上特别优秀,但自认为还算是个努力的程序员,我特别喜欢一句话就是“你可以不聪明,但不可以不努力”,毕竟天才程序员只是很少的一部分,大部分大牛还是靠着正确的学习方法,比别人花更多的时间更多的经历在学习上才达到了他们现在的成就。

所以这里我结合自己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博客,很多内容包括命令都已经失效,早已被新的指令所替代。

因此,只有学会阅读官方文档才能第一时间获取到最新版本的内容并掌握最新的知识点,这样才能快人一步。


###为什么要读英文文档呢?

上面我简单描述了下阅读官方文档的好处,接着我们来说一说为什么要阅读官方的英文文档。

有人可能要说,网上有很多中文翻译的呀,读起来多方便,为什么还要去读我们不擅长的英文文档呢?

  • 首先,现在的翻译成中文的文档确实很多,但是大部分中文文档的翻译周期较长,相比较而言还是难以跟上官方文档的迭代速度。

  • 再者,每个人对于文档的理解不同,不同的人翻译的内容可能夹杂了自己的主观意识,因此,有时会出现一些理解性的偏差。

举个例子,Android开发中一直是在drawable中存放图片资源的,后来多了mipmap的目录,可能是由于阅读不仔细或者理解上的偏差,mipmap刚出来没多久就被说成了drawable中的图片资源都放到mipmap下,然而官方文档上明确写着只存放启动图标。

  • 还有,英文文档读得多了,在遇到问题时,你更容易找到问题的关键词,因为阅读的过程中很多技术术语或者关键词已经悄悄地留在了你的大脑中。

所以,条件允许的情况下我们应该坚决地选择去阅读英文相关文档 那么就提到了之前很多人说的理由,我英文很差怎么办?

其实在刚开始阅读英文文档的时候我的英文阅读能力也不好,跟很多开发者一样,很费力,什么谷歌翻译、有道词典,那些能用上的翻译工具都用上了,而且很多东西不能理解,于是一遍看不懂看两遍,两遍不懂看三遍,配合上代码的实践,渐渐地终于搞懂了,回头再看一遍文档便豁然开朗。

随着阅读量的增加,你会发现,其实官方英文文档并没有那么可怕,大部分文档的语法都很简单,毕竟我们从小学英语长大的,只要肯花时间,一段时间后就能看懂。

而那些计算机单词,数量其实也有限,一般情况下我不会刻意去背某个单词,都是看到不认识了就用词典查,看得多了自然就记住了。

随着阅读量的加大,你的阅读速度也会越来越快,甚至能赶上中文的阅读速度,这样,不管什么样的新技术,你学起来都会游刃有余了。


现在回想起来,当年觉得自己英文不好就不去看英文文档跟资料,其实大部分时候都只是因为畏惧心理而产生的借口,有句话说得好,人不逼自己一把永远不知道自己有多优秀。

在心理学研究中关于人对于外部世界的认识,分为三个区域:舒适区(comfort zone),学习区(stretch zone)和恐慌区(stress zone)

在舒适区我们得心应手,每天处于熟悉的环境中,做擅长的事,和熟悉的人交际,甚至你就是这个领域的专家,对这个区域中的人和事感觉很舒适。但是学到的东西很少,甚至学不到什么东西。

在学习区里面是我们很少接触甚至未曾涉足的领域,充满新颖的事物,在这里可以充分的锻炼自我,挑战自我。所以在这个区域的学习效率是非常高的,是真正在学习。

所以我们要做的只是逼自己一把,迈出那个区域,那么你的程序员生涯绝对能更上一层楼。

其实不光英语,任何技术、框架或者工具也一样,一旦用久了熟悉了,变不愿意去尝试新的东西,可惜的是这行终究是需要不断地拥抱变化,所以,要想有所成长,就必须克服内心的畏难情绪,迈出自己的心理舒适区,进入成长区去学习新的东西。


###学会制订学习目标及计划

一个程序员应该学会给自己制订一定的目标,有了目标才能驱使我们成长,没有目标会让人变得懒惰,失去斗志。

但技术学习的目标又具有一定的特殊性,一方面,由于程序员工作的特性,经常性加班加点,会导致计划时间不稳定;另一方面,在学习的过程中,也经常会因为某个技术点而卡壳,往往耗费大量的时间来解决一个微小的问题,从而导致计划时间不确定。

而技术学习的目标还具有一定的抽象性,比如说我在xxx时间内要学会JavaScript,那这个学会该如何来定义,是入门还是精通?

又比如说我要在xxx时间内成为Android资深开发工程师,那资深开发工程师又是什么样的标准呢?

其实技术的学习往往是个日积月累,由量变到质变的过程,因此,制定一个持续性的目标往往会相对更合理一些。

比如我要开始学习Android Framework层的开发,那我定下了这个目标,我就开始去了解做Framework需要哪些知识点,Android,Linux,C++等等等,然后理清他们的先后顺序

Android => Linux => C++复制代码

接着按照先后顺序找到对应的学习资料:文档、书籍或是视频。

假设我开始学习C++了,经过调研,我找到了《C++ Prime》这本书入门,那我给自己制订一个短期的目标就是先读完这本书,这个目标我并不会设定读完这本书的时间节点。

我的做法是定好每天的学习时间量,在没有特殊情况发生的情况下,每天严格按照这个时间量去学习: 计划: 每天早晨抽一个小时时间来阅读C++相关的技术博客文章, 每天下班后至少1-3(这个根据自己每天的能挤出的时间自己把控)个小时的时间用来看《C++ Prime》, 最后,如果工作完成的情况下,且条件允许的情况下,也可以在工作时间阅读学习《C++ Prime》。

这样,我自己的一个小目标就定下了,当然,这样的一个目标计划,我们很难确定什么时候能够学习完,但是可以确定的是只要我参照这个计划严格执行,你每天都能取得一定的进步,并且很快能达到从量变到质变的过程。


###平时读到的技术文章,学习资料应学会快速筛选并及时收藏

在这个信息大爆发的时代,有着各种各样的技术平台,技术博客/论坛,技术公众号等等,通过这些平台我们能看到各种各样的技术文章。

如果我们每天能按照一个小时的计划进行阅读学习,日积月累下来那也是相当庞大的数量规模。

有不少人看过之后就丢到一边去了,等到想起来的时候却常常找不到文章的地址了。

也有人将这些文章收藏于

转载地址:http://wlkwa.baihongyu.com/

你可能感兴趣的文章
linux下查看各硬件型号
查看>>
epoll的lt和et模式的实验
查看>>
Flux OOM实例
查看>>
07-k8s-dns
查看>>
Android 中 ListView 分页加载数据
查看>>
oracle启动报错:ORA-00845: MEMORY_TARGET not supported on this system
查看>>
Go方法
查看>>
Dapper丶DapperExtention,以及AbpDapper之间的关系,
查看>>
搞IT的同学们,你们在哪个等级__那些年发过的帖子
查看>>
且谈语音搜索
查看>>
MySQL数据库导入导出常用命令
查看>>
低版本Samba无法挂载
查看>>
Telegraf+Influxdb+Grafana构建监控平台
查看>>
使用excel 展现数据库内容
查看>>
C#方法拓展
查看>>
MySql.Data.dll的版本
查看>>
Linux系统磁盘管理
查看>>
hdu 2191 (多重背包+二进制优化)
查看>>
home.php
查看>>
neo4j---删除关系和节点
查看>>