整理 | 郑丽媛
不同于几十年前曾经尚在起步的互联网时代,现在我们可以借助网络解决各类问题:从生活琐粹到专业技术,只要耐心,就一定能找到答案。
一如国内大多习惯于“百度一下,你就知道”,谷歌也是多数国外用户首选的搜索引擎——按理说,这并没有什么不好。
然而,国外有位程序员老歌 @nmivan 曾分享过一则他被“谷歌”坑了的故事:“我这个白痴,招到了一堆只会‘谷歌’的程序员!”
以下是 @nmivan 的亲身经历(为更具代入感,本文将以第一人称叙述)。
自负如我,决定把“笔试”变为“机考”
我是一名技术面试官,一直都在负责公司的技术面试,有一套虽非原创、但简约有效的招聘流程:先对应聘者进行一轮面试,再让其做一些编程笔试——是真的“笔”试,就像在大学里考试一样,应聘者需要在纸上写下解决问题的代码。
事实证明,这个招聘流程很合理:我们所聘用的所有程序员都成为当地 IT 社区的重要专家,其中一半以上还在各个领域建立了自己的 IT 业务。
这般成绩令我有些“迷失”了。在我看来,能招到这些优秀人才完全归功于我这个技术面试官所制定的招聘流程,而为了跟上时代发展,我决定在原本基础上进行一点改变。
“为什么要让他们在纸上乱写乱画,这方式仿佛停留在古代。”考虑到我自己也快忘了在没有 IDE、上下文代码、调试等现代开发工具的帮助下编写代码是什么感觉,我改变了技术面的方式:从“笔试”变为“机考”,即应聘者无需再手“写”代码,改为在电脑上敲代码。
最初,他们的表现确实不负期望
我的做法是,跟应聘者说明编程任务后,给他/她一台电脑,要求其在半个小时到一个小时内完成——在此期间,我会离开处理一些其他工作。
等我回来后,迎接我的就是一个现成且完整的解决方案,不仅代码漂亮,性能优化得也很好。天真如我的第一反应是:当代人竟如此热爱技术,编写代码对他们来说就像呼吸一样简单!
因此毫无疑问,我雇用了这些人,他们最初也确实不负期望。
对新员工来说,一般入职的头几个月是一个挑战,因为他们忙于学习任务编码,无法独自承担工作。意外的是,我在那批通过“机考”招聘进来的程序员身上,完全没有看到这类问题。
他们总是轻而易举地完成我下达的简单任务,甚至还在没有寻求帮助的情况下独自处理了复杂任务——那时我再次天真地感慨:看看这正在成长的一代,多么美好啊!
当时,我以为永远都会这样,他们将一直保持着目前生产力的增长速度持续提升。可几个月之后,我逐渐意识到不对劲。
3-6 个月后,他们集体达到了一个“平台期”
准确来说,应该是 3-6 个月后,他们的生产力集体达到了一个“平台期”,再也无法增长。更不幸的是,疫情也在那时爆发了,所有人都开始远程办公。
在那段远程办公的日子里,他们的生产力从未提高,始终停留在实习生水平,导致我一直在群里疯狂催进度。
在我看来,这个问题应该归咎于远程办公,他们可能缺乏动力、缺乏现场交流,隔着屏幕我也无法施展我的个人魅力。
因此当我的上司向我质问“因为远程工作,导致了生产力的增长停滞不前?”时,我十分笃定地回答:是的,只要我们一回到办公室,生产力就会飙升!
打脸的是,等到八月份回办公室工作后,我绝望地发现:生产力还是完全没有增长啊!为了解决这个问题,我亲自下场,尝试对他们提供帮助:这个任务不会处理?你看好,我来给你演示一遍,下次你要记住……
但很快,我就意识到这个方法效率太低,所以我决定回到处理问题的根源:技术面试。依旧还是“机考”,但不同的是,这一次我不会离开了,而是坐在他们旁边。
本来我的打算是,对他们进行一系列测试,先从基础开始,再逐步提高难度。
离谱的是,这个计划在基础阶段就结束了——他们之中,只有十分之一的人了解如何使用基本实体、类型;更糟糕的是,甚至只有 2-3 人在使用内置帮助和上下文代码补全的情况下才勉强完成得不错。
我对这个结果十分震惊:他们根本就找不到属性和方法,更别说使用了,他们甚至连最基本的任务都做不了,可之前的优越表现是怎么回事?
直到有一个人在测试期间问了我一句:“我能谷歌一下吗?”——那个瞬间,我这个“白痴”终于顿悟了。
破案了:一堆只会“谷歌”的程序员
在得到问题答案后,我大约用了两天时间进行消化,越想越生气:
- 他们在初次应聘时交给我的漂亮代码来自互联网;
- 入职后的最初几个月,他们生产力的爆炸式增长也来自互联网上找到的解决方案;
- 他们在不了解基本结构的情况下进行编码……不对,或许应该说是下载或复制了代码,反正他们一点都不知道怎么写。
讲道理,我可以理解他们想上网了解一些技术的工作原理,也可以理解他们想快速查找一些针对性资料,可让我最不能接受的是:你怎么可以从网上复制一些作为程序员来说最基本的东西?!
面对我的质问,他们显得非常不以为然:“这有什么大不了的?”他们的态度让我感到非常无力,我冷静了几天,开始思考这个问题的罪魁祸首——我认为,答案应该是我。
是我傻,我没有看清他们这一代人习惯遵循的行为方法,也没有意识到这些习惯存在所导致的“肤浅”及其严重性。
对我来说,他们真是非常糟糕的混蛋
我还记得,在我上大学的第一天,一位副院长曾告诉我们:“大学不是给你知识的,而是教你如何靠自己获取知识的。”
能在 2000 年代初学习,我觉得我很幸运,我因此养成了从书本中找到问题答案的习惯——一切问题,想要解决就必须看书。相比之下,“谷歌”程序员就显得没那么幸运了,因为他们随时随地都可以获取任何信息。
书上曾说:“大脑形成最重要的是,它精确加强了一个人使用的那些神经连接。”这句话也就是说,如果你不断地编写代码,你就会做得越来越好;如果你经常在网上寻找信息,你就可以掌握这项技能;如果你一直从网上复制代码,你就会成为这方面的大师。
可惜,并非所有代码都是开源的,此时这类“谷歌”程序员的平台期也就到了——他们的生产力不是体现在编写代码上,而是从互联网上复制代码的效率。
或许在某些情况下,“谷歌”程序员会超越普通程序员,尤其在解决标准任务方面。但对我来说,他们真是非常糟糕的混蛋。
网友:“工作就是场开卷考试”
至此,@nmivan 分享的这个故事就结束了。
但我们在国内外许多平台上都可以发现类似提问:“程序员写代码时用百度/谷歌搜索,会被其他人鄙视吗?”
部分人认为,工作就是场开卷考试,借助互联网无伤大雅:
“个人觉得,工作就是开卷考试,关键知识混个脸熟,能通过手册、搜索、Stackoverflow 等找到就行。那种要敲一天代码、千篇一律的项目要少做,与其敲代码得累个半死,不如在项目结束时多总结一下,把共通的地方抽象出来,做好封装或记录下来,下次直接调用或复制粘贴。”
“能利用好身边资源的人,总不会太差。”
也有部分人认为,新人通过这种途径可以理解,但程序员要想提升自己,还是不能只用现成的解决方案:
“想要成为一个好的程序员,不能只用别人现成的解决方案,一定要自己也能输出解决方案。虽然都说不要重复造轮子,但这是针对公司来说的。对个人来说,提高能力的途径,其中一条就是重复造轮子。”
“小公司可能需要这种程序员,但作为在大公司专攻一个领域的大牛,确实不太行。”
那么,你对于这个现象有什么看法?欢迎在评论区留言。
参考链接:https://habr.com/en/post/521104/
如果你喜欢本文,
请关注 Hollis.