经授权转载自:beebee星球

ID:beebeesub

程序员桌子上摆上一个甚至一堆小黄鸭,你可能见过,但你一定会忽视。

你谈论着程序员的秃头、365全季工服,以及和乙方般被动的恋爱态势,但你从未真正关心过他们。

牧师需要光明,船长需要罗盘,程序员需要鸭子。圣克拉拉县山景市的Google极客和布达佩斯居民楼里的洋葱网络流氓,桌上都会出现鸭子。

这是一种心照不宣的程序员文化。

尽管早已过了与鸭共浴的年纪,但小黄鸭依然成为了他们工作中不可或缺的伴侣。

小黄鸭的身影出现在有程序员出没的任何可能的地点。

在旧金山南湾和洛杉矶西区的流媒体创业公司,与在卢旺达临时板房搭建电子商务平台的技术极客,他们身边的黄鸭没有区别。

只要是程序员的办公驻地,就可以寻觅到小黄鸭的踪迹。

如果没有,那只能说明程序员文化还停留在coder coding code的阶段。

或许与许多人的想象不同,对于现实中的程序员来说,在很多时候写代码牛逼并不是能力的全部,十足耐心调试代码才是常态。

打个简单的比方,怀上只需一晚上,但孕育则需要十个月。

而调试这一过程,在程序员的工作中占据高达50%~75%的时间。

根据数据记录分析公司Coralogix的统计,平均来说程序员产出每1000行代码,就会出现70个bug,而修复bug所花的时间比重新编写一行代码要长30倍。

这让许多程序员意识到,自己在排除bug所花费的精力,往往是抽干自己所剩不多精力的重要指标。

你花费一天时间编写出几千行代码,却看到编译结果Unexpected token ILLEGAL,接着要浪费数天的时间穷举案例、排查纠错,然后又继续重复这个过程。

你觉得自己就是推巨石上山的西西弗斯。

直到把前几千行代码都改过后,才发现自己是把倒数第五行的分号误写成了中文格式,这种感觉会让人想把大脑从耳朵揪出来,然后叫一个女巫用冰冷的邪舌把脑沟舔一遍再塞回去。

代码和bug如影随形,是这世上不可协调的矛盾之一。

人永远无法像机器一样严谨,而机器也不具有人类的跳跃思维、联想能力。

那会不会存在某种方法,可以让人机之间的沟通达成协调?

答案就是小黄鸭调试法。

做法十分简单,放空你那塞满问号的浆糊大脑,将小黄鸭放到显示器与你之间。

然后对着可爱的小黄鸭,把它当做最好的朋友,当做一个代码白痴。

对它不留遗漏地解释代码,遍历代码的所有行,并讲得尽可能清晰。

如果你足够投入扮演讲师的角色,或许在你从未想象过的极短时间内,就会得到答案。

“从前程序员要用直尺和C语言手册排查,有时候还要用锤子辅助,在服务器上贴东方经文加持庇护。”

“现在我们只需要一只小黄鸭。”

该方法最早被记录在程序员圣经《The Pragmatic Programmer》,这本书旨在帮助初出茅庐的程序员将技术职业规范化。

中文译名:程序员修炼之道

事实上,这种作法在教育心理学领域被称为费曼学习法,其重点就是将所学知识传授给他人。

由于需要精确复述你的想法,你将不得不关注此前认为理所当然的一切,从而引发思考、加深理解。

正如班里学习最好的同学从不吝啬给他人讲题一样,他们的收获远比你想象的要多。

尽管古早的技术大牛们未曾理解其背后的原理,但却务实的将其口口相传。

如果github的北极代码库有人类仓位,那它的入场券一定是小黄鸭的样子。

直到现在,这种原本作为洗浴伴侣的单品已经进驻大多数码农的办工桌,和hhkb键盘一样意义非凡。

你可以在购物平台的小黄鸭评论下,看到全球程序员对小黄鸭的大力赞赏。

也会看到初入此道者对其伴侣的甄选。

很多编程培训机构也把小黄鸭当作入学礼,点亮码农职业生涯的明灯,同时也保住了他们珍贵的秀发。

当全组人都在为赶项目而争分夺秒时,你绝不希望自己拖进度,成为领导眼中的累赘。

无论你是在BAT搬砖,还是在FAG打工,都不可能一遇到BUG就去找隔壁工位的战友,因为他可能也在用最后的那滴精血在debug。

而你又不可能在深夜加班时,打电话给父母或者伴侣,从底层讲起代码。

想象一下,如果你的伴侣或好友,在深更半夜打来电话对着你讲94年Intel CPU浮点运算的传奇bug,与一个从未见过的错误状态码时,你会不会想挂断电话?

程序员在敲代码的路上总是孤独的。

码农的生活中多半时间是与机器打交道,和自己做抗争。

而这时候,小黄鸭的优点体现得淋漓尽致。

对小黄鸭梳理思路不会耽误其他人,也不会在人群中引起注意,毕竟搞创造力工作的人自言自语不算新鲜事。

作为倾诉对象,小黄鸭绝对是最佳人选。

当你从头到尾讲述自己的代码架构与指针设计后,无须经人指点就能够找到通往救赎之路的金钥匙。

当然橡皮鸭不一定要实体,也可以是以数字的形式存在。

例如网站Duckie(即鸭),通过在线键入内容,为困恼的程序员捧哏。

它好像听懂了机器人三大定律

甚至于,小黄鸭调试法不用小黄鸭来操作,只要你愿意,你可以在工位上对着一堆迪克倾诉。

如果童心未泯,你也可以在工位上摆上一个大号的娃娃来倾吐衷肠诉解烦忧。

但前提是,你已经找好了下一份工作。

