职业与工作方法localghost.dev
作为一名专业软件工程师,我一周内谷歌了什么
Everything I googled in a week as a professional software engineer
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.
历次讨论
同类还值得读
用十年时间自学编程(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