查看原文
其他

当“码农”遇上 Tony 老师:程序员理发时都在想些什么?

素年清时 程序人生 2019-04-25

“不用剪太多,稍微修一下就好!”

“嗯嗯好的没问题!”

“咔嚓!”

“?!”

“您好,办卡消费 2888,欢迎下次光临!”

在 Tony 老师的一阵操作猛如虎里,我们收获了一个和预期效果迥异的意识流发型。那么当程序员遇上 Tony 老师,在头发簌簌落下的时候,程序员脑内在经历怎样的风暴,最终又悟出了什么真理呢?

作者 |  素年清时

出品 | 程序人生(ID:coder_life)

即使“996”忙成狗,石磊还是在周日懒觉睡醒之后不辞辛劳地去了朋友推荐的一家理发店剪头发,为什么他不根据“就近原则”在住处附近随便找家理发店?因为他不满意呗!不论是楼下小发廊中的 Tony 老师,还是街边知名连锁店中的总监,他们给石磊剪出来的头发总是与他想要的大相径庭。

石磊骑着共享单车穿过近半座城市,最后终于在一处商住两用楼中找到了那家理发店。店里就一个理发师。

唯一的理发师热情地招呼着石磊:“帅哥,你想怎么剪?

“帅不帅,全在于你手中的那把剪刀。”石磊心里轻轻嘀咕着。

“把两边推掉,上面稍稍修一下。”石磊在过去不知跟多少位理发师重复过这个简单的要求,但似乎没几个理发师能够满足他,他期盼着眼前的这位能够和以前的那些有所区别。

“好嘞!”理发师给石磊洗完头、盖上围布之后,便拿起推子在石磊的一侧头边动作起来,细细的碎发一撮一撮地掉在了白色的围布上,黑白分明。

石磊看着在他头上忙活的理发师,还有不断掉落的头发不禁陷入了沉思。

要说这理发师与他的职业是多么相似啊!石磊是一名资深程序员,虽然他的职称距离“总监”的路程比理发师远得多的多。

产品经理提需求,程序员根据需求开发写代码;而理发师也是根据前来理发的顾客提出的要求动剪子。程序员依靠电脑生存,理发师全凭各种尺寸不一的剪刀吃饭,他们在顾客的头上“敲着代码”,剪子和推子是他们的“键盘”,梳子是他们的“鼠标”,镜子是他们的“显示器”。程序员敲代码时“啪啪啪”,理发师剪发时“咔嚓咔嚓”。程序员敲完一个模块,便要做个单元测试一下功能;理发师剪完某个部位便要对着镜子打量一下成果。程序员改 bug,理发师操着小剪刀修剪一两撮没有剪齐的头发。

几个程序员孜孜不倦、齐心协力地敲着改着,多少个不眠的日夜之后,就写完了一套程序;理发师单打独斗,刀剪并用,无数刀之后,一个崭新的发型出炉了!

“帅哥,剪好了,您看看还满意吗?”理发师替石磊解开围布,拿海绵布替他擦净脖颈上的最后一缕碎发。石磊这才如梦初醒,他打量着镜子里的自己,陷入了新一轮的思考。

模式总是如此的相似。每当检验成果的时刻,正如程序员加班熬夜写出来的程序总是无法令产品经理满意一样,理发师殷勤忙碌半天剪出来的发型总是令顾客大失所望,无论是程序,还是镜子里的发型,都不是他们想要的结果。

石磊看着自己的新发型不禁皱起了眉头,显然他眼前这位理发师的手艺不太满意,石磊想对理发师说:让你给我剪个我想要的头型有那么困难吗?难道我要你实现了‘根据我穿的衣服自动变换发型’的功能了吗?”石磊情不自禁地想到了那个在码农界广为流传的故事——产品经理要求程序员实现根据手机壳颜色自动变换主题的功能。

“能不能再给我修一下?”石磊把埋怨收进心底,尽量温声细语地对理发师说。

