我经常会看到程序员“面试造火箭,工作拧螺丝”的讨论,这篇文章我发布了我自己的一些看法:
全文链接:技术面试的平等
但是如果你回顾那些因为错误代码造成灾难性后果的事件,从 Ariane 5 火箭因为整数溢出而爆炸到最近的波音飞机 737 Max 失事。你会发现灾难的来源都是微小的 bug,都是某一颗螺丝,而任何一颗螺丝没拧紧都会造成同样的后果。很多程序员往往只着眼于高大上的概念和架构,忽略了软件工程谨慎细微的重要性。而算法和数据结构却正式锻炼了这样谨慎的思维,Linus 在内核开发的邮件中曾经说过:
“说实话,我宁愿早点淘汰那些没有谨慎开发的人,这听起来很残酷。但我的原因不是因为 “欲戴皇冠,必承其重“这类的观点,而是有更深刻的意义。我宁愿不和粗心的人一起工作是因为谨慎对于软件开发是非常重要的“
1
wispmagical 2021-02-05 10:24:33 +08:00
第一次看到这样的评论,感觉也有点道理。可能从出发点不同看到的角度不同。
|
2
czfy 2021-02-05 10:30:08 +08:00 36
1. 波音飞机 737 Max 的直接原因是算法问题,但根本原因是这个机型是赶工出来的,是波音管理层为了保持和空客的竞争优势而做的错误决策,将这件事降格到程序员不严谨,那是国内惯常的找人背锅思维
2. 工程软件领域确实多么严谨都不为过。其实金融领域也是的,但无论是银行技术外包化还是早前的 P2P 、现在的消费贷,都是利润驱动的结果,在这些行业工作的程序员有多少是抱着安全至上、风险最低化的心态在工作的,恐怕在金融“大数据风控”这个行业将近消失的时候已经有答案 3. 再到国内大多数互联网公司涉及的业务场景,面试造火箭,工作拧螺丝,纯粹就是供求关系失衡的结果,大厂来面试的人多得不行,面试标准自然可以无限拔高 |
3
dark3212 2021-02-05 10:32:59 +08:00 3
问题是大多数公司的大多数产品不是造火箭。
你一造火箭公司招收拧螺丝的工人,问点造火箭的技术还能理解点;但是很大一部分产品都是造个三轮车,还 tm 有一个轮子是朝上的,面试时还问火箭是怎么造的这不就是离谱么。 |
5
luozic 2021-02-05 10:36:02 +08:00
人是非常重要的,不过将组织和工程的问题全部降落在一个个人身上,而不是考虑组织本身的工程能力的构建,以工程的科学来做工程这才是真正的软件工程,包工头肯定不愿意承认自己已经是堵塞技术进步的最大障碍。 关于宇航工程的最新典型示范----了解一下马斯克的 SpaceX 。
|
6
owenzhang24 2021-02-05 10:43:28 +08:00
赞同
|
7
ggcver 2021-02-05 10:49:32 +08:00
不要和无能的人做同事,这会让人感到沮丧
|
8
rodrick 2021-02-05 10:53:01 +08:00
回到现实,不能忽略资本因素和人的因素,这些都很不稳定,面试本来就不可能完全平等,不然那些被 HR 用来刷 kpi 的面试者就被忽略了
|
9
lewis89 2021-02-05 10:54:40 +08:00 3
@czfy #2
确实如此,中国人的惯性思维就是人不行,即使再谨小慎微也难以避免人会出错,我们又不是二进制电信号组成的计算机,还自带编码纠错功能,要保证工程项目不出问题,需要的是 严格的单元测试,测试把关,QA 质量体系,才能保证的,光靠人的谨小慎微没有任何用处。 其实皇帝换了这么多,你看天下不还是那个天下,人不还是那个人,人性亘古未变,文艺复兴后 变的是制度,变的是思想,人还是那个人,但是思想跟制度已经大不同。 所以我一直很佩服 走向共和编剧说的那句话, 孙中山: 暗杀是不可能会动摇专制根基的 |
11
xuanbg 2021-02-05 11:11:39 +08:00
人生而平等,指的是精神和思想上、政治地位上的平等。出生在一个富裕家庭还是贫困家庭,能一样么。在社会上,人生来就是不平等的,但我们应该得到公正。
|
12
alphatoad 2021-02-05 11:16:51 +08:00
国内本科不学职业伦理还挺遗憾的,这些问题都可以得到回答
|
13
treemonster 2021-02-05 11:20:29 +08:00 via Android
不能一棒子打死,很多 bug 最后都变成了意外的惊喜甚至被发扬光大,比如马里奥的蹬墙跳,如果不是当时开发者的犯错,你今天根本玩不到奥德赛
|
14
JoStar 2021-02-05 11:26:31 +08:00
我认为 面试造火箭,工作拧螺丝 与 工作严谨 是两码事儿。
关于工作严谨的问题,大家自己想想究竟是底层员工自己不想严谨,还是领导不允许? 赶鸭子上架的事儿少吗? '不就改一个按钮吗?怎么要一天' '什么?老代码设计不好要重构,将就用用就行' '这版只要做个 DEMO 给老板看,你怎么快怎么来' |
15
JoStar 2021-02-05 11:28:14 +08:00
当然,有时候也不能全把锅甩到领导身上,因为领导身上还有市场竞争。
但是单纯地让下面的人背锅,还真是——下属的功劳归上司,上司的过错归下属。 |
16
YouLMAO 2021-02-05 11:51:08 +08:00 1
逻辑混乱,张冠李戴
你一个培训班出身的, 跟我说写对冲基金的代码??? 先给 linux 内核提交一个 patch 再说吧(单测是不可缺少的,文档也是), 连英语都写不清楚, 还想造火箭, 做梦吧 造火箭不需要懂 jvm GC 或者 go GC 的过程 |
17
BiteTheDust 2021-02-05 12:19:44 +08:00 2
“算法和数据结构却正式锻炼了这样谨慎的思维”
能吗?并不能。 算法和数据结构也只是一种知识,同样是知识如何迁移到“谨慎细微”这种个人品性上去? 事实上我认为你这样写只是单纯想缝合下面 Linus 的话。感觉文章里面基本就是这个套路,引用一堆别人的话或者网络上流传的故事。不过营销号文章这样也正常。 而且软件工程一个很重要的功能就是,让做正确的事情变得容易,让做错误的事情变得困难,而不是去假设工程师谨慎细微或者全知全能。 |
18
Jooooooooo 2021-02-05 13:06:20 +08:00
面试平等在于
候选人面试多个公司挑选最好的那个 公司面试多个候选人挑选最好的那个 至于最好怎么定义, 大家会有自己的看法. 公司要求造火箭才好那是公司的事, 公司为此事花钱, 挺合理的 |
19
20015jjw 2021-02-05 13:48:28 +08:00 via Android
错不是问题啊
造不造不重要 要造的时候造不造的出才是问题啊 |
20
u5e05 2021-02-05 13:54:14 +08:00
还是不够卷, 只分析其一不分析其二.
平等? 别扯淡了, 一周让你宁完一个火箭的螺丝, 十个女的一个月必须生完一个孩子. 严谨? 谨慎? 永动机? 先期条件给够了吗? 没有就别在那独醒了. |
21
cmqwan 2021-02-05 16:09:04 +08:00
curd-boy 能粗心大意,但程序员不行---------鲁迅
|
22
abc11 2021-02-05 16:22:27 +08:00
写的什么玩意...
|
23
gongshishao126 2021-02-05 16:43:55 +08:00
@treemonster 这种侥幸心理不能有,作为一个工科生,之前在工厂待过,那地方稍有疏忽可能就是人命,各种惨烈事故相信大家都有所了解。现在转了软件,某种程度上只要不是跟钱打交道的业务就算犯错了可能也不会有太严重的后果,不会有太大的心里负担
@treemonster |
24
oploverliu2012 2021-02-05 17:28:57 +08:00
如果一个螺丝没拧紧就导致整个系统崩溃 那只能说这个系统的架构太烂了 关键部分怎么也得弄点冗余设计吧
|
25
l00t 2021-02-05 17:47:00 +08:00
你面试造火箭和做事严谨有半点关系吗?东拉西扯。
|
26
dongguangming 2021-02-05 19:54:08 +08:00 via Android
其实程序代码一写就错了,只是百分之 99.99 是在正常情况下运行的,故而不会明显出错,真的出现了极端,只能怪运气不好
|
27
OHyn 2021-02-05 22:53:56 +08:00
能否严谨不仅仅是码农的事,码农-管理层-资方,这 3 层是相互作用的。
想输出严谨的代码,3 层中至少两层要有这个意愿。 |
28
xcstream 2021-02-05 23:35:32 +08:00
挺好 但是会有 做题家
|
29
leven87 2021-02-06 06:10:10 +08:00
最重要的要三观相同,喜欢拉工时的就别招准点下班的,喜欢跪舔风格的就别招直来直去的人,喜欢来了就能干活的就别招要时间学习的。
双方都多一点真诚,少一点套路,世界多美好! |
30
deyu 2021-02-07 17:23:20 +08:00
我觉得还是最基本的问题 : 供大于求
|
31
woyaojizhu8 2021-02-07 19:16:11 +08:00
@czfy #2 >恐怕在金融“大数据风控”这个行业将近消失的时候已经有答案
风控不是越来越严格了吗? |
32
czfy 2021-02-07 19:18:08 +08:00
@woyaojizhu8 我指的是之前一票通过爬虫之类的方式提供金融风控解决方案的公司被警察查封这件事
|
33
cominghome 2021-02-08 08:41:13 +08:00
我的理解:
供大于求是确实存在的,但是没有楼上说得那么绝对。虽然程序员总是自嘲为新时代的农民工,大部分人入职后也确实是整天 CRUD 应付需求(拧螺丝)。但是,你如果没有高并发大数据场景下的编程经验和思路,万一哪天用上了咋搞?等你成长?还是开了重新招?更别说代码质量问题了,就算是 CRUD,造过火箭的人,应该也会做得更好。 |