程序员是终身学习的职业,应该怎么学习?

在上一篇《一款用了就不想走的工具》中介绍了一款工具 Notion ,可以做学习的规划、时间的管理、学习的记录等,但学习本身还是需要一些方法的,本文谈谈我对学习的一些感悟。

不管你是刚刚进入职场的新人,还是工作多年的老兵,或许都有这样一些困惑:

  • 看了很多的技术和管理的书籍,但关上书之后书中讲的内容都不太记得了;

  • 每次准备入职面试时,精心准备的算法和设计模式之类的内容,当过了一段时间之后,便会抛之脑后,不能很清晰说出使用场景和原理;

  • 每天利用通勤时间看了大量的公众号技术文章、博客等,但在个人技能提升上没有很明显的提升。

这些问题之前也困扰着我,也是在不断地学习和摸索,慢慢找到一些方法:

  • 保持学习的热情

  • 费曼学习法

  • 逃离一万小时理论

  • 利用碎片化时间系统化学习

保持学习的热情

兴趣是最好的老师,很多时候同样的事情重复地执行,会使我们感到枯燥乏味,慢慢丧失了兴趣,比如在教女儿写字的时候,使用了一个方法,让她每天写日记,内容写什么都可以,不会的字可以用拼音代替,每天写完后,会把她不会的字标注在空白处,坚持了几个月效果还是挺不错的,但慢慢有时对写日记比较排斥,这时换一种方式,在周末的时候,一起用小木棍玩拼字的游戏,其实是变相地在写字,由于变得有趣了,兴趣也就有了。

除了兴趣,要想能够持续,那么我们的目标就不能设置的太高,太高会让我们望而却步,难以坚持。在《微习惯》一书中讲的的方法可以解决这个问题,并适用于每一个普通人,就是让目标设置的足够简单,比如要写一万字的文章,现在每天就写20个字,20个字你不可能做不到,所有人都能做到。想要锻炼,那就从每天一个俯卧撑开始,你根本就不可能失败。作者把这套策略叫作 「微习惯」。

最近我也在使用《微习惯》中的方法,由于天气太热,晚上对出门跑步有点排斥了,我就告诉自己,每天不是非要跑步,下楼去走几圈也可以,这样就没那么排斥了,但只要换上运动鞋下楼了,除了走,还是会跑一下的,锻炼的目的达到了。

费曼学习法

或许你没有听过费曼学习法,但有可能你已经实践过此方法,该方法非常的简单,比如我们想要学习某个技能的时候,大概要做下面几个步骤:

1、在一张白纸上,或者用思维导图,写出你想要学习技能的相关知识点;
2、模拟教学,想象自己是一个老师,最好是有一个具体的传授对象,将所学习的知识教授给他们,费曼认为,如果你不能向一个小学生解释清楚某个事物,那说明你没有真正的明白;
3、模拟教学不可能总是那么顺利,总会有一些卡壳的地方,这些地方需要重点记录下来,进行资料查阅和有针对性的突破;
4、查缺补漏之后,会有更全面的认识,然后继续第二步,进行模拟教学,重复2、3,直到完全弄懂。

平时在团队中我一直鼓励大家做技术分享,这个也是考核的一个加分项,也是希望通过这个方法让每个人在技能上有所突破。

对女儿的教育也是一样,我经常让她把老师教给她的知识转教给我,其实也是希望通过模拟教学,让她对知识能有更深刻的理解,有些地方如果她讲不出来,我再有针对性地进行辅导。

逃离一万小时定律

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

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

最近为了教育家里小朋友买了黄静洁的《学习的格局》,里面也提到了一万小时定律,书中认为要正确使用一万小时定律,我们在这个时间内需要一直待在学习区,除此之外还有舒适区和恐慌区,比如上面提到的每天做很简单的工作的程序员就是待在舒适区,所以时间再长也没有进步。恐慌区则是要求太高,能力够不到,而屡屡带来挫败感,最终可能导致放弃。

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

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

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

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

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

慢慢这个树会越来越大,这时需要做一些优化和调整,同时也可以使用费曼学习法来进行知识吸收。最终树又会变得清晰和简洁,而知识你已经了然于胸,这就是将书读厚再读薄的一个过程。

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

希望本文对您有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/308117.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7-2 批处理作业调度 (10 分)(思路+详解)

一:题目:宝宝 你要永远开心,下雪了,多穿点, 输入格式: 第一行输入作业个数n。 第二行输入各任务在机器一上的完成时间。 第三行输入各任务在机器二上的完成时间。 输出格式: 最短完成时间和 输入样例: 3 2 3 2 1 1 3结尾无空…

WindowsSdkDir 从何处来?

缘起 我在《修复被破坏的 vs 工程设置》和《修复被破坏的 vs 工程设置(续)》这两篇文章中,分享了调查 VS 包含路径错误的问题,感兴趣的小伙伴儿可以查看。依稀记得在 2013 年的时候调查过类似的问题。前一阵子没翻到,这…

7-3 符号三角形 (10 分)(思路+详解)

一:题目 Come 宝 !!! 输入格式: 第一行符号个数n 输出格式: 符合要求的三角形个数 输入样例: 4结尾无空行 输出样例: 6二:思路 思路: 1.如果我们确立的第一行的符号是什么 ,那么我们就可以基本上确定我们的符号三…