程序员在产品经理的催促下,只能硬着头皮改代码继续优化;理发师在顾客的埋怨下,讨好似的拿起剪刀做进一步的修剪。

石磊在更改代码的时候,是有些不情愿的,因为那意味着他要删掉许多实现了产品经理口中“无用功能”的代码,那可是他加班加点写出来的成果啊!自己的劳动成果毫不被人重视,是多么的令人难过啊!

做着类似工作的理发师是怎样的感受呢?他也像石磊那样难过吗?石磊看了看前后打转的理发师,在他脸上没有看出丝毫难过的迹象。他们怎么能够难过呢?职业素养要求每一个 Tony 老师绝对不能够在客人面前表露丝毫的不悦。

理发师左一刀、右一刀,十几刀之后,石磊那刚刚成型的头发又换了个模样,理发师再次询问他的意见。石磊看着眼前这个被发型弄得面目全非的自己,心里真是绝望啊!他这时终于悟出了理发师与程序员的截然不同之处。

不论怎样的代码,经过程序员一遍又一遍的修改,总是与产品经理的意愿渐渐贴近,最后总会达成他的意愿,达到甲方的要求,甲方愉快地付了钱。

可是被理发师剪坏的头发最后还能被他的剪刀修成顾客想要的结果吗?答案显而易见,不能!一旦理发师给你的头动了刀子,一切就已经注定了,根本没有挽回的可能,好的理发师根本不需要后期的修修剪剪来挽回局势,差的理发师无论怎么修剪也挽回不了局势。找到一个靠谱的理发师比招到一个靠谱的程序员要难得多!

只有被剪坏的头型,没有被敲坏的代码。偶尔个别不靠谱的程序员写出了烂代码,起码还能找个厉害的来替他收拾残局。可是遇到理解不了顾客需求的理发师,剪出与顾客意愿南辕北辙的头型,即使再找个总监来也无济于事啊!

石磊有次在烫完头发一个月之后去一家理发店剪发,他明确跟理发师说了“只要修一下即可”,他要保留头发烫过的痕迹。可那个理发师的剪刀一上了石磊的头,就像一匹脱了缰的野马一样不听使唤,最后硬是将石磊烫发的痕迹剪得荡然无存。到了这样的时刻,还能怎么补救呢?删掉的代码能够被还原,可掉了的头发能够重新回到头上吗?那简直就像删掉的数据一样无法还原,被剃成光头就好比彻底清除了数据库,程序员也无能为力。

石磊强掩内心的愤懑、不悦,对着理发师递过来的二维码付款,理发师敬业地微笑着对石磊说:“帅哥走好,欢迎下次光临!

“再也不会光临了!”石磊跨上单车,头也不回地离开了这家理发店。


作为码一代,想教码二代却无从下手:

听说少儿编程很火,可它有哪些好处呢?

孩子多大开始学习比较好呢?又该如何学习呢?

最新的编程教育政策又有哪些呢?

下面给大家介绍CSDN新成员:极客宝宝(ID:geek_baby)

戳他了解更多↓↓↓

 热 文 推 荐 

程序员的黑砖窑,东南亚博彩骗局详解

只管埋头苦敲代码,就能成为顶尖架构师了?

什么是 DNS 劫持、投毒、解析?看这文就懂了!

要成为年薪百万的技术大牛必经历这5个阶段, 收好这份超实用的技术进阶指南 | 技术头条

助力 Android 抗衡 iOS,华为发布方舟编译器!

你的 AI 老师已上岗

OpenStack网络的下一步原来这么走 | 技术头条

售价910元!周志华等人英文新书《演化学习》出炉!

System.out.println("点个在看吧!");
console.log("点个在看吧!");
print("点个在看吧!");
printf("点个在看吧!\n");
cout << "点个在看吧!" << endl;
Console.WriteLine("点个在看吧!");
Response.Write("点个在看吧!");
alert("点个在看吧!")
echo "点个在看吧!"

点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

你点的每个“在看”,我都认真当成了喜欢

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存