HackerURLs

一次又一次被重新发现的经典。

同一个链接,相隔一年以上,一次又一次被人重新发现、再次冲上 Hacker News 首页。能经受住这种时间检验的,大多是值得一读再读的文章。每篇附中文标题,讨论最热的那些再加上中文导读和高赞评论翻译。

从名人堂开始
  • 4,700+篇经过时间检验的经典

Hall of fame

名人堂

在经典库里看全部精选

上首页次数最多、而且有中文导读的 30 篇。时间轴上每个黑点是一次上首页,空心点是一次没冲上去的投稿。

  1. 正在载入经典…

Archive

经典库

按第一次上首页的年份分布,点柱子筛选。

排序

    About

    这些经典是怎么挑出来的

    1. 01

      合并同一个链接

      读取 Hacker News 自 2006 年以来的全部链接投稿,把 http/https、www、跟踪参数等写法不同的同一篇文章合并成一条。

    2. 02

      只留经得起时间的

      同一链接至少两次拿到 50 分以上(约等于上首页),而且两次相隔一年以上;再由 AI 剔除状态页、产品首页和新闻事件。

    3. 03

      写导读、译评论

      上首页次数最多的 2,000 篇配上中文导读、"为什么经久不衰",并精选翻译 HN 高赞评论。导读由 AI 生成,可能有误。

    职业与工作方法localghost.dev

    作为一名专业软件工程师,我一周内谷歌了什么

    Everything I googled in a week as a professional software engineer

    2次上首页
    2年跨度
    1,004累计得分
    475条评论

    2019 — 2021,它一次次回到首页

    黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。

    导读

    作者记录了自己作为职业软件工程师一周内用 Google 搜索的所有问题,展示日常开发中大量基础操作和语法细节仍需现查。文章的重点不是教程,而是用这份清单说明:有经验并不等于什么都记得,查资料是正常工作流的一部分。

    为什么经久不衰:它戳破了“资深工程师应该什么都记得”的迷思,让查资料这件日常小事成为对工程能力、记忆与效率的坦率讨论,所以多年后仍能引起共鸣。

    关键词 软件工程搜索工作流职业成长

    HN 评论精选

    连常用命令也要查,因为参数顺序和术语反直觉;他靠类比 cp/mv 来记。

    我经常 Google 的事情之一,就是如何在 Linux 下创建符号链接。我就是记不住哪个参数在前:源还是目标。man 手册还把“源”叫作 target,更让人混乱。所以我现在遵循的经验法则是按 cp 或 mv 的语义来记。

    aloknnikhil查看英文原文

    On the list of things I always Google, is how to create a symbolic link under Linux. I just can't figure out a way to remember what comes first; the source or the destination. The man pages add to the confusion by calling the "source" the target. So, the rule of thumb I now follow is cp or mv semantics.

    反对把“资深”等同于无需了解就能当场采用新工具,强调先读文档、评估集成并记录。

    困扰我的不是“有经验的工程师也需要查资料”这个观念,而是一个相关的观念:作为有经验的工程师,我应该能在结对编程时当场立刻上手一个我毫无经验的新东西。表现就是有人说“你把这个装上,把这个配置值塞进去,它应该就能跑”。而我的反应是:“我想先读读它的资料。我想知道它会往我电脑里写什么、写到哪里、用什么范式。我想思考它怎样最好地融入我们现有的工具和工作流。做完这些,我大概就能顺利推进。然后我还想把它记录下来,让它成为别人加入项目时的常规配置步骤。”就在上周,我表达这个意思时,得到的反应好像是我有什么问题。

    grappler查看英文原文

    What has plagued me is not a notion that an experienced engineer needs to look stuff up, but a similar one that feels related: that as an experienced engineer I should be able to immediately incorporate a new thing I have no experience with, right then and there in a pairing session. It comes in the form of "go ahead and install this thing, and throw this config value into it, and it should just work". And my reaction is "I want to read up on that thing first. I want to know what stuff it writes to my computer and where and what paradigms it uses. I want to think about how it will best integrate with the tools and workflows we have already. And then once I've done that, I'll probably be able to move forward with it comfortably. Then I'll want to document it so it becomes part of the regular setup others do when they onboard onto the project." Just this past week when I said a version of this, I got a reaction like there is something wrong with me.

    实际搜索量可能远大于原文,且真实搜索往往是一串逐步细化的查询,而非一次命中。

    这大概是我一周搜索量的十分之一到五十分之一。我猜原文漏掉了很多搜索。我很好奇作者在结果不完全符合预期时如何调整搜索词。下面是我一次真实的搜索演进(因为复制粘贴,顺序是反的):react context optimize rerender “props.children” / react context optimize rerender / react usereducer dispatch async / react usereducer dispatch api / usecontext usememo / optimize usecontext react / usereducer rerender usecontext / usereducer rerender / when to use usereducer / react hooks usecontext and usereducer。这还是一次相当简单的搜索,没有用排除词,也很少用短语匹配。我在原文里没看到这些技巧,感觉有点奇怪。

    harrisonjackson查看英文原文

    This is probably a 10-50x fewer searches than I do in a week. I am assuming there are many searches left out. I'd be interested in seeing how the OP tweaks their searches as the results don't return exactly what they want. Here is an actual single search progression for me (In reverse order because copy/pasta :shrug: react context optimize rerender "props.children" react context optimize rerender react usereducer dispatch async react usereducer dispatch api usecontext usememo optimize usecontext react usereducer rerender usecontext usereducer rerender when to use usereducer react hooks usecontext and usereducer This is a fairly simple search, too - no use of negative search terms and minimal use of phrase matching. I didn't see any of those enhancements used in the OP which seems odd. edit - formatting

    查资料可以,但要考虑断网效率和对心流的影响,并把查到的答案记到个人笔记里。

    这是个有趣的练习,但接着要问第二个问题:“如果断网,我的工作还能有多高效?”作者说他想展示的是:一件事做 100 次,你仍可能记不住怎么做。我的经验不同;如果让我改写,我会说:“一件事做 100 次,只要你能在某个地方查到,不背下来也没关系。”你必须评估停下来查资料对心流的影响,也要评估你心目中的“基础技能”是什么,来判断某个东西是否该背。Google 之前,算术是典型例子:手边有计算器时,谁还需要背乘法表?但基本上,如果你不能心算基础算术,你相对于能心算的人永远处于劣势。我找到的折中办法是:当我 Google 这类问题时,把解决方案写进一个 Evernote 笔记本里。这样同样的问题再出现,我总能找到答案,而不必依赖网页或 Google。

    ChuckMcM查看英文原文

    This is a fun exercise, then ask the second question "How productive can I be in my job when the network is unavailable?" The author states : What I’m trying to show with all this is that you can do something 100 times but still not remember how to do it off the top of your head. My experience differs from this, if I were to rewrite it I would say something like: "You can do something 100 times, and as long as you can look it up somewhere, it is okay to not memorize how to do it." You have to evaluate the impact on your flow of stopping to look something up, you have to evaluate what you consider your 'base' skill set is to evaluate if you should memorize something. Before Google, the canonical case here was arithmetic. Who needs to memorize multiplication tables if you have a calculator handy to do simple arithmetic. Basically if you cannot do basic arithmetic in your head, you are always going to be at a disadvantage with respect to someone who can.[1] I have found a reasonable compromise, when I Google something like this, I write down the solution in an Evernote notebook that I keep for such things. So if the same question comes up I can always find the answer and don't have to have either the web page or Google around to get to the answer. [1] And as a "magic trick" you can hand a cashier what appears to them to be an odd amount of money, only to have them discover when they enter it into their register the change is a minimal number of coins/bills.

    历次讨论

    同类还值得读

    1. 用十年时间自学编程(1998)

      Teach Yourself Programming in Ten Years (1998)

      Peter Norvig 1998 年的经典文章,回应“21天/24小时学会编程”一类速成书,主张真正精通编程需要约十年持续、有意识的练习。

      职业与工作方法上首页 11 次 · 2007–2025norvig.com编辑精选
    2. 如何成为一名程序员:简短、全面而个人的总结

      How to be a Programmer: A Short, Comprehensive, and Personal Summary

      一篇广为流传的程序员成长指南,作者以个人经验系统总结了成为优秀程序员所需的各项技能——从调试、测试、沟通到团队协作与身心健康。

      职业与工作方法上首页 6 次 · 2008–2015samizdat.mines.edu编辑精选
    3. 不要自称程序员

      Don't Call Yourself a Programmer

      经典职业建议文章劝软件工程师不要把自己局限在“程序员”这个标签上,而要从公司业务角度说明自己创造的价值;文中讨论了成本中心与利润中心、头衔、求职与职业选择,也顺带批评了学术界的价…

      职业与工作方法上首页 5 次 · 2011–2021kalzumeus.com编辑精选
    4. 创作者的日程与经理的日程

      Maker's Schedule, Manager's Schedule (2009)

      Paul Graham 在这篇文章里把时间表分成两类:管理者的日程以小时为单位,会议可以填满一天;创作者(程序员、写作者等)的日程则以半天为单位,需要长时间不被打断的连续块。

      职业与工作方法上首页 5 次 · 2009–2021paulgraham.com编辑精选
    5. 为什么程序员的薪酬不与生产力成正比

      Why programmers are not paid in proportion to their productivity

      讨论为什么程序员的薪酬往往不随其生产力成比例增长:生产力难以客观量化,薪酬更多受组织预算、岗位定价和个人议价能力影响。

      职业与工作方法上首页 5 次 · 2009–2022johndcook.com

    打赏支持

    打赏二维码

    觉得有用,请作者喝杯咖啡。

    WeChat

    关注向阳乔木

    微信公众号「向阳乔木推荐看」

    微信公众号「向阳乔木推荐看」二维码

    微信扫一扫;在微信里打开本页时,长按二维码识别。