7-1 内存分区分配--首次适应算法 (100 分)

一:题目7-1 内存分区分配–首次适应算法 (100 分) 宝 今天你看我博客了吗 输入内存的大小和阈值minsize,按照首次适应算法进行连续的分区分配。在划分时,若剩余的内存小于等于minsize,则将整块内存分配给该进程不再进行划分。 根…

如何在生产环境下用好EFCore

原文链接:https://www.thereformedprogrammer.net/handling-entity-framework-core-database-migrations-in-production-part-2/作者:Jon P Smith在生产中运用EFCore的模式实战这是使用EF Core迁移数据库的系列文章中的第二篇。本文着眼于将迁移应用于数…

39. 组合总和020(思路+详解)

一:题目: 给定一个无重复元素的正整数数组 candidates 和一个正整数 target ,找出 candidates 中所有可以使数字和为目标数 target 的唯一组合。 candidates 中的数字可以无限制重复被选取。如果至少一个所选数字数量不同,则两种…

8种方法解决vue创建项目报错:command failed: npm install --loglevel error

8种方法解决vue项目创建失败问题1、重建项目2、清除缓存3、重装淘宝源4、修改useTaobaoRegistry5、重装node6、删除npmrc文件7、 node版本问题8、css编辑工具选择9、管理员身份运行踩了这个巨大的坑!! 试了一个晚上终于找到了创建项目成功了T_T 当报错了…

40. 组合总和 II021(回溯法)

一:题目 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 注意:解集不能包含重复的组合。 示例 1:输入: candidates [10,1,2,…

.NET Core + Kubernetes:Helm

Helm[1] 作为 Kubernetes 体系的包管理工具,已经逐渐成为了应用分发标准,在 .NET 开发中,可以理解为与 NuGet 包类似。回顾之前文章中的介绍,Kubernetes 中单个服务的部署有时会涉及到多种资源类型,如:Depl…

vue项目中引入阿里图标iconfont

vue如何在创建好的项目中引入阿里图标iconfont呢,涉及到以下几个步骤: 1、首先先到阿里图标官方网站https://www.iconfont.cn/,先对账户进行登录,登录完成后任意选择几个图标加入购物车 2、加入购物车后,点击页面最右…

78. 子集022(回溯法)

一:题目 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1: 输入:nums [1,2,3] 输出:…

vue项目中使用vue-router进行路由配置及嵌套多级路由

在vue项目中,很多时候我们需要二级路由或者三级路由来跳转页面,但大部分需求下我们都只用到了二级路由,有小伙伴就会发现,用到三级路由的时候,就会突然不知所措,是有新的方法呢,还是跟二级路由配…

解决流氓软件方法(亲测有效)

一:问题描述 本来我想在百度上下载一个API文档,我当然知道是取官网上下载了,但是我想要的是中文版,所以我就搜啊搜,搜到脚本之家 ,那里面可以下载,我记得以前在里面下载过东西,以为安全就去下载…

.NET Core:跨平台和开源,让我在框架中脱颖而出

自从 2016 年微软发布了 .NET Core 1.0,至今 4 年的时间里,.NET Core 历经 7 个正式版本和几十个 Preview 版本。.NET Core 作为最通用的框架,和其他软件框架不同的是,它面向 Windows、Linux 和 MacOS 多个平台,在桌面…

vue实现侧边折叠菜单栏手风琴效果

在我们做管理后台亦或是产品流程时,总是需要一个菜单栏或者导航栏来架起我们的产品架构,那么,如何用vue实现侧边折叠导航栏呢?接下来将一一介绍。 请先看效果演示图。 步骤1:先架构整个页面的布局,撰写html…

程序员过关斩将--解决分布式session问题

微信搜一搜架构师修行之路session 说到 session,我相信每个程序员都不陌生,或多或少在项目中使用过。session 这个词,其实是一个抽象的概念,它不像 Cookie 那样有着明确的定义。当大多数程序员谈论 session 的时候,可能…

如何将nodejs项目程序部署到阿里云服务器上

将nodejs项目程序部署到阿里云服务器上一、概述二、具体步骤1、拥有自己的服务器2、下载Xshell3、 oneinstack配置web环境4、 XShell连接远程主机5、更新系统软件6、在服务器上安装node环境7、部署项目到服务器上8、安装pm2并启动nodejs项目三、快捷指令1、linux的常用命令2、p…

101. 对称二叉树023(BFS)

一:题目 二:上码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullpt…

中移动完成透镜天线远距覆盖和降本增效试点

日前,中国移动研究院在官微上正式发布了《新型透镜天线进行首次高铁覆盖实验》一文。中国移动研究院、中国移动甘肃公司与西安海天天线科技股份有限公司联合开展的人工介质圆柱透镜天线在高铁、高速等线状纵深领域的长距覆盖取得突破性进展。两年以来,铁…

基于PHPEnv的本地环境搭建—PHP第一个项目:HelloWorld(从安装到运行)

1、安装软件 编程工具:Notepad 运行环境:phpEnv 2、用phpEnv建立本地运行环境 (1)官方下载phpEnv,运行phpEnv,启动服务。服务启动之后,apache和mysql变绿。如下图所示: &#xff0…