职业与工作方法catonmat.net
编程竞赛强不等于工作表现好【视频】
Good at programming competitions does not equal good on the job [video]
2015 — 2017,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
这是 Peter Norvig 的一段视频讨论:Google 内部研究发现,编程竞赛成绩在通过招聘门槛之后与工作表现甚至呈负相关。原因是竞赛选手习惯快速冲刺出答案,而工程工作更需要深思熟虑、把事情做对。
为什么经久不衰:它挑战了“竞赛高手=好工程师”的流行迷思,提醒我们选拔指标在门槛之上可能失效甚至反转,对招聘和技术人才自我定位至今仍有启发。
HN 评论精选
用“选拔优势与后续表现负相关”的统计规律解释这一现象
这其实很典型:当某项特质成为进入某个选拔池的优势时,它往往与入选者之后的表现负相关。最明显的例子是《异类》里的冰球生日效应——生日偏早的球员更容易通过各级选拔进入 NHL,但那些克服了生日劣势才被选中的球员,职业生涯反而更成功。有研究显示下半年出生、较晚被选中的球员达到 400 场出场或 200 分等里程碑的概率约是早出生者的两倍。
pitt1980查看英文原文
I'm not able to watch the video at my current computer but its actually really typical that when something becomes an advantage for being selected to a certain pool the success of the those in the pool after the selection will negatively correlate with that thing --------- the really obvious example of this is the hockey birthday thing from Malcolm Gladwell's Outliers people with the earlier birthdays were more likely to make it past each selection stage in becoming an NHL player but those with the later birthdays who were able to be selected in spite of their later birthdays, were typically more successful after the selection --------- The authors contend that the strategy might actually work against a team's success because they found that players born later in the year and drafted later actually had more productive hockey careers. Deaner said the study showed that men drafted in the second half of the year were about twice as likely to have successful careers in the NHL ??? reaching benchmarks like 400 games played or 200 points scored ??? than those born earlier in the year. "If the team wasn't making this mistake, they probably would have been more successful," he said. "The guys born in the first part of the year are much more likely to be busts." https://www.nhl.com/news/study-suggests-nhl-has-bias-in-favour-of-players-born-earlier-in-the-year/c-657724
竞赛能力在大公司未必有用,但稀缺的算法硬功夫仍有价值
我也是前 ICPC 世界决赛选手,我相信这在大公司成立:1) 顶尖竞赛选手往往极不擅长社交,难以团队协作;2) 绝大多数工程工作算法上很简单,他们没机会发挥。但在自营交易公司他们很受欢迎,因为工作多为小团队或独立完成。不过如果我是招聘者,仍会招一些顶尖竞赛选手——难的算法虽然罕见,却可能决定产品成败。而且竞赛学到的知识非常宝贵,我希望和同事讨论二分图匹配、最小割时不收获一脸茫然。
fatjokes查看英文原文
I'm also a former ICPC world finalist and I'm willing to believe this is the case in a BigCo because: 1) Top ICPC competitors tend to be extremely socially awkward, and may not work well in groups. 2) Vast majority of engineering work is very algorithmically simple, thus these folks don't get a chance to "shine". However, I've noticed that they are popular in prop trading firms, where work tends to be in very small teams or individual. I don't know how their performance correlates to fund performance. If I were hiring, I'd still prefer to hire at least some top ICPC performers. The hard algorithms are rare---but can make or break your product. I also think the knowledge learned from programming contests is invaluable. I'd like to be able to discuss bipartite matching or min-cut with my colleagues without eliciting a blank look.
好程序员是相对于具体工作而言的,语境决定一切
就像没有“好 CEO”,只有“在特定时间适合特定公司的好 CEO”一样,也没有抽象的“好程序员”,只有“在特定时间适合特定工作的好程序员”。语境很重要:你不会用 AK-47 打蚊子,但这不说明 AK-47 是坏武器。更准确的说法是:擅长编程竞赛不等于擅长任何编程工作。
rkunnamp查看英文原文
Just like 'There is no such person as Good CEO', but only 'A Good CEO for a particular company, at a particular point of time', there is no such a person as 'Good Programmer', there is only 'A Good Programmer for a particular job, at a particular point of time'. Context matters a lot. One does not use an AK-47 to kill a mosquito. It is terrible for that job. But that does not make AK-47 a terrible weapon. Good at programming competitions does not equal good at any programming job, is a more appropriate sentence.
引用 Norvig 原话:过了招聘线后,竞赛冠军的冲刺习惯反而不如沉稳反思
总体上它仍是正面预测指标,只是超过某个程度后变成负面指标,就像 GPA 4.0 可能不如 3.9。看视频才能抓住真正的要点,Norvig 说:Google 录用的每个人都很好,如果只能从街上随便挑人,我每次都选竞赛冠军;但既然都过了招聘线,大家水平差不多,而习惯赢竞赛的人习惯飞速做完就转向下一件事,工作中稍微慢一点、多反思、确保做对的人反而表现更好。—— Peter Norvig
oskarth查看英文原文
It's still a positive predictor in general. It just means that, beyond a certain point, it's a negative predictor. Just like a GPA of 3.5+ is probably positively correlated with getting tenure, but maybe getting 4.0 is worse than getting 3.9. Watch the actual video to get the real take away: I think what it meant was that, everybody who gets hired at Google is pretty good. If I just had to pick someone off the street, I really want that contest winner, I got to take him every time. Or her. But if it's somebody who passed the hiring bar, then they are all pretty much at the same level. And maybe the ones used to winning the contest, they are really used to going really, really fast and cranking the answer out and moving on to the next thing. And you perform better on the job if you are a little more reflective. And go slowly and make sure you get things right. -- Peter Norvig.
软件开发是马拉松而非短跑,竞赛式冲刺心态有害
我认为软件开发更像马拉松而不是短跑。短跑中让你获胜的特质——起步快、急于求成——在马拉松里恰恰是负面的。以我的经验,大规模软件开发需要大量耐心、规划和持久的耐力。
PythonicAlpha查看英文原文
I think, software development is most often more like a marathon run and less like a sprint run. For a marathon run exactly this behavior is negative, that makes you win a sprint run. When you start fast and are eager to have fast successes, you are likely to loose the marathon. In my experience, software development (in larger scale) needs a lot patience, planning and great staying power.
历次讨论
同类还值得读
用十年时间自学编程(1998)
Teach Yourself Programming in Ten Years (1998)
Peter Norvig 1998 年的经典文章,回应“21天/24小时学会编程”一类速成书,主张真正精通编程需要约十年持续、有意识的练习。
职业与工作方法上首页 11 次 · 2007–2025norvig.com编辑精选如何成为一名程序员:简短、全面而个人的总结
How to be a Programmer: A Short, Comprehensive, and Personal Summary
一篇广为流传的程序员成长指南,作者以个人经验系统总结了成为优秀程序员所需的各项技能——从调试、测试、沟通到团队协作与身心健康。
职业与工作方法上首页 6 次 · 2008–2015samizdat.mines.edu编辑精选不要自称程序员
Don't Call Yourself a Programmer
经典职业建议文章劝软件工程师不要把自己局限在“程序员”这个标签上,而要从公司业务角度说明自己创造的价值;文中讨论了成本中心与利润中心、头衔、求职与职业选择,也顺带批评了学术界的价…
职业与工作方法上首页 5 次 · 2011–2021kalzumeus.com编辑精选创作者的日程与经理的日程
Maker's Schedule, Manager's Schedule (2009)
Paul Graham 在这篇文章里把时间表分成两类:管理者的日程以小时为单位,会议可以填满一天;创作者(程序员、写作者等)的日程则以半天为单位,需要长时间不被打断的连续块。
职业与工作方法上首页 5 次 · 2009–2021paulgraham.com编辑精选为什么程序员的薪酬不与生产力成正比
Why programmers are not paid in proportion to their productivity
讨论为什么程序员的薪酬往往不随其生产力成比例增长:生产力难以客观量化,薪酬更多受组织预算、岗位定价和个人议价能力影响。
职业与工作方法上首页 5 次 · 2009–2022johndcook.com