职业与工作方法aphyr.com编辑精选
类型化的技术面试
Typing the technical interview
2017 — 2022,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
这是一篇幽默的虚构技术面试故事,作者用 Haskell 极端的类型级编程技巧(比如手工定义自然数、用类型系统解决 N-Queens 问题)来调侃面试,并夹杂洛夫克拉夫特式与北欧神话的戏谑。
为什么经久不衰:它把硬核函数式编程与荒诞幽默结合,既让内行会心一笑,又展示了类型系统惊人的表达力,因此多年后仍被反复分享。
HN 评论精选
引用文中经典对话,展现用数学方式写代码的幽默。
“你……在手工定义自然数?为什么?” “Haskell 是给数学家用的,”你解释道。“我们总是定义自己的术语。” 这真是太美了。
strictnein查看英文原文
“You’re… defining the natural numbers by hand? Why?” “Haskell is for mathematicians,” you explain. “We always define our terms.” That's just beautiful
推荐一篇相关论文,展示类型系统可编码计算的深层联系。
太棒了。我直到最后才意识到发生了什么。如果你喜欢这个,你可能也会喜欢关于 λ 演算类型推断复杂度的证明结构:他们从简单类型构造任意布尔电路,并通过类型检查来求值电路。
munin查看英文原文
This is awesome. I didn't even really see what was happening until it was too late. If you enjoyed that you might enjoy the structure of the proof of the complexity of type inference for \-calculus: http://www.cs.brandeis.edu/~mairson/Papers/jfp02.pdf . They construct arbitrary boolean circuits from simple types and evaluate the circuits through type checking.
指出这是系列文章的一部分,并给出前两篇链接。
前两篇也很棒:https://aphyr.com/posts/340-reversing-the-technical-interview 和 https://aphyr.com/posts/341-hexing-the-technical-interview
strictnein查看英文原文
The previous two of these were also great: https://aphyr.com/posts/340-reversing-the-technical-interview https://aphyr.com/posts/341-hexing-the-technical-interview
总体评价:幽默且烧脑,但仍可跟上。
这是我最喜欢的博客文章之一,可能是有史以来。有趣、烧脑,但又不是完全无法理解。
lopatin查看英文原文
One of my favorite blog posts, probably ever. Funny, mind bending, but not completely impossible to follow.
历次讨论
同类还值得读
用十年时间自学编程(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