卖桃者说
池建强
极客时间创始人、墨问西东创始人
30376 人已学习
免费领取
课程目录
已完结/共 523 讲
第一季 (135讲)
第二季 (134讲)
第三季 (124讲)
第四季 (90讲)
卖桃者说
15
15
1.0x
00:00/08:55
登录|注册

第26期 | 犯错是成长的契机

讲述:池建强大小:7.15M时长:08:55
你好,这里是卖桃者说。今天想跟你聊聊犯错这件事,或者叫试错也行,更好听一点。
前两天,卖桃者说的音频出了点错,很多热心读者帮忙指了出来,即使我这样的老同志,看到这些留言的时候还是会老脸一红,不好意思,不过这个错误帮助我们改进了上线流程,也算是好事了。
没人喜欢犯错,特别是当你在工作中犯了错还被别人抓到的时候,我们会很自然的感到羞愧、尴尬、沮丧、不知所措,这是很正常的反应。尤其是在传统的社会语境中,犯错往往会跟愚蠢、无知、粗心、能力差等负面评价挂钩,这让我们不自觉地回避犯错这件事,并试图去掩盖和推脱它们。
现实情况是,无论我们怎么小心,都无法避免犯错,哪怕你是天才或大牛,往前走的时候都会出各种问题,只不过有大错,有小错,有的是主动试错,有的是无意犯错而已。
相对而言,程序员对犯错这件事算是接受度比较高的群体了。毕竟一个 bug 就是一个错误,而“开发无止境,bug 随身行,世界上不存在没有 bug 的软件”已经是编程世界广为人接受的“真理”了。即使你是最优秀的程序员,也无法避免写出 bug。
作为 Apple I 和 Apple II 的唯一发明者,史蒂夫•沃兹尼亚克可以称得上是最伟大的程序员之一,在他的传记《沃兹传: 与苹果一起疯狂》里,就记录过一个沃兹犯错的故事。
1977 年底,沃兹和苹果第六号员工兰迪·威金顿经过不眠不休的编程和调试之后,终于完成了 Apple II 对软盘驱动器支持的大部分程序。于是二人起身飞往赌城拉斯维加斯,准备参加 CES 展会。
当天晚上,沃兹和兰迪完成了最后的调试工作,一切都很完美,两个好基友就差对饮一杯红酒然后相拥而眠了。这时候,沃兹突然有了一个“明智”的想法:“兰迪,咱是不是该备份一下程序再睡?”兰迪一听,“对啊,你不说我差点忘了。”沃兹带了两张软盘,于是他决定在空白盘上再备份一份仅有的数据盘,备份过程进行的十分顺利,只不过,他把空白盘当成了数据盘……于是他得到了两张干干净净的空白盘。
普通程序员碰到这种灾难,估计以死谢罪的心都有了。但沃兹是普通程序员吗,当然不是,于是他先去睡觉了。
第二天一早醒来后,沃兹恢复了上帝般的自信,他冷静的坐在 Apple II 面前,一机在手,天下我有,用一上午的时间盯着屏幕、敲打键盘,他重建了所有的程序,并在展会上进行了完美的演示, Apple II 获得了“言语无法描述的成功”。
伟大的程序员如沃兹者,年轻时也会犯下如此的错误。当然,他也有能力在错误发生后力挽狂澜。
犯错并不一定是“不好”的,某种程度来说,错误是我们成长的契机,它能促使我们反思自己的做法、帮助我们更好的理解外部世界,从知其然跨越到知其所以然,从而找到问题的正确解决路径,拓展自己的认知边界。
举个简单的例子,有个圈外的朋友一直以为搜索就是百度,百度就是搜索,后来我告诉他,世界上还有谷歌搜索引擎,并且更准更大更好用,之前还有雅虎呢……后来他学会了怎么使用谷歌检索信息,还会用通配符呢。其实,这种有点颠覆自己原本认知的时刻,就是学习提升的最佳契机。我们会忍不住去寻求正确的答案,自然就能对原有的知识储备和理解做出修正。犯错是我们达到深层理解的必经之路。
在编程领域,每个程序员都是在一个又一个的错误中成长,不断的排查问题、找出解决方案、加深对技术的理解,然后成长为杰出的架构师、技术经理、CTO、创业者和产品经理的。
嗯,为啥有产品经理的事儿呢?可能是犯错太多转行了……
一个团队里犯错最多的程序员可能是你最优秀的工程师之一,因为他做的最多,也可能最快。如果他能不断改进方法减少犯错的频率,就可以把之一拿掉了。不犯错的人有没有?有啊,不做事就不会犯错,没有贡献,自然也无法成长。
TED 演讲者凯瑟琳·舒尔茨在《犯错的价值》中说,“禁止犯错就等于禁止质疑,就会剥夺我们深层理解的机会。错误是深度思考的一部分,犯错,是人类本性的核心内容之一。”
既然犯错是我们学习和工作中不可避免的一部分,那如何正确的对待它就非常关键了。
首先要做好情绪管理,很多人犯错后会下意识的否认,“我没错啊”、“这不可能啊”;或者试图掩盖,“千万不能让别人知道,尤其是领导”;或者试图推脱,“都是某某的错”、“都是某某没有做好”;或者陷入深深的自责,“我太差劲了,居然犯这种错误”。
这些都是我们要克服的,我们需要改变自己的思维模式,给自己树立一个新的认知:犯错是正常的,犯错并不可耻,恰恰相反,犯错是一个获得新知识、新技能的契机,是一个成长的机会。这种思维的转变是最根本的,会让我们不再羞于谈论错误,更开放的面对它们。比如很多技术人都会乐于对外分享他们踩过的坑,就是这种思维的最佳体现。
其次在行为上,虽然犯错正常,但也不能成为习惯,老是踩进同一个坑里,就走到另一个极端。犯错的时候,要记得多问问自己为什么:“我为什么犯这个错误?我能从中学到什么?如何避免下次再犯类似的错误。”然后将你的反思落到实处,力争不再犯同样的错。
有时人的认知和行为惯性是很顽固的,因此,我们不仅要及时复盘,理清犯错的原因,还要把它们记录下来,然后记得时时查看复习。在我的编程生涯初期,就采用了这种方法来尽量减少 bug,我在《今天你写 bug 了吗?》这篇文章中分享了当时的做法:
在编程方面我奉行不要在同一个地方摔倒两次的原则,每次自己程序出现的 bug 案例,我都会记录到 bug 库里,检查代码的时候逐一对照,确保不会犯重复的错误。
第三,就是尽可能避免无法挽回的错误,有些错误真的是很难挽回,最严重的就算删库跑路了。还有一位程序员,他在一家网络游戏公司工作,他的一部分工作就是手动维护数据库里的一些数据,这个库是生产库。终于,在一个懒洋洋的下午,温暖的阳光照在身上,他发现自己昏昏欲睡,鼠标光标神差鬼使的移到了用户表上,右键菜单弹了出来,“delete”被选中,并被重重的点了下去……数据消失了,就像一阵风一样。
他看到其他同事都勾着腰趴在发光的显示器上,他们惊恐的发现,所有的用户数据都不见了。随后更糟糕的是,他们数据库备份两个月前就失效了……一个程序员,干掉了一家公司。
这样的错误,少犯,最好别犯。
最后用一下凯瑟琳·舒尔茨的一段话作为收尾:
只有正视错误,才能在犯错的过程中不断修正对世界的看法,获得进步。一旦你不再犯错,就应该开始警惕了,因为这意味着你没有进步,没有学到新的东西。
好,今天关于犯错的话题就先聊到这儿。卖桃者说,明天见。
(编辑:成敏) 
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《卖桃者说》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(10)

  • 最新
  • 精选
  • 吃草🐴~
    我在看到文章末尾的真实案例时,也是一身冷汗。因为在上家公司,我就干类似的活儿:我其中一项工作就是在数据库里“倒腾”,维护老项目。记得有一次,我把某个用户删除了忘记了备份(这也造就了我现在非常谨慎的性格,删除东西前都会先备份),还好当时没有把整张表删除,我凭着仅有的记忆大概恢复了,可能数据不全了,但是还是能用的。哈哈哈,突然有种罪恶感啊~ 大神就是大神,遇事不慌,还能先睡觉。我要是干出这种删除的事,可能慌乱完全占据大脑、心跳过速了。一晚上,甚至一段时间都心有余悸。 其实现在我的水平不高,偶尔也会出问题。每次公司测试叫我的时候,我喜欢先说类似:“我写的代码不可能有问题”这种话。然后…嗯,低头认错,态度可好了。哈哈哈。确实,被指出错误没有什么,重要的是不要在同一个地方摔两次。 对了,last but not least,之前指出音频错误只是善意提醒,个人并没有恶意。作为程序猿,希望不要扣同行工资,实在要惩罚,让腼腆的程序猿在大家面前唱歌或者讲笑话比扣钱更好。池大会不会看到这条留言,我会不会被注销账号,哈哈哈。

    编辑回复: 感谢指出问题,欢迎多提宝贵意见,哈哈

    6
  • wjzhu
    多年前我也有一次误删经历。连到生产环境统计日志的。结果rdp到sqlserver 服务器的管理控制台本来右键选择select语句的,突然网络卡住了变成了drop table……然后网络不卡了表也没了。一个生产系统,备份居然因为agent没启所以一直没做成功。你问我后来怎么办的,后来就不了了之了。 现在回过头想想,这是典型的管理问题啊,可以有很多可以反思的地方,如果操作权限,备份,架构设计,工作流程任何一个环节做得更好些,也就不会发生了。

    池建强回复: 每次删库都对应了备份失败……😂

    1
  • leslie
    人生何时不在犯错:提升自己技能过程中其实我们经常会发现自己过去做的事情很傻代码怎么一堆问题。 节前重看自己两周前的代码就发现自己忽视了性能问题:代码是实现了,可是有些方式写法不应当是一个老手写出来的-完全是生硬的实现的,然后自己重新改写了一下-效率完全不一样了。 Google运维解密一书中曾提前:没有问题的系统是系统的特殊形态,如何避免重要问题才是我们需要努力做的事情。
    2
  • 栾~龟虽寿!
    如果所有用户都帮助它,这个产品,这个公司必将长成参天大树。
    1
  • 开心
    找错也是种乐趣,错误就是爬山坡,没有山坡太容易也没意思了。
    1
  • Geek_loser
    每次使用之后暂停,时间略长以后没法继续播放,都是从头重新开始。得到就没这个问题!
  • 小斧
    只有正视错误,才能在犯错的过程中不断修正对世界的看法,获得进步。一旦你不再犯错,就应该开始警惕了,因为这意味着你没有进步,没有学到新的东西。
  • Sudouble
    重要的还是知道自己错了,知道怎么错的。
  • 苏忆
    感觉朋友只知道百度搜索的那个例子并不是跟犯错很贴边。不过,这个犯错是成长的高效途径。我真的很赞成池大的看法。
  • 加菲猫
    谁都不喜欢犯错,用正常心态看待,每个人的观点,习惯不同,对犯错的看待不同,对犯错的想法也不同,要做好对犯错认识,但是不能经常犯错
收起评论
显示
设置
留言
10
收藏
73
沉浸
阅读
分享
手机端
快捷键
回顶部