如何培养自学能力

作为一名程序员,拥有一定的自学能力是必不可少的。那么,如何培养自学能力呢?

什么是自学能力
我的解读是 触及自己知识盲区时,解决问题的能力。譬如我们的一名精通Android开发的工程师(简称A),在A的职业生涯中没有接触过服务器端开发,因某些原因,需要他处理服务器端的问题。这时A同学就需要调用他的自学能力,去解决服务器端的问题。

自学能力并非完全限制只靠自己,而是动用一切可以动用的力量,最终结果是让自己有能力解决问题、学到知识。譬如可以向牛人请教、谷歌、看视频、看书等等。

关联的领域
对于一名软件工程师,从Java转到PHP,是一种关联领域的自学,而且应当是相对而言比较好上手的。对于软件工程师来说,这应当是一种基本能力,因为工作中常用的技能,更多的就是靠自学而来,而不是Leader或老师教给你的。譬如我在学习一门新语言的时候,会先做好环境,然后看看语法,这时心里就会将其和自己会的几门语言做一下比较,思考他们的异同,这样也容易加深对新知识的印象。

接下来就是选择用什么来练手,对于编程语言(技术)来说,光看不练肯定是没有什么用的。我们需要弄点实战项目来检验自己,同时帮助我们学习。我个人倾向于选择曾经做个的项目,使用新语言(技术)再实现一遍。这样有两个好处:一、不用纠结于做成什么样,判断标准是现成的;二、可以帮助我们比较两门语言(技术)之间的异同,更好的加深对新语言的理解,并且巩固对老语言的知识,两者在碰撞之下,很容易产生新的感悟。

在关联领域自学的时候,因为知识相对而言容易贯通,相较于零基础的自学有不少的优势,而且容易找到合适自己的学习方法。倘若作为一名软件工程师,当需要自己去学习一门新语言(技术)的时候,自己却无从下手,那就有必要反思一下自己,有没有花心思在自己的学习能力上了。

不关联的领域
一个没有学过乐器的小伙子,想学吉他,这就是想去学习完全和自己以前经历不沾边的东西。当然很多同学可能觉得去报个吉他学习班不就行了?诚然这是一种方式,并且效率可能还比较高,但老师更多还是充当监督者和引路人的作用,未来进一步的提高还是要依靠自己。

那么我们如何没有老师的情况下,进入一个全新的领域呢?其实随着互联网的越来越发达,我们很容易找到进入的方法。谷歌一下,立马会出现很多零基础学吉他的方法,还有视频教程。这个时候我们需要大致筛选出自己能懂的且评价较好的,照着练习,很快应该就能找到感觉。

唯一的问题是我们的热情能保持多久,因为没有老师的监督,我们入门的时间有可能会很长。这会导致我们在学习中得不到正反馈,从而导致热情在某个时间段内,极速的下降,这个时候短期可实现目标的制定,就非常重要了。

短期目标的确立,能确保我们能在一定时间的努力后,得到积极的正向反馈,以维持我们的热情。比如在学习吉他的时候,我们可以给自己定的目标是,每天爬格子完成后奖励自己一杯肥宅快乐水。每周熟练按一种和弦,熟练后奖励自己一顿大餐等等。同时也要根据自己的完成情况,不断的修正目标,因为太难的目标让我们一直没法达到,就会产生惰性。太容易的目标,没有挑战,自己很快也会厌倦。合适的目标是需要自己摸索出来了。

后记
我很提倡大家在平时努力去积累更多的知识,让尽量多的领域都不陌生,这样在未来的学习、工作中是有很大优势的。

有同学会发出这样的疑问,『我并不清楚自己未来工作中要用到什么,现在学了这些以后没用怎么办?』

在我看来,这样的担心不过是给自己偷懒找好的借口罢了。如果我们有清晰的职业规划,那么可以按照自己的规划去学习技能,补足自己的短板,为未来的发展蓄力。但更多的人可能并没有很清晰的职业规划,那么可以先在已有领域钻研更深。还有一些人对于现在自己做的事情,并没有太多兴趣,不想钻研太深。自己又不清楚未来要做什么,我建议此种状况下的同学尽量去多尝试其他领域的知识、技能,这样方便找到自己感兴趣的东西。

很多同学期望找到一种技能,学了就能一辈子无忧,不用一直学,这样就轻松多了。但在我看来没有一种技能是永远不会更新的,只是每种技能更新的周期不同罢了。比如软件工程师的技能更新周期就比钢琴家的技能更新周期短(不知道这个例子对不对,大概是对的吧)。某些技能的更新周期可能长达50年,100年。这些技能就很符合喜欢学一次终身受益的同学。但这类技能要么门槛低,收益低(这里要排除这个领域顶尖的那波人,因为要在一个领域做到顶尖门槛也不低),比如游泳、自行车、会计。要么门槛低、收益高、发展低,比如搬砖(这里我做个可能不大恰当的比较,大家理解就好。比如去工地搬砖,努力干一个月可以赚12000块。在星巴克当服务员,每个月工资6000块。这两份工作如何选择,大家心里都有数。抛开体面什么的不谈,个人发展也是非常重要的考量因素。除却家里有矿的同学,更多的同学会考虑职业前景。)。比如律师是很多同学眼中,高大上的职业,它所需的技能就是高门槛,更新周期长(一辈子可能很难遇到几次),学会了收益很高。再比如软技能中的人际交往能力、演讲能力等,它们实质上也在缓慢的更新,因为人是在变化的,这一代人和那一代人,在思维方式和行为习惯上都会有一定的改变,我们的软技能也需要更新,以便迎合。

每个人都应在一定时候,审视自己掌握的技能,去了解它们最新的进展。思考自己技能更新的周期,将技能做一个梳理,哪些是吃饭的,哪些是未来的规划,哪些是兴趣爱好,这样就能有的放矢的提升自己。

avatar

Code4Cocoa

A ThoughWorker