大数跨境

我是一名高级开发人员,我仍然会用 Google 搜索一切(这很正常)

我是一名高级开发人员,我仍然会用 Google 搜索一切(这很正常) 索引目录
2025-10-23
2
导读:昨天,在一次团队站立会议上,一位初级开发人员问我:“你怎么记得住这些东西?”我笑了。“我记不住。我每天都会用谷歌搜索。
昨天,在一次团队站立会议上,一位初级开发人员问我:“你怎么记得住这些东西?”我笑了。“我记不住。我每天都会用谷歌搜索。”

关注「索引目录」公众号,获取更多干货。

引言:忏悔

让我告诉你一个在技术面试或 LinkedIn 帖子中没人谈论的秘密:

我是一名拥有 8 年经验的高级软件开发人员,我会每天、甚至每小时都会在 Google 上搜索一些基础内容。

上周二,我花了 20 分钟在 Google 上搜索“如何在 JavaScript 中反转数组” ,因为我记不清它是.reverse()还是。.reversed().reverseArray()

它是.reverse()

我已经使用过它一千次了。

我还是忘了。

你知道吗?谷歌、亚马逊和微软等公司 58% 的科技工作者都觉得自己像个骗子。你旁边那个似乎无所不知的高级开发人员?他们甚至会用谷歌搜索基本的语法错误。

这篇文章是我的忏悔。或许也是你的忏悔。我们是时候停止伪装了。


第一部分:本周我在 Google 上搜索的内容(我没开玩笑)

让我打开我的浏览器历史记录,把自己暴露出来。以下是我过去5天的真实搜索记录:

