人们常说,自学是一个人的核心竞争力。
古今中外的成功者们,在学习上都表现出了很强的自控力,
当他们百尺竿头更进一步的时候,也确实很难再把希望寄托于别人的指导上面。
然而,这句话却很容易被曲解。
它强调的应该是自学的重要性,
而不是为了指出自学是唯一有效的学习办法。
不知道从什么时候开始,人们都不约而同的对自学者表示赞扬,
仅凭个人的努力,而不向别人请教和交流,似乎变得越来越普遍。
很多人甚至还对那些非自学者存有偏见。
在软件行业司空见惯的一件事是,人们都喜欢有自学经历的人,
而讨厌那些通过别人的指导才学会的人,哪怕后者花费了更少的时间。
这就像是软件行业的毒瘤一样,影响行业经验的传承。
为什么需要自学
编程是一件很奇葩的差事,
因为,程序员们似乎都没有被指导过如何编程。
软件行业很年轻,
从Dennis Ritchie发明C语言到现在,也只有不到50年的时间,
程序员们可能阅读过不少代码,参与过很多项目,
但对如何写代码这件事上,似乎都仅凭个人喜好来决定。
这个行业的变化也很快,
今年火爆一时的框架和语言,可能到了明年就会无人问津,
这使得很少有人在某个特定领域有丰富的经验。
大家都是新手,都是初来乍到,
能不能崭露头角,拼的就是谁可以在短期内学会它们。
于是,自学而不是靠人教才能学会的能力,
就变成了软件行业入行的首要评判标准了。
为什么强调自学
可以说,对于新手来说,“老”程序员们并不友好,
遇到问题,“老”程序员们会让新手去自学,而不是指导他们。
还强调自学是程序员安身立命之本。
“老”程序员们的经验是自学而来的,
于是他们期望别人也得这样学习。
那些新手们,就只能像无头苍蝇一样乱撞,以期望自己碰巧学会编程。
甚至连接受培训的机会,都被“老”程序员们抹杀了,
因为,“老”程序员们都厌恶那些“没有自学能力”的人。
这么简单的东西你都让人教,以后怎么办?不是吗?
或许,自学能力真的很重要,
但是学会不才是真正的目的吗?
如果想要练习自学能力,显然可以通过更直接的办法。
授业解惑
结合自身的经验,我遇到过不少自学方面的问题。
自学得来的知识,构成了我知识中的大部分,
自学让我的知识体系更加枝繁叶茂。
然而,每一次触类旁通,每一次突破瓶颈,
都不是自学得来的,无一不是经过别人的指点和教导。
各种知识脉络之间的联系更是如此。
因此,在一个方向上能走多远,靠的是自学者的不断努力,
而走哪个方向,有哪些方向可以选择,靠的是贵人指点。
我经常遇到某个问题,看了很多资料和书籍都不得其解,
却在别人的讲解中,幡然领悟。
为什么会这样呢?
因为,讲解的人有很多其他方面的背景知识。
知识也只有通过综述的方式,理解才能更深一层。
“师者,所以传道受业解惑也”,
解惑,是很难通过自学实现的。
自我成长方法
其实,关键不在于是否自学,
而在于是否有一套适合自己的有效的成长方法。
我们的目的是学会,而不是为了锻炼自学能力。
如果你认为请教别人,会让自己在自学方面缺乏锻炼,
那么不向别人请教,一定会在“如何向别人请教”方面缺乏锻炼。
你总得失去一个。
我们要仔细区分,
是问题被解决了,还是自己学会了如何解决它。
因此,无论问题最终被如何解决,我们都要学到类似问题的解决之道。
没有人天生就会那么多解决问题的办法,
只在见多识广,不断积累。
而对于新手来说,盲目的自学,很可能是有害的,
会让自己的知识结构中,充满盲区和迷信,
变得自以为是,变得不愿意相信正确的事情。