查看原文
其他

职场程序员如何高效自学

大飞码字 大飞码字 2019-04-04

程序员是个蛮累的职业,除了有996的工作时长,还需要持续不断的学!学!学!生怕稍微松懈,就赶不上大部队了。人的思维能力,理解能力各异,学习效率也各有不同。智商高,理解能力强的,一点就通,稍差些的需要再理解理解,再差些的可能想个几天也没想明白。学习能力强的同学,日子过得轻松一些, 学习能力差的也不用太担心,俗话说: 勤能补拙! 只是需要付出更多一点的时间。 如果学习的方法比较好,也是可以节省不少时间的。对于计算机,我基本是自学,大学基本是自学过来的,工作后,更是没有老师会教你,自学已经成了我的本能。这篇,我说说工作后自学的一些经验和感悟,供大家参考参考。


一 端正学习的态度

工作后的学习跟学校学习最大的不同,就是不用考试(那种为了应对职称考试进行的学习除外)。明白这点,学习效果会有很大的不同。背定义概念是没有意义的,没人会考你,你不能准确的说出定义也没有关系,因为没有人考你。 最最关键是你理解,真正的理解,透彻的理解。不用为了面子强装理解了什么,一时不理解没有关系,你有大把的时间可以慢慢的琢磨和吃透它。对于一些短时间内无法理解,或花了几天也还是没搞明白的,可以先收藏起来,待过一段时间后再看,你会有不一样的收获。我前段时间看分布式 paxos 一致性协议这块,也是看了几次都没看明白。后面直接就先放过了,半年后,再来重新看,感觉理解又精进了一步。  


二 选择合适的学习内容

这个跟学习效率有很大的关系。以前的时候,我跟我的同事讨论过一次,工作外的时间如何学习。 他告诉我,他学的东西一般会跟目前手头上的工作同步。 比如近期刚接了一个分布式系统缓存的项目,他的学习内容就会围绕分布式系统缓存相关知识进行学习。先学习工作最需要的部分,学完就可以用起来。如果还有时间就往周边延展,比如会进一步去看memcached, redis 是怎么做的,怎么设计的,有空还可以去翻翻人家的源代码什么的。他这个效果事实证明很好,对工作也有很好的促进作用。这个对当时的我比较有启发,因为我一直以自我为核心,业余时间都只学自己喜欢的,没有跟工作更紧密的结合起来,导致自己有段时间特别累: 又要学习工作中的新东西,又要学自己感兴趣的。时间上分配不过来,搞到精神状态也不好。 有的同学对某种东西可能有执念,比如我对linux 内核就是有执念的,我一直想去参与linux 内核的开发,花了很多的业余时间去看linux 内核相关的实现机制,但由于跟工作不直接相关,同时还要花时间去学工作相关的知识,就搞到很累,后面我自己做了调整,感觉就好了很多。 这里多说点,对于有这种执念的同学,我觉得要想清楚。 比如从事前端开发,但内心其实又想做游戏。最好做出明确的选择,如果真的喜欢游戏,果断放弃前端,去游戏公司入职。


三 学习时间的选择

程序员的工作时间都比较长,工作时间里,除了写代码,应该还有一部分时间是做方案设计和调研的。 如果采取了第二点的建议,那做方案调研时间也变成了你的学习时间,一箭双雕的事情。除了这种时间,剩下的只有下班后和上班前的时间了。有人喜欢早上上班前学一点,有人喜欢下班后再学一点。 我比较懒,不喜欢早起,所以都是下班后再学的。有时候是公司学完再回家。 一来,你也懂得,可以树立好好学习,天天向上的好形象。 二来,我这个人比较容易兴奋,睡前想太多事情,容易睡不着,所以学完后,再回去,中间有个通勤的时间再加上回去后洗涮之类的时间,可以让脑袋平静下来。除了整块的学习时间,如果通勤时间比较长的,也可以考虑把通勤时间利用起来。 我做过一些尝试,用手机在地铁或公交看书,看文章什么的,后来发现效果不太好。公交车上看手机,还容易头晕。 但我发现用来做算法题特别好,题目很快就看完了,剩下的就是想。无论你在车上是什么姿势,几乎都不会影响你自己思考。待思路想清楚后,回到电脑前,再把它实现成代码,我感觉效果不错。 这段时间不做题,就用来想文章的内容:)


四 控制自己的学习状态

我很注重学习的状态。 如果当天状态不好或者感冒生病了,我就不学了。我觉得自己不差这一来两天的时间,状态不好的时候,强迫自己学习,容易让自己对学习这件事情产生厌恶感。这种厌恶感一旦产生,你就要停下来,进行调整了,避免不断恶化,陷入恶性循环,导致你彻底放弃学习。所以要善待自己的学习激情和学习的状态,你不是在高考,不需要冲刺。 状态不好的时候,去打打游戏,刷刷剧也好,犒劳,犒劳自己。 当然不要一直在犒劳。就我自己来说,我发现自己的学习状态是有周期的,好像每个月就有那么几天不太想学  :) 。 而且学习状态会有起伏,有时起伏还比较大。 一开始,我很纠结,特别是状态不好的时候,觉得自己浪费了时间,又没学到东西, 后来就慢慢接受自己的学习周期了,也开始接受一个事实: 你没办法一直维持最好的学习状态。 如果你最好的学习状态是100%,  那我大部分时间只有80%, 70% , 有时甚至只有50%。 当我接受这个事实后,反而释然了,不强求,状态好的时候学多点,状态不好的时候,学少点。事实证明,我跑的依然快过别人 :)。 因为更多的人是在三天晒网两天打渔。


五  学习输出

这个点,大部分的同学不重视。 我以前也不重视,后面才觉得后悔。 学习输出,除了我们常说的技术博客,技术文章这类的,在实际项目中,将所学的变成代码或设计方案,也是学习输出了。不过这种输出是被动的学习输出,你不太好控制,如果项目刚好用上,那就是理论跟实践结合了,但并非所有的都能用上, 这个时候主动输出是比较好的。 写技术博客这个事情,难就难在坚持,写一两篇还挺容易的,但让你几年的写下来,还真不容易。但技术影响力,有很大一部分是来自这种博客,文章的。时间长了,还可以塑造出个人品牌,算是额外的收获了。


六 平衡工作学习和生活

人这一生,除了工作,学习,还有生活。 不要把自己的生活全丢了。 工作再累,学习再幸苦,也要留点时间,过过自己的生活。 对于单身狗,除了工作,学习外,我觉得第一要务,是找对象。 你不去找,又怎么会有对象呢,至于对象要怎么找,我不是很有经验,因为哥从大二开始,就未再单身过 :) 。 有对象,就有意思多了,可以一起去市场买买菜,回来一起做饭,可以一起刷剧,虽然我觉得国内很多剧都很脑残,不过刷着,刷着还会上瘾呢, 也可以去看看电影。。。 , 反正两个人可以做很多一个人做不来的事。 单身的朋友,赶紧找个对象吧。这是平衡工作学习最好的办法。


以上是我这些年职场自学的一些经验和感悟,给各位参考,参考。每个人的情况不一样,不一定都适用,你有什么特别的学习方法或感悟,也可以在留言写下来,给大家参考参考。


推荐阅读:

再来说说程序员的年龄焦虑

又准备要去面试了吗? 来来来,给你点干货建议(下)

一次线上分享的干货整理

技术人, 请不要封闭自己


我是delphi, 微信早期员工,腾讯高级工程师,技术leader

支持就给个好看呗 :)





    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存