程序员如何高效学习提升?

这是程序员成长那些事儿系列文章的第二篇,程序员这个行业因为知识更新迭代比较快,天生要求持续学习,而如何高效的学习对程序员就显得很重要了。

程序员学习困境

大部分程序员学习成长过程中,都会面临以下两个困境:

1. 体感上学习的东西太多,不知道从何处入手!

2. 学习的东西非常容易遗忘,学的越多忘的越多!

学习困境的原由

程序员这个行业,知识更新非常快,这也让很多程序员产生了错觉:认为自己之所以学习见效慢,是因为需要学习的知识太多了!但事实上,不是因为知识量大,而是知识的更新快!特定的时空背景下,其实程序员要掌握的知识并不见得比其他行业多,而仅仅是因为在流动的时间下,知识不断更新叠加导致总量不断增多。这样就容易让程序员产生要学习的东西太多了,无从下手的感觉!

遗忘是人类的大脑的重要特性,也是保护大脑超载的手段!所以,程序员不必介怀于学的越多忘的越多,这是正常现象!但是,有一个简单策略可以不断强化你的学习成果:不断的重复!不断的重复!不断的重复!(重要的事情说三遍)

如何解决学习困境

虽然程序员行业知识更新很快,但是同时要看到计算机学科基础知识的更新速度并不快,比如TCP协议自从1981年诞生以来,并没有本质的变化。而目前应用软件中基本上所有设计思路都可以在计算机基础知识中找到类似的设计,比如计算机CPU存在L1、L2、L3缓存,应用软件中存在客户端本地缓存、服务器端本地缓存、服务器端分布式集群缓存,本质上是将不同的缓存数据用适当成本的存储介质存储起来。所以只要把握住变化中的不变,而把精力放在学习这些不变的核心基础知识上,并且达到活血活用,举一反三的水平,就会让你感觉知识学一块少一块的快感。

不断的重复仅仅是个策略,那具体到实操层面要如何重复呢?老话说的好,好记性不如烂笔头烂笔头不如碎嘴子。翻译过来,意思就是知识的学习,次等方法是记忆,中等方法是写出来,上等方法是讲出来!实际上,从记到写,从写到说也是考验你知识掌握程度的最有效手段。而且从记到写,从写到说,每一步都是一个大坎,没有大家想当然的那么容易,不信可以试试把自己最拿手的知识先写下来,再讲给同事听听!事实上,知识的掌握可以因此划分为三个水平:

1. 自己明白,写不出来,更讲不明白

2. 自己明白,能写出来,但讲不明白

3. 自己明白,能写出来,也能讲明白


很多读者应该有过类似的困惑:想快速掌握某门知识的时候,究竟是阅读大量博客,还是阅读专业书籍呢?之所以有这种困惑,其实是因为想走捷径,想找容易的事情做。片段化的博客很容易人产生自己已经掌握这个知识点的错觉!

学习一门知识一定要系统性的学习,而经典专业书籍的讲解是最系统性的。这样才能够让你对一门知识建立系统性的认知!这里说的经典专业书籍,绝不是值互联网从业人员写的书籍,而是指国外的计算机专业经典教材!经典之所以称之为经典,就是因为其经过了时间的严苛验证!互联网从业人员写的书籍,其往往比较注重实践性,可以和注重理论的经典教材互相印证来看。博客的作用仅仅只能当做一个课外读物,用于拓展视野,或者快速查询某类知识!但何为主,何为次,何为辅,朋友们要有清醒的认识,分配好自己的时间和精力!


程序员们都爱读博客,但是长期坚持写博客的从总量上看并不多。究其原因,就是上文所说的从记到写的坎很难跨过去!但无论再难,如果想让自己对于知识的理解更上一个层次,这一个坎必须迈过去。

程序员写作的博客有一个特点,就是系统性不是很强!笔者认为主要是两个原因造成的,一是程序员大多是理工科毕业,写作技能普遍不高;二是在一篇博客中想要讲解的知识太多太杂,没有中心!所以,读者朋友们,如果想让自己的博客讲的更通透,可以读一些关于协作技巧的书籍读一读,加强协作技能;同时让自己的博文聚焦某一个知识点,将其讲透彻即可。


说的重要性是最被程序员所忽略的,这可能和大部分程序员比较「害羞」有关,不愿意在众人面前很OPEN的分享自己的知识和观点,担心随之而来的是各种质疑。写博客时候即使有人评论质疑,也有一块屏幕挡在面前,距离产生安全感!

那找什么要的人来说呢?最方便的一定是讲给你的同事,最好是比你技能低的那些同事。因为技能低的同事都能理解,证明你讲解的通俗易懂,同样的讲解被技能高的同事理解就不成问题。这样既利他(帮助后进同事),也利己(提示知识掌握水平)。说句题外话,从这读者应该也能看出来「利他就是利己」这句话的意义所在,实际背后是一种双赢的思想,找到大家共同的利益所在并执行之!

给周围的同事讲,无论技能高低,终究因为你们同属于一个工作体系下,还是很容易理解你讲解的知识的!那还有其他的更合适的人群吗?根据笔者的经验,面试就是一个绝佳的讲解场景!笔者曾经在3天内面试了14家公司,每家公司至少2个面试官,我把自己的知识体系在3天内至少讲解了28次!我现在都还记得,到第3天的时候,我的知识体系我都能清晰的背诵出来了,到现在很多细节知识点都很难忘记,这对我自己知识体系构建起到的非常大的促进作用!面试时是在有压力、固定时间内把自己的知识讲解给面试官,很多面试官和你背景差异很大,这个时候如果你能给面试官讲解明白,那意味着你对自己知识的掌握绝对是达到了一个新的层次!而且这样会强制你压缩你的知识,把你最精华的知识不断提炼,最终留下来的都是精华中的精华!说句题外话,经常面试也能让你及时了解到市场的行情和需求,对于你后续职业生涯发展也是多有益处的。

你可能感兴趣的:(程序员如何高效学习提升?)