如何从错误中成长?

news2024/12/23 10:29:27

在上一篇文章“技术人的犯错成本”里,我和你聊了技术人可能会犯的各式各样的错误,也举了很多例子,说明了技术人犯错的成本。在竞争激烈的互联网时代,试错当然是好事,但了解错误成本,避免不应该犯的错误,最大可能地从错误中成长,才是我们应有的态度。

我之前看过一篇文章,其中把错误分成四类。

第一类:伸展错误(The stretch mistakes)

伸展错误是:当你尝试去做能力之外挑战的时候,因为自身能力或其他条件的束缚,做得不够好而犯的错。这种错误通常是因为我们主动尝试导致的,再小心也难以避免。不过,在此过程中,你获得学习的机会成本很高,一旦经历过一次,就可能有长足的进步。

比如在创业公司,大家有个创新性的想法需要去验证和实现,这时候谁都没经验,也没有前人的产品可以借鉴,也没有很懂的人给你指导,那怎么办?只能摸索前行,遇到问题,解决问题,犯错,然后纠正错误,所谓逢山开道,遇水搭桥,就是这个道理。当你抵达彼岸的时候,你会发现自己已经升级了,进入了另一个境界。

第二类:无知错误(The aha-moment mistakes)

无知错误是指:当你发现自己为什么错了的时候,你会发出“噢,原来是这样”的感慨。

这种错误一般是因为你不知道或忘记考虑某些特殊情况导致的错误,或者是你做了错误的假设。

初级程序员很容易犯这样的错误,比如忘记处理异常,没有考虑某些数值的边界值,没有进行安全校验等等,还有人因为没有仔细阅读产品文档,不知道产品设计已经改变了,也没有进行对应的调整。出现这种错误之前,你主观上根本没有意识到犯错的风险,还以为自己一直是对的,以至于出错后会有那样的反应。

这种错误一般不会反复出现,但要尽可能避免在不同类型的事情上犯同类型的错误。

第三类:粗心错误(The sloppy mistakes)

直译过来就是由于粗心大意导致的错误,很容易理解。这种错误与“无知错误”不同,是你明明知道怎么回事,但是因为不小心或者忘记了导致的错误。如果你是个粗心大意的人并且没有有意识地纠正自己,这种错误可能一犯再犯。

第四类:高风险错误(The high-stakes mistakes)

主动去做事情,但风险很高,是否会犯错不受自己的控制。比如你面临一个重要的选择,但在结果出来之前,你之前掌握的所有信息都无法告诉你哪个选择是绝对正确的,你只能去做自己认为是大概率的选择。

这种错误与第一类不同,经历过一次,下次遇到高风险的事件,依然可能犯错误,并且不知道会犯什么样的错。

以上我们介绍了四种错误类型,我在文章中放了一张图片,如图所示:第一类和第四类更具意识性,也就是主动去做事情,做事之前你就知道有可能出问题;第二类和第三类则属于下意识的错误,更加不可控。

从另一个角度来看,第一类和第二类错误都会让你学习到更多有价值的、可重用的信息,再有类似情况基本上不会犯重复错误;而第三类和第四类每次犯错后并不能学到太多可以复用的信息,以后有类似情况很可能再犯同样的错误。

了解了这些错误和错误分类,我们就可以有计划有意识地去应对这些错误,尽可能不犯那些对我们成长没有意义的错。当我们面临一个犯错和成长并存的机会时,我们也要知道如何去学习并避免犯同样的错误。

有哪些措施或者方法可以系统性的让我们避免那些无效错误,并从错误中成长呢?

1. 为了避免伸展错误,尽可能地提供一些培训机制。比如对新上任经理的培训,组织一些特定领域的学习班,系统地帮助大家积累岗位可能需要的技能和信息。让一个人担任某个全新的职务时,考虑导师机制,工作中有人结对给予实时指导,等等。

2. 为了避免无知错误,要做好信息的透明和共享。比如完善的文档和快捷的查询机制,任何技术或产品讨论以及达成的共识,要尽可能用邮件抄送到所有相关的人。大的改动可以举行一些会议确保所有人都得到最新的信息。一些常犯的错误或者容易被漏掉的信息可以整理成 Checklist 或手册等形式,让大家更方便地获取到有效信息。