END

CSDN协同行业大佬,携手打造13个热门知识图谱及IT成长路线,助力千万IT人成长,快速实现职场进阶!????????

=推荐阅读=

点分享点收藏点点赞点在看

为什么程序员工位上总会摆着小黄鸭?相关推荐

  1. 字符画君君C语言,20行代码制作字符画版小黄鸭表情包 | 文末送书抽奖结果

    点击上方"日常学python",选择"置顶公众号" 第一时间关注 Python 技术干货! 阅读文本大概需要 5 分钟. 前段时间,一只可爱的小黄鸭火起来了,据 ...

  2. 一年带货2个亿,“小黄鸭”成国内最赚钱IP

    来源 | 电商在线(ID:dianshangmj)  作者 | 王亚琪 这几年IP大热,每个知名IP都是棵摇钱树,赚钱能力超乎想象. 如果做一个赚钱能力评比,你觉得米老鼠,哈利波特,Hello kit ...

  3. 和小黄鸭交谈:全球公认的调试代码好方法!

    全文共2108字,预计学习时长6分钟 图源:unsplash 与小黄鸭交谈是一种全球公认帮助调试代码的方法,它可以很容易地应用于任何业务.这是一个有趣的过程,能够让你以全新的眼光看待你的作品. 像大多 ...

  4. win10蓝牙开关不见了_定位颜值人群?洛斐小黄鸭无线蓝牙机械键盘与双模鼠标套装点评...

    对于电脑用户来说,不管你是用的笔记本还是台式机,都离不开键盘鼠标.目前同时拥有两台电脑.平板与多部手机的用户也越来越多,对于多模键盘以及无线鼠标的需求也越来越高,原因就是可以方便连接不同的设备,可以实 ...

  5. ❤️《小黄鸭调试法》程序员必备技能!!!❤️

    小黄鸭调试法 场景一:我们都有过向别人(甚至可能向完全不会编程的人)提问及解释编程问题的经历,但是很多时候就在我们解释的过程中自己却想到了问题的解决方案,然后对方却一脸茫然. 场景二:你的同行跑来问你 ...

  6. 还只会用小黄鸭解压?看来你不是一个时髦的程序员!

    互联网时代的我们每天都承受着各种压力 尤其是每天坐在电脑前敲敲打打的你, 上一秒或许还开心得像个两百斤的胖子 下一秒可能就被BUG和加班折磨的头大 压力是不是很大,需要疏解一下? 是老梗没错了 舒缓压 ...

  7. 小黄鸭调试法-程序猿修炼之道

    什么是小黄鸭调试法 小黄鸭调试法(又称橡皮鸭调试法,黄鸭除虫法)是软件工程中使用的调试代码方法之一.此概念是参照于一个来自<程序员修炼之道>书中的一个故事.传说中程序大师随身携带一只小黄鸭 ...

  8. 小黄鸭调试法,每个程序员都要知道的

    花了一下午(或一天)在试图解决某个 Bug,后来才知道解决方案很简单,当时就是没有想到. 有个同事正好路过,看到你愁眉苦脸的,问你"怎么了呀?" "噢,是这样的.我遇到了 ...

  9. mysql小鸭子_可读代码编写炸鸡十一 - 小黄鸭从你的心里游到脑子里

    可读代码编写炸鸡十一 - 小黄鸭从你的心里游到脑子里 多选参数推荐搜索 数据结构与算法 可读代码编写 Java Redis MySQL 大家好,我是多选参数的大炮. 可读代码编写的炸鸡很快要写到头了, ...

最新文章

  1. 【微信小程序】scroll-view与Page下拉冲突
  2. 【微信开发】微信公众号开发 之 编辑模式使用
  3. Java面试参考指南——同步
  4. 问题分享:Js引用类型赋值
  5. 树莓派云音乐c语言,基于树莓派的红外遥控版网易云音乐播放器
  6. [SQL] Query mystore start [ERR] 1005 - Can't create table 'mystore.admin' (errno: 150)
  7. oracle dbms_sql.describe_columns,PL/SQL Challenge 每日一题:2017-3-6 DBMS_SQL.DESCRIBE_COLUMNS
  8. .NET Core TDD 前传: 编写易于测试的代码 -- 全局状态
  9. oracle exec编译失效,编译oracle失效的函数、存储过程、视图等
  10. python和java学哪个好-学python还是java python和java哪个好入门
  11. .NET 安全编程 阅读笔记(四)
  12. vue+element实现手机号验证码注册
  13. Jupyter Lab 十大高生产力插件
  14. Publish/SubScribe(发布/订阅)模式
  15. 工业互联网产业链全景图深度分析
  16. [matlabpython]01——sort排序的相关内容
  17. html5 2种布局模式
  18. 这是我见过描写天津女孩中最真实的
  19. CCKS2020事理图谱应用工作:刘焕勇等.面向开放文本的逻辑推理知识抽取与事件影响推理探索
  20. X264的ARMV7-a的交叉编译及优化运行

热门文章

  1. EDP/DP转LVDS转接板,支持多种分辨率,最大分辨率支持1920*1200 1080P60HZ,可搭配3288 3399 3588 TV板板
  2. PPT 、word 、pdf、 txt 格式转换
  3. layui 下拉框三级联动
  4. 小虎对《人民的名义》小说人物人名研究V0.1
  5. 中文编程,最精致的python访客登记系统实例项目,微信机器人不再只当人工智障------07
  6. EMC 存储(步步高项目)
  7. 自上而下、自下而上的软件开发
  8. 关于windows操作系统之消息和消息队列
  9. “扫雷”C语言实现(含炸开效果)
  10. 微信小程序获取用户手机号授权