周一

  • “css flex 对齐项目中心不起作用”(我忘记设置了display: flex with a height of 100dvh
  • “TypeScript 接口 vs 类型”(第 100 次)
  • “如何退出 vim”(我是一名高级开发人员,但我仍然被困在 vim 中)

周二

  • “react useEffect 清理功能”(我知道这个。我只是……需要检查一下)
  • “git revert vs reset vs restore”(哪一个再次删除提交?)
  • “javascript 按日期对对象数组进行排序”(默认是升序还是降序?)

周三

  • “如何将 div 居中”(经典)
  • “nodejs 读取文件”(是fs.readFilefs.readFileSync?我总是忘记)

周四

  • “docker compose up vs docker-compose up”(有破折号还是无破折号?)
  • “SQL 连接类型可视化”(我每次都需要那个维恩图)
  • “正则表达式电子邮件验证”(永远都不要记住这个)

星期五

  • “如何撤消尚未推送的 git commit”(这实际上是我搜索次数最多的查询)
  • “javascript 数组方法备忘单”(map、filter、reduce... 各自起什么作用?)
  • “css 网格模板列”(重复(自动调整、最小最大……某某某)

每。周。

我应该成为我们团队的“专家”。


第二部分:我们在求职面试中说的谎言

以下是我在上次面试中所说的话:

面试官: “你对 React 的熟练程度如何?”

我: “非常熟练。我已经使用 React 5 年了。”

以下是我没有说的话:

我(内心独白): “我每天都用 React,但每次需要用到它的时候,我还是会去 Google 一下‘useContext 是怎么工作的’,因为我从来不用 Context。我把之前的项目中用到的 useEffect 模式都复制粘贴过来了。更别提 useReducer 了。”

面试官: “你使用 TypeScript 的经验如何?”

我: “非常广泛。我已经将几个项目迁移到 TypeScript 了。”

翻译: “我知道如何为函数参数添加类型。对于任何复杂的东西,我会谷歌一下或者打字any,然后继续。TypeScript 的错误信息可能就像古希腊语一样。”

面试官: “你对算法的掌握程度如何?”

我: “没问题。我理解时间复杂度,可以实现常见的算法。”

翻译: “我上周在谷歌上搜索了‘二叉搜索树实现’,然后复制粘贴了它。我实在没法从头开始写。大 O 符号?我依稀记得 CS50 里有。”

我们都在玩同一个游戏,假装我们知道的比我们实际知道的更多。


第三部分:“高级开发人员”的真正含义

以下是人们对“高级开发人员”的理解:

❌ 记住每一种编程语言

❌ 从不犯错

❌ 第一次尝试就能写出完美的代码

❌ 永远不需要 Stack Overflow

❌ 知道所有答案

“高级开发人员”的实际含义如下:

✅ 知道用 Google 搜索什么

✅ 能够阅读文档(即使文档很糟糕)

✅ 已经犯过所有错误(所以知道什么不该做)

✅ 能够有效地进行调试

✅ 知道何时寻求帮助

初级和高级之间的区别不在于知识,而在于模式识别和解决问题的速度

真实场景:初级开发人员 vs 高级开发人员

问题: “按钮未提交表单。”

初级开发人员:

  1. 恐慌
  2. 谷歌搜索“按钮不起作用”
  3. 阅读 10 篇不相关的 Stack Overflow 帖子
  4. 尝试随机解决方案
  5. 破坏其他东西
  6. 3小时后:仍然损坏

高级开发人员:

  1. 打开开发控制台(第一直觉)
  2. 看到错误:“form.submit 不是一个函数”
  3. 谷歌确切的错误信息
  4. 立即找到 Stack Overflow 答案
  5. 意识到有一个名为的变量submit与本机方法冲突
  6. 5分钟内修复

高级开发人员知道答案吗?不知道。

他们知道怎么找到它吗?是的。

这就是区别。


第四部分:我反复用谷歌搜索但永远记不住的东西

即使是经验丰富的开发人员也记不住很多东西,因为你不会每天都用到所有东西。以下是我在 Google 上搜索过 50 多次的东西:

1. Git 命令

# Things I Google constantly:
git revert
git reset
git cherry-pick
git rebase
git stash pop vs git stash apply

我使用 Git 已经 9 年了。我仍然记不住reset --softreset --mixed和之间的区别reset --hard

每次我需要撤消某些操作时,我都会回到 Google:“git undo last commit but keep changes”

2. CSS Flexbox 与 Grid

/* I have this Googled monthly: */
.container {
  display: flex;
  justify-content: ??? /* center? space-between? I forget */
  align-items: ??? /* center? stretch? help */
}

我已经创建了 100 多个响应式布局。但每次我都需要那个可视化的指南。

3. 数组方法

// Which one flattens arrays?
.flat()
.flatMap()
.flatten() // this doesn't exist but I Google it anyway

// Which one adds items?
.push() // mutates
.concat() // doesn't mutate
// I mix these up constantly

4. Async/Await 与 Promises

// Every few months I forget:
async function getData() {
  const response = await fetch(url)
  const data = await response.json()
  return data
}

// vs

function getData() {
  return fetch(url)
    .then(response => response.json())
    .then(data => data)
}

我知道两种方法都有效。我忘了哪个更适合什么用途了。不过谷歌知道。

5.正则表达式

// I will NEVER memorize regex
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/ // Googled this 10000 times

// Also this:
const phoneRegex = ??? // No idea, straight to Google

任何说他们不使用 Google 正则表达式的人都是在撒谎。


第五部分:谷歌耻辱堂

让我分享一下作为一名“高级”开发人员,我在 Google 上搜索过的最尴尬的事情:

我应该知道的基础知识

  1. “如何在 JavaScript 中声明变量”

    (我慌了。是varlet还是const?2025 年了,我仍然怀疑自己)
  2. “undefined 和 null 之间有什么区别?”

    (我知道这个。我也教这个。我仍然会用 Google 来确认)
  3. “如何编写 for 循环”

    (经典语法forEach???map我在编码面试时一片空白)

“我应该被解雇”的搜索

  1. “如何在 Mac 上打开终端”

    (我在会议上展示我的屏幕。我愣住了。记不起快捷方式了)
  2. “JavaScript 如何实现两个数字相加”

    (我得承认,我已经筋疲力尽了。另外,我忘了它是否+也适用于字符串)
  3. “什么是 html”

    (我正在写文档,对它的定义犹豫不决。冒名顶替综合症严重影响了我的工作)

诚实的人

  1. “高级开发人员冒名顶替综合症”

    (这让我陷入了“我是否有资格胜任我的工作?”的困境)
  2. “作为一名程序员,用谷歌搜索所有东西是正常的吗?”

    (剧透:是的。谷歌搜索是一项技能,擅长谷歌搜索可以让你成为一名优秀的程序员)
  3. “如何退出 vim”

    :q!或者:wq?或者是:exit?帮助。)

第六部分:为什么小辈们认为我们是巫师

初级开发人员看着我的工作并认为我是某种编码向导。

他们看到的是:

  • 我打字很快
  • 我快速修复错误
  • 我自信地编写代码
  • 我很少陷入困境

实际发生的情况:

  • 我打字很快,因为我已经复制粘贴了这个模式 1000 次
  • 我修复错误很快,因为我之前也犯过同样的错误
  • 我能自信地编写代码,因为我 5 分钟前就在 Google 上搜索过解决方案
  • 我很少遇到困难,因为我知道如何有效地使用谷歌

速度的幻觉

在脚本式教程视频中,开发人员工作速度非常快,因为他们已经构建了应用程序,并且知道如何解决问题。但实际上,这需要更长的时间。

初级人员在教程中看到的内容:
“我将在 10 分钟内构建这个身份验证系统!”

现实:

  • 2 小时谷歌搜索 JWT 实现
  • 1 小时调试为什么令牌没有被发送
  • 30 分钟搞清楚 CORS
  • 1 小时后才意识到自己忘记了哈希密码
  • 总共4小时

第七部分:“知道”与“发现”的真相

观察经验丰富的开发人员犯的错误、走错的方向或在谷歌上搜索,对于初级开发人员来说非常有帮助。

这是软件开发的肮脏秘密:

你不需要知道一切,你需要知道如何找到一切。

我实际记住的内容(简短列表)

  • 基本语法(变量、函数、循环)
  • 核心概念(范围、提升、闭包)
  • 如何使用调试器
  • 如何阅读错误消息
  • 如何有效地使用谷歌

我每次都会用 Google 查找的内容(长列表)

  • 其他一切

任何开发人员都不可能了解所有事情。技术栈太庞大了。框架更新太快了。语言不断添加新功能。

如果您记住了 API,那么您就做错了。


第 8 部分:谷歌搜索的艺术(高级技能)

让我教你真正的高级技能:如何像专业人士一样使用 Google

第一级:初级谷歌搜索

搜索: “按钮不起作用”

结果: 1000 万个不相关的结果

浪费时间: 2小时

第 2 级:中级谷歌搜索

搜索: “react 按钮 onclick 不起作用”

结果:更好,但仍然通用

浪费时间: 30分钟

第 3 级:高级谷歌搜索

搜索: “react button onclick event.target undefined typescript”

结果:确切的 Stack Overflow 答案

节省时间: 2分钟

高级开发人员 Google 公式

  1. 包含的技术:
     “React”而不仅仅是“JavaScript”
  2. 包含错误消息:
    来自控制台的精确文本
  3. 如果相关,请包含上下文: “typescript”
  4. 添加年份:
     “2025”以过滤旧答案

例子:

❌ "how to fetch data"
✅ "react 19 fetch data async await typescript 2025"

高级技术

使用站点操作符:

site:stackoverflow.com react hooks
site:github.com typescript error

使用引号进行精确匹配:

"TypeError: Cannot read property 'map' of undefined"

排除结果:

react hooks -class components

擅长谷歌搜索可以节省大量的开发时间。


第九部分:冒名顶替综合症谈话

让我们来讨论一下这个显而易见的问题:冒名顶替综合症

如果您曾经觉得自己像个骗子,并且疑惑“我真的是一名开发人员吗,我知道什么,我只知道 StackOverflow、YouTube 和谷歌搜索”,那么您并不孤单。

我的冒名顶替综合症时刻

周一早上站立会议:

经理: “Elvis,API 集成做得太棒了!”

我(表面上): “谢谢,很简单。”

我(内心): “我从 Stack Overflow 复制粘贴了 80% 的内容,虽然不完全理解 JWT 的工作原理,但它通过了测试,所以……🤷‍♂️”

代码审查:

初级开发人员: “哇,你怎么知道在这里使用 WeakMap?”

我(对外): “性能优化。”

我(内心): “我在 Google 上搜索‘javascript 内存泄漏修复’,然后点击了第一个链接。”

技术面试(作为面试官):

候选人: “我不记得 reduce 的具体语法...”

我(对外): “没关系,理解这个概念很重要。”

我(内心): “兄弟,我每次都用 Google 搜索 reduce。你真棒。”

现实检验

谷歌、微软、亚马逊、Facebook 和苹果公司 58% 的技术员工面临冒名顶替综合症。

那个说话自信满满的 CTO?他们醒来后浑身冷汗,怀疑自己是不是犯了一个可怕的错误。

那个人人都敬佩的建筑师?他们正在谷歌搜索基本的语法错误。

你并不孤单,你很正常。


第 10 部分:作为一名初级开发人员,我希望了解的事情

如果我能回到过去,和年轻时的自己谈谈,我会这样说:

1. 谷歌搜索是一个功能,而不是一个 Bug

初级的我: “我不需要谷歌这个。真正的开发人员知道这些东西。”

资深的我: “真正的开发人员知道如何使用 Google。那些假装不知道的人是在撒谎。”

2. 你会忘记语法——这没关系

即使是经验丰富的开发人员也无法记住很多东西,因为你不会每天都使用所有东西,所以你会忘记一些事情。

我至少忘记了 50 次 React Context 语法。每次我都得自己查找或者从项目中的其他文件复制粘贴。

3. 复制粘贴不算作弊

初级的我: “我应该从头开始写所有内容才能真正学到东西。”

资深的我: “我已经把整个身份验证系统复制粘贴过来了。你只要明白你粘贴的是什么就行了。”

4. 没有人无所不知

在科技领域,不可能事事精通。科技发展如此之快,没有人能够真正掌握所有的技术和概念。

你的工作不是了解一切。你的工作是解决问题

5. 犯错是工作的一部分

即使是经验丰富的开发人员也会花费数小时来解决简单的错误、走错方向并犯错误。

上周我花了 3 个小时调试代码才意识到变量名有拼写错误。

userId对比usreId

三个小时。

我是一名高级开发人员。


第 11 部分:真正让你变老的事情

既然我们已经确定“无所不知”并不是资历的标志,那么什么才是呢?

当你满足以下条件时,你就是高级开发人员:

  1. 你知道你不知道什么,

    年轻人假装自信。老年人承认无知,然后去谷歌搜索。
  2. 你可以阅读错误消息,

    初级用户会感到恐慌。高级用户则会阅读堆栈跟踪,然后在 Google 上找到确切的错误信息。
  3. 你在

    模式识别之前调试过同样的错误。你看过这部电影。
  4. 你知道什么时候该寻求帮助

    。年轻人独自奋斗了好几天。老年人在谷歌搜索了 30 分钟后就会寻求帮助。
  5. 你可以简单地解释复杂的事情,

    因为你已经在 Google 上搜索过很多次了,所以你现在实际上已经理解了。
  6. 您编写的代码其他人可以维护

    ,因为您必须维护糟糕的代码(您两年前编写的代码)。
  7. 你接受不知道

    “我不知道,让我谷歌一下”并不可耻——这是诚实的。

第 12 部分:生活中的一天(真实对话)

让我带你回顾一下昨天。典型的“高级开发人员”的一天:

上午 9:00 - 晨间站立会议

我说: “我今天将完成支付集成。”

我的意思是: “我将第五次在 Google 上搜索如何集成 Stripe,因为我每次都会忘记。”

上午 10:00 - 开始编码

谷歌搜索 #1 “条纹支付意图反应”

谷歌搜索 #2 “条纹 webhook 签名验证”

谷歌搜索 #3 “条纹测试卡号”

(我用谷歌搜索了每一个项目)

上午 11:30 - 漏洞出现

错误: Cannot read property 'amount' of undefined

我的过程:

  1. 盯着代码(2分钟)
  2. 添加console.log所有位置(5 分钟)
  3. 谷歌错误(30秒)
  4. 查找 Stack Overflow 答案
  5. 意识到我忘记在访问对象之前检查它是否存在
  6. 捂脸
  7. 添加if (payment?.amount)检查
  8. 固定的

总时长: 8分钟

初级开发人员时间:本来是 2 小时

为什么?不是因为我更聪明。因为我已经犯过100次这样的错误了。

下午 2:00 - 代码审查

青少年代码:

const data = response.data.users.map(user => user.name)

我的评论: “如果response.data.users未定义怎么办?”

小辈: “哦!我没想到这一点。”

我没有说的是: “我上周忘了检查这个,导致生产崩溃。我吃过不少苦头。现在你不用再吃了。”

下午 4:00 - 架构会议

经理: “我们应该如何构建微服务?”

我说的是: “我们应该使用带有消息队列的事件驱动架构。”

5 分钟前发生的事情:我在 Google 上搜索了“微服务通信模式”并阅读了第一篇文章。

下午 5:00 - 帮助一名青少年

小辈: “你是怎么记住这些命令的?”

我: “我不知道。我有小抄。”

我(显示书签文件夹):

  • Git 命令速查表
  • CSS Flexbox 指南
  • JavaScript 数组方法
  • React Hooks 模式
  • 常见的正则表达式模式

小辈: “等等,你用小抄吗?”

我: “每一天。”


第 13 部分:我实际使用的资源

让我分享我的秘密武器(也就是我每天访问的书签):

我最常访问的 10 个网站

  1. Stack Overflow
     - 显然
  2. MDN Web 文档
    - JavaScript/CSS 参考
  3. React 文档
    - 当 Stack Overflow 不够用时
  4. CSS-Tricks
     - 解决所有 CSS 问题
  5. http://regex101.com
     - 因为正则表达式是不可能的
  6. http://caniuse.com
     - “我可以使用这个 CSS 属性吗?”
  7. npm 趋势
    - 比较软件包流行度
  8. GitHub
     - 阅读其他人的代码
  9. http://DevDocs.io
     - 所有文档都集中在一个地方
  10. ChatGPT/Claude
     - 新的谷歌(别评判我)

我的 Chrome 书签栏

📁 Daily Use
  ├─ "git commands"
  ├─ "flex vs grid"
  ├─ "array methods"
  ├─ "async await examples"
  └─ "typescript utility types"

📁 Regex (never memorizing)
  ├─ "email validation"
  ├─ "phone number"
  └─ "url pattern"

📁 Interview Prep (for when I interview)
  ├─ "big O cheat sheet"
  ├─ "system design"
  └─ "behavioral questions"

第 14 部分:不使用谷歌搜索的真正危害

这是一个有争议的观点:有时候你不应该使用谷歌。

自己解决问题的时间

  1. 学习基础知识

    。如果你学习 JavaScript 时每次都去 Google 搜索“如何编写函数”,那你根本学不会。要不断练习,直到掌握为止。
  2. 调试自己的代码

    在谷歌搜索之前,先尝试自己理解错误。阅读错误信息。检查行号。思考。
  3. 理解核心概念

    不要只是谷歌搜索“什么是闭包”。 进行实验。打破常规。理解为什么。

平衡

  • 坏处:
    用 Google 搜索每一行代码
  • 优点:
     15 分钟后卡住时使用 Google
  • 最佳做法:
    通过 Google 学习模式,然后自己实现

第 15 部分:我对初级开发人员的建议

基于现实情况,忘记语法和犯错误正是开发人员所做的事情,以下是我的建议:

1. 不再对谷歌搜索感到内疚

我们所有开发者都依赖 Stack Overflow、YouTube 和 Google。这不是弱点,而是工作原因。

2. 建立个人知识库

记录你反复在 Google 上搜索的内容:

# Git Commands I Always Forget

## Undo last commit (keep changes)
git reset --soft HEAD~1

## Undo last commit (discard changes)
git reset --hard HEAD~1

## View commit history
git log --oneline --graph

3. 学会阅读文档

Stack Overflow 很棒,但官方文档更易于理解。

4. 拥抱不适

如果你身处一个你不是最聪明的人的房间,这意味着你正在学习和拓展自己。

5.问“愚蠢”的问题

这么“蠢”的问题?另外三个人也想知道同样的问题,但都不敢问。

6. 老年人结对计划

观察经验丰富的开发人员犯错误、走错方向或在 Google 上搜索可能会非常有帮助。

你会发现我们都是在边走边想办法。


结论:承认自己不知道的解放

我希望你们从中得到以下几点:

你并不是因为使用 Google 搜索而成为冒名顶替者。

忘记语法并不意味着你的技能降低。

虽然你不知道所有事情,但你并不是一个糟糕的开发人员。

你是人。我们不断学习各种信息,花费无数时间进行调试,怎么能指望记住所有东西呢?

我从事专业开发工作已有十年。我领导着一个团队。我的年薪达到六位数。我开发的产品已服务数百万用户。

我每个月至少会在 Google 上搜索一次“如何将 div 居中”。

初级人员和高级人员之间的区别不在于知识,而在于是否知道如何快速找到知识。

因此,下次当您发现自己疯狂地在 Google 上搜索一些“基本”内容时,请记住:

在某个地方,谷歌的一位高级开发人员正在谷歌上搜索完全相同的东西。

欢迎来到软件开发领域。别再心怀愧疚,继续用谷歌搜索吧。


轮到你了:你会用 Google 什么?

我给你看过我的了,现在也给你看看你的吧。作为一名开发者,你在 Google 上搜索过的最尴尬的事情是什么?


谷歌搜索次数最多的名人堂作品:

  • “如何退出 vim”
  • “git强制推送”
  • “javascript 降序排序”
  • “css垂直对齐”
  • “正则表达式电子邮件”

你的是什么?👇

关注「索引目录」公众号,获取更多干货。


【声明】内容源于网络
0
0
索引目录
索引目录是一家专注于医疗、技术开发、物联网应用等领域的创新型公司。我们致力于为客户提供高质量的服务和解决方案,推动技术与行业发展。
内容 444
粉丝 0
索引目录 索引目录是一家专注于医疗、技术开发、物联网应用等领域的创新型公司。我们致力于为客户提供高质量的服务和解决方案,推动技术与行业发展。
总阅读838
粉丝0
内容444