3. 为了避免粗心错误,设置一定的复盘机制。如果是粗心大意造成的错误,要再三总结,反复问为什么,帮助加深记忆。另外还可以通过一些流程来确保低级的错误不会发生,比如细化开发流程,设置检查点,不断迭代和反馈,慢慢形成全面考虑问题的习惯。在不同的事情上,多给自己做一些 Checklist,做事的过程中对照进行,确保不会因为一时大意而有所疏漏。

4. 为了避免高风险错误,所有的决定尽可能都有一个备用方案。也就是除了 Plan A,还要有 Plan B。这样当事情没有按照预期去发展的时候,我们为错误付出的代价也会更少。

总结一下,今天我和你分享了“技术人如何从错误中成长”的话题,首先,我谈到了工作中常见的四种错误类型:伸展错误、无知错误、粗心错误以及高风险错误。前两种错误可以帮助我们迭代成长,后两种错误代价较高,我们要尽量避免一犯再犯。

其次,我讲到了如何去避免以上的错误,针对四种错误类型,要分别采取不同的方式对待。因地制宜、对症下药,让错误成为丰富的经验,为你的成长提供充足的养分。

你在工作中犯过错么,在这个过程中你又获得了什么的成长。欢迎在下面留言,我们一起成长,感谢你的收听,我们下期再见。

文章来源:极客时间《朱赟的技术管理课》

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

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

相关文章

测试概念及模型

今日目标掌握测试用例包含的基本内容使用等价类方法设计出测试用例1. 软件测试分类(复习)1.1 按阶段划分单元测试测试:针对单个功能进行测试,如:登录、购物车等开发(更多的理解):针对…

C/C++实现发送邮件功能(附源码)

C++常用功能源码系列 本文是C/C++常用功能代码封装专栏的导航贴。部分来源于实战项目中的部分功能提炼,希望能够达到你在自己的项目中拿来就用的效果,这样更好的服务于工作实践。 专栏介绍:专栏讲本人近10年后端开发常用的案例,以高质量的代码提取出来,并对其进行了介绍。…

Linux -- 作业控制进程

作业控制 :官方 : 作业控制是一个命令行功能,允许一个shell 实例来运行和管理多个命令。作用 : 使用作业控制,可以选择性暂停,恢复,以及异步运行命令,让 shell 可以在子进程运行期…

【1599. 经营摩天轮的最大利润】

来源:力扣(LeetCode) 描述: 你正在经营一座摩天轮,该摩天轮共有 4 个座舱 ,每个座舱 最多可以容纳 4 位游客 。你可以 逆时针 轮转座舱,但每次轮转都需要支付一定的运行成本 runningCost 。摩…

基于flask+bootstrap+echarts+mysql的鱼村小馆订餐后台管理系统

📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言&#x1f4d…

[1.3.3]计算机系统概述——系统调用

文章目录第一章 计算机系统概述系统调用(一)什么是系统调用,有何作用(二)系统调用与库函数的区别(三)小例子:为什么系统调用是必须的(四)什么功能要用到系统调…

English Learning - L2-4 英音地道语音语调 双元音 [eɪ] [aɪ] [aʊ] [əʊ] [ɔɪ] 2023.03.2 周四

English Learning - L2-4 英音地道语音语调 双元音 [eɪ] [aɪ] [aʊ] [əʊ] [ɔɪ] 2023.03.2 周四节奏发音对比双元音概述双元音 [eɪ]发音技巧对应单词的发音对应句子的发音双元音 [aɪ]发音技巧对应单词的发音对应句子的发音双元音 [aʊ]发音技巧对应单词的发音对应句子的…

Android kotlin 系列讲解(进阶篇)高级项目架构模式 - MVVM

<<返回总目录 1、MVVM是什么 MVVM是Model-View-ViewModel的缩写&#xff0c;是一种高级项目架构模式。 MVVM架构可以将程序结构主要分成三个部分&#xff1a; Model&#xff1a;数据模型部分&#xff0c;包括从服务端获取的json数据或者从本地获取的数据等等View&…

【GlobalMapper精品教程】056:图像融合(高光谱+全色)操作案例教程

本文讲解GlobalMapperV24.0汉化版图像增强:融合(高光谱+全色)操作案例教程 文章目录 一、图像融合概述二、图像融合案例1. 加载数据2. 图像融合3. 图像导出一、图像融合概述 图像融合是指将不同类型传感器的影像进行融合,既能使图向具有较高的空间分辨率,又具有多光谱的特…

