欢迎光临散文网 会员登陆 & 注册

六星云课堂:程序员如何学习才能持续而不倦怠?

2022-12-01 09:38 作者:六星云课堂  | 我要投稿

IT行业是一个变化非常快的行业,它需要我们持续去学习新的知识和技能。但是,工作以后,我们经常会发现自己学习的东西很少了,倒不是没有时间去学习, 而是学习的效率太低了。久而久之,就演变成“一年的工作经验,重复用十年”。

众所周知,现在是一个知识爆炸的时代,知识更新非常快。据测算,一个大学毕业生所学到的知识,在毕业之后2年内,有效的不过剩下5%。对于软件行业而言,这种形势更为明显,我们赖以立足的,不在于我们现在掌握了多少知识,而是我们有多强的学习能力。

学习人人都会,但不同的人学习效果却千差万别。一个善于学习的人,首先应该是一个善于读书的人,懂得如何高效地学习,并且拥有良好的心态。唯有如此,才能成为一个卓有成效的学习者,成就卓越的程序人生。

01、为什么要持续学习?

可能很多人会问:为何要持续学习,靠经验积累不行吗?

程序员这个职业不同在:因为行业更新得太快,积累的经验很快就不适用了。

举几个例子:

如果你是Java程序员,且非常擅长Struts + JSP开发,解决了很多Struts框架的问题。但今天,这部分知识已经过时,需要重新学习。如果仍坚持使用之前的技术,会给同事和公司带来很大的技术负担。大家回顾一下自己从毕业到现在有多少技术都已经看不到踪影了。

软件的经验积累还会体现在一个架构设计上。很多同学会说经验积累得多,架构就设计得好,这在今天来说也未必。大家都在云上啦,云上提供的服务基本都是类似的,架构思路和使用的云上服务基本一致。

行业发展得太快,你必须学习,纯靠经验积累行不通,技术淘汰的速度远大于你经验积累的速度。

02、如何做到持续学习不倦怠?

1、在工作中学习

不要一下子什么都学。在日常工作中,你要查很多东西,即使在这个领域里工作了十几年,也要查很多。但是,特别是在你早期的时候,一定要抽出时间来学习东西。

初级求职者的工作会希望你花很多时间学习东西。如果他们不这样做,他们就不应该雇用你这个级别的人。任何编程工作都涉及到至少在你参与项目的前 2-6 个月学习公司的代码库,除非他们遵循一个非常传统的结构。所以利用初级职位的优势,尽可能有效地学习你工作相关的技术栈。

一定要对你的第一个职位所涉及的技术进行深入的研究,试图比你正在工作的职位所要求的更深一层的了解。

这不一定要发生在每一项工作任务中,但至少应该在每一两次任务中发生一次。通常低层比你想象的要简单,或者说能让你更容易理解高层。理解低层也让你有更好的嗅觉,知道什么时候代码是蓬松的,什么时候是实质的。这可以指导你的调试,增长你的基本功,加快未来工作的速度。

2、逃离一万小时定律

一万小时定律很多人都知道,现在只要提到这个定律,很多人都会理解成只要在某个领域时间超过一万小时,就可以成为这个领域的专家。这个理论最早来源于《异类》这本书,作者马尔科姆·格拉德威尔也说了这个只是必要条件,没有说是充分条件,但很多人忽视了这一点。

很多使用一万小时定律的人看似勤奋,但其实是低效率的重复,这就可以解释了为什么很多十几年工作经验的程序员水平还很低,就是因为每天都在重复地做简单的事情。

但我们要正确使用一万小时定律,我们在这个时间内需要一直待在学习区,除此之外还有舒适区和恐慌区,比如每天做很简单的工作的程序员就是待在舒适区,所以时间再长也没有进步。恐慌区则是要求太高,能力够不到,而屡屡带来挫败感,最终可能导致放弃。

学习区就是需要我们进行刻意练习,每次能提高一点,螺旋式地上升,首先取得进步,然后到了一个瓶颈,被困住了,寻找不同的方法来克服障碍,最后找到了这种方法,然后又稳定地提高,直到下一个障碍出现。

锻炼也是如此,长时间没运动后的第一次,会非常有感觉,但如果相同的节奏持续了一段时间,便会进入舒适区,需要寻找其他的方式来继续加大刺激才会有持续的效果。

3、利用碎片化时间系统化学习

「碎片化」和「系统」看似是两个矛盾的东西,但在今天这个信息爆炸、快节奏的时代,我们需要学会利用碎片化时间来进行系统化学习。

小编一直认为学习任何技能需要进行系统学习才可能更全面地理解,更有大局观,最好的方式就是书籍、专栏等,但首先我们要建立这个技能的一个知识架构,可以使用思维导图。这个知识架构就像是一棵树,有很多的分支和叶子,书籍和专栏学习的产出(笔记、示例代码等),会慢慢填充这些分支和叶子,我们在平时碎片化时间中学习到的一些知识点可以纳入这个树的结构中,而不是作为一个孤立的点。

慢慢这个树会越来越大,这时需要做一些优化和调整。最终树又会变得清晰和简洁,而知识你已经了然于胸,这就是将书读厚再读薄的一个过程。

4、长期保持学习节奏

一旦你有了第一份工作(或前两份工作),并且建立了自己的基础知识,那么问题就来了,如何保持所需的学习节奏,以跟上技术的发展。而这最终取决于你计划做什么,以及你的职业生涯规划。

如果软件是带你走向下一个事物的垫脚石,那么你就可以多消耗一些动力和时间,把精力集中在市场热度高的地方,并努力从中获得 3-5 份工作,尽可能为下一步的工作做好准备。

如果你想长期留在软件行业,那么建议你不要追热门。试着在软件开发中找到乐趣。而且,当你学会如何在构建和学习事物的过程中找到乐趣时,一定要把握好自己的节奏。

一旦你觉得自己有能力构建中小规模的项目,就不必每周都以 100% 的速度学习。对于网站开发来说,这大概就是你能够自己编写博客软件的时候。你应该半定期地学习新的东西 真正有帮助的一件事是要有一个以某种方式记录你所学到的东西的过程,保持可持续性。

5、做项目,写Demo,看源码

前面说了学习,但是程序员不写Demo是不行的。项目中可以考虑尝试新的技术。不一定所有的技术都能用到项目中,有些是启发性的或者触类旁通的,你需要写Demo,磨磨刀没有错的。

读了很多,看了很多,如果再用代码辅助一下,就更好了。比如,学习ES 6 + React,如果没有代码,很难想象要如何掌握这个知识。项目中多尝试一下你学到的新知识,不能惯性使用你熟悉的技术,要知道你熟悉的东西很快会被淘汰,被淘汰后再调整就来不及了。多写一些demo,多磨磨刀。

看源码是非常重要的一个技能。至少你code review技能提升,但成本确实高。但是你如果决定投入,看源码帮助还是很大的。

总之,学习是一件终身的事情,我们需要不断地探索。

最后,送大家一句乔布斯的话:“求知若饥,虚心若愚”(Stay Hungry,Stay Foolish)。其实小渡更喜欢它更原生态的翻译“保持饥饿,保持愚蠢”。

我们只有认识到自己还很饥饿和愚蠢,才会像没吃饱一样,由衷地需要学习、爱上学习、持续学习。

以上就是本次分享的全部内容,想学习更多编程技巧,欢迎持续关注六星云课堂!

六星云课堂:程序员如何学习才能持续而不倦怠?的评论 (共 条)

分享到微博请遵守国家法律