工具篇(五)炫酷排版,尽在LaTeX:让你的文档飞升吧!

作者的话 作为一个文本排版工具&#xff0c;latex一直以来都备受科研工作者、学生和出版社的青睐。但是对于初学者来说&#xff0c;latex的学习曲线可能会有些陡峭。因此&#xff0c;我写这篇博客旨在为初学者提供一个简单易懂的latex教程&#xff0c;让大家能够快速入门并掌握…

C++—输入输出流

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言1. 输入输出流2. 文件的输入输出2.1 写文件2.2 读文件前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 我的电脑为什么从 C 盘开始&#…

Compose 动画 (三) : AnimatedVisibility 从入门到深入

1. AnimatedVisibility 是什么 AnimatedVisibility可以实现Compose组件的显示和隐藏&#xff0c;并且可以指定显示/隐藏时候的动画效果。(EnterTransition/ExitTransition) 和 animateXxxAsState、animateContentSize、Crossfade、AnimatedContent 这几个API一起&#xff0c;都…

一文详解像素、DPI、分辨率之间的关系

像素像素&#xff1a;是指在由一个数字序列表示的图像中的一个最小单位&#xff0c;称为像素。像素可以用一个数表示&#xff0c;比如一个“0.3兆像素”数码相机&#xff0c;它有额定30万像素&#xff1b;也可以用一对数字表示&#xff0c;例如“640x480显示器”&#xff0c;它…

单目标追踪——【相关滤波】C-COT原理与ECO基于C-COT的改进

目录C-COT&#xff1a;Continuous Convolution Operator Tracker文章侧重点连续卷积算子目标追踪框架初始化过滤器&#xff1a;追踪流程ECO文章侧重点因式卷积因子生成采样空间模型模型更新策略论文链接&#xff1a;C-COT&#xff1a;Beyond Correlation Filters: Learning Con…

【MySQL】表连接

一、为什么要学习 因为不合理的使用连接会导致慢查询 二、什么是连接 参与连接的表叫做 连接表&#xff0c; 连接就是把 各个连接表 进行的组合 &#xff08;笛卡儿积&#xff09;加入结果集并返回 三、连接查询 如何只是对表进行大量的连接&#xff0c;笛卡儿积作用得到的…

ChatGPT会取代程序员么?今天让ChatGPT写了个程序,感觉离失业不远了

文章目录ChatGPT会取代程序员么&#xff1f;今天让ChatGPT写了个程序&#xff0c;感觉离失业不远了问题&#xff1a;保存和ChatGPT的聊天记录对话实录以及吐槽1. 把当前页面转成markdown格式的方法2. 用油猴子可以实现么&#xff1f;3. 编写一段油猴子代码&#xff0c;实现刚才…

Redis十大类型——Set与Zset常见操作

Redis十大类型——Set与Zset常见操作Set命令操作简列基本操作展示删除移动剪切集合运算Zset基本操作简列添加展示反转按分数取值获取分数值删除分数操作下标操作如果我们对Java有所了解&#xff0c;相信大家很容易就明白Set&#xff0c;在Redis中也一样&#xff0c;Set的value值…

4、树(中篇)

前言:前节二叉树只能适用于静态查找,不能实现动态插入、删除等。如何解决以下两个问题: 静态查找与动态查找针对动态查找,数据如何组织?4.1 二叉搜索树 4.1.1 什么是二叉搜索树 二叉搜索树(BST,Binary Search Tree),也称二叉排序树或二叉查找树。 二叉搜索树:一棵…

Linux RS232驱动实验

目录 一、硬件分析 1、 RS232 原理图​编辑 2、RS485 原理图 3、GPS 原理图 二、设备树中添加设备节点 2、添加 uart3 节点 ​编辑 三、移植 minicom 1、移植 ncurses 2、移植 minicom 3、验证 4、minicom配置 四、测试 RS232 收发测试 串口是很常用的一个外设&…

SpringSecurity: 默认添加的15个Filter是怎么添加进去的?

总的流程分为两部分&#xff0c;一是先用Map把configurer收集起来&#xff0c;然后再把maper中所有的configurer应用到HttpSecurity对象。 其中的map位于AbstractConfiguredSecurityBuilder这个类。 private final LinkedHashMap<Class<? extends SecurityConfigurer&l…