昨天,在一次團隊站立會議上,一位初級開發人員問我:「你怎麼記得住這些東西?」我笑了。 “我記不住。我每天都會用谷歌搜尋。”
讓我告訴你一個在技術面試或 LinkedIn 貼文中沒人談論的秘密:
我是一名擁有 8 年經驗的高級軟體開發人員,我會每天、甚至每小時都會在 Google 上搜尋一些基礎內容。
上週二,我花了 20 分鐘在 Google 上搜尋“如何在 JavaScript 中反轉陣列”,因為我記不清它是.reverse()
還是.reversed()
還是.reverseArray()
。
它是.reverse()
。
我已經使用過它一千次了。
我還是忘了。
你知道嗎? Google、亞馬遜和微軟等公司 58% 的科技工作者都覺得自己像個騙子。你旁邊那個似乎無所不知的高階開發人員?他們甚至會用谷歌搜尋基本的語法錯誤。
這篇文章是我的懺悔。或許也是你的懺悔。我們是時候停止偽裝了。
讓我打開我的瀏覽器歷史記錄,把自己暴露出來。以下是我過去5天的真實搜尋記錄:
「css flex align items centre 不起作用」(我忘記設定display: flex with a height of 100dvh
)
「TypeScript 介面 vs 類型」(第 100 次)
「如何退出 vim」(我是高級開發人員,但我仍然被困在 vim 中)
「react useEffect 清理功能」(我知道這個。我只是…需要檢查一下)
「git revert vs reset vs restore」(哪一個再次刪除提交?)
「javascript 會依日期對物件陣列進行排序」(預設為升序還是降序?)
「如何將 div 置中」(經典)
「nodejs 讀取檔案」(是fs.readFile
還是fs.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 什麼
✅ 能夠閱讀文件(即使它很糟糕)
✅ 已經犯過所有錯誤(所以知道什麼不該做)
✅ 能夠有效率地除錯
✅ 知道何時尋求協助
初級和高級之間的區別不在於知識,而在於模式辨識和解決問題的速度。
問題: “按鈕未提交表單。”
初級開發人員:
恐慌
谷歌搜尋“按鈕不起作用”
閱讀 10 篇不相關的 Stack Overflow 帖子
嘗試隨機解決方案
破壞其他東西
3小時後:仍然損壞
資深開發人員:
開啟開發控制台(第一直覺)
看到錯誤:“form.submit 不是一個函數”
谷歌確切的錯誤訊息
立即找到 Stack Overflow 答案
意識到有一個名為submit
的變數與本機方法衝突
5分鐘內修復
資深開發人員知道答案嗎?不知道。
他們知道怎麼找到它嗎?是的。
這就是差別。
即使是經驗豐富的開發人員也記不住很多東西,因為你不會每天都用到所有東西。以下是我在 Google 上搜尋過 50 多次的東西:
# Things I Google constantly:
git revert
git reset
git cherry-pick
git rebase
git stash pop vs git stash apply
我已經使用 Git 9 年了。我仍然記不住reset --soft
、 reset --mixed
和reset --hard
之間的區別。
每次我需要撤消某些操作時,我都會回到 Google:“git undo last commit but keep changes”
/* I have this Googled monthly: */
.container {
display: flex;
justify-content: ??? /* center? space-between? I forget */
align-items: ??? /* center? stretch? help */
}
我已經建立了 100 多個響應式佈局。但每次我都需要那個視覺化的指南。
// 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
// 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)
}
我知道兩種方法都有效。我忘了哪個比較適合什麼用途了。不過Google知道。
// 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 上搜尋過的最尷尬的事情:
(我慌了。到底是var
、 let
還是const
?2025 年了,我還是會猶豫)
(我知道這一點。我教這個。我仍然會用谷歌來確認)
(經典文法? forEach
? map
?我在程式設計面試時一片空白)
(我在會議上展示我的螢幕。我愣住了。想不起快捷方式了)
(我得為自己辯解一下,我已經筋疲力盡了。另外,我忘了+
是否也適用於字串)
(我當時正在寫文件,並對這個定義進行了二次猜測。冒名頂替綜合症嚴重打擊了我)
(這讓我陷入了「我是否有資格擔任我的工作?」的困境)
(劇透:是的。谷歌搜尋是一項技能,擅長谷歌搜尋可以讓你成為一名優秀的程式設計師)
( :q!
或:wq
?或是:exit
?幫忙。)
初級開發人員看著我的工作並認為我是某種編碼嚮導。
他們看到的是:
我打字很快
我快速修復錯誤
我自信地編寫程式碼
我很少陷入困境
實際發生的情況:
我打字很快,因為我已經複製和貼上了這個模式 1000 次
我修復錯誤很快,因為我之前也犯過同樣的錯誤
我可以自信地編寫程式碼,因為我 5 分鐘前就在 Google 上搜尋過解決方案
我很少遇到困難,因為我知道如何有效地使用谷歌
在腳本式教學影片中,開發人員工作速度非常快,因為他們已經建立了應用程式,並且知道如何解決問題。但實際上,這需要更長的時間。
初級學員在輔導課上看到的內容:
“我將在10分鐘內建立這個身份驗證系統!”
現實:
2 小時谷歌搜尋 JWT 實現
1 小時除錯為什麼令牌沒有被發送
30 分鐘搞清楚 CORS
1 小時後才意識到自己忘了哈希密碼
總共4小時
觀察經驗豐富的開發人員犯的錯誤、走錯的方向或在谷歌上搜尋,對於初級開發人員來說非常有幫助。
這是軟體開發的骯髒秘密:
你不需要知道一切,你需要知道如何找到一切。
基本語法(變數、函數、循環)
核心概念(範圍、提升、閉包)
如何使用偵錯工具
如何閱讀錯誤訊息
如何有效地使用谷歌
任何開發人員都不可能了解所有事情。技術棧太龐大了。框架更新太快了。語言不斷增加新功能。
如果您記住了 API,那麼您就做錯了。
讓我教你真正的高級技能:如何像專業人士一樣使用 Google 。
搜尋: “按鈕不起作用”
結果: 1000 萬個不相關的結果
浪費時間: 2小時
搜尋: “react 按鈕 onclick 不起作用”
結果:更好,但仍然通用
浪費時間: 30分鐘
搜尋: “react button onclick event.target undefined typescript”
結果:確切的 Stack Overflow 答案
節省時間: 2分鐘
包含的技術: “React”而不僅僅是“JavaScript”
包含錯誤訊息:來自控制台的精確文本
如果相關,請包含上下文: “typescript”
新增年份: “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 的工作原理,但它通過了測試,所以……🤷♂️”
程式碼審查:
初級開發人員: “哇,你怎麼知道在這裡使用 WealMap?”
我(對外): “性能優化。”
我(內心): “我在 Google 上搜尋‘javascript 記憶體洩漏修復’,然後點擊了第一個連結。”
技術面試(作為面試官):
候選人: “我不記得 reduce 的具體語法...”
我(對外): “沒關係,理解這個概念很重要。”
我(內心): “兄弟,我每次都用 Google 搜尋 reduce。你真棒。”
Google、微軟、亞馬遜、Facebook 和蘋果 58% 的科技員工面臨冒名頂替症候群。
那個說話自信滿滿的 CTO?他們醒來後渾身冷汗,懷疑自己是不是犯了一個可怕的錯誤。
那個人人都敬佩的建築師?他們正在谷歌搜尋基本的語法錯誤。
你並不孤單,你很正常。
如果我能回到過去,和年輕時的自己談談,我會這樣說:
初級的我: “我不需要谷歌這個。真正的開發人員知道這些東西。”
資深的我: “真正的開發人員知道如何使用 Google。那些假裝不知道的人是在撒謊。”
即使是經驗豐富的開發人員也無法記住很多東西,因為你不會每天都使用所有東西,所以你會忘記一些事情。
我至少忘了 50 次 React Context 語法。每次我都得自己找或從專案中的其他文件複製貼上。
初級的我: “我應該從頭開始寫所有內容才能真正學到東西。”
資深的我: “我已經把整個身份驗證系統複製貼上過來了。你只要明白你貼上的是什麼就行了。”
在科技領域,不可能事事精通。科技發展如此之快,沒有人能夠真正掌握所有的技術和概念。
你的工作不是了解一切。你的工作是解決問題。
即使是經驗豐富的開發人員也會花費數小時來解決簡單的錯誤、走錯方向並犯錯。
上週我花了 3 個小時除錯程式碼才意識到變數名稱有拼字錯誤。
userId
與usreId
三小時。
我是一名高級開發人員。
既然我們已經確定「無所不知」並不是資歷的標誌,那麼什麼才是呢?
年輕人假裝自信,老年人則承認無知,然後去谷歌搜尋。
初級員工會感到恐慌。高級員工會閱讀堆疊追蹤訊息,並透過 Google 查找確切的錯誤訊息。
模式辨識。你看過這部電影了。
低年級學生獨自奮鬥了好幾天,而高年級學生在谷歌上搜尋了 30 分鐘後才詢問。
因為你已經在 Google 上搜尋過很多次了,所以你現在實際上已經了解它了。
因為您必須維護糟糕的程式碼(兩年前的程式碼)。
「我不知道,讓我谷歌一下」並不丟人,而是誠實。
讓我帶你回顧昨天。典型的「高級開發人員」的一天:
我說: “我今天將完成支付整合。”
我的意思是: “我將第五次在 Google 上搜尋如何整合 Stripe,因為我每次都會忘記。”
Google搜尋 #1: “stripe payment intent react”
Google 搜尋 #2: “stripe webhook 簽名驗證”
Google 搜尋 #3: “條紋測試卡號”
(我用谷歌搜尋了每一個專案)
錯誤: Cannot read property 'amount' of undefined
我的過程:
盯著程式碼(2分鐘)
在所有地方加入console.log
(5 分鐘)
谷歌錯誤(30秒)
尋找 Stack Overflow 答案
意識到我忘記在存取物件之前檢查它是否存在
摀臉
新增if (payment?.amount)
檢查
固定的
總時長: 8分鐘
初級開發人員時間:本來是 2 小時
為什麼?不是因為我比較聰明。因為我已經犯過100次這樣的錯誤了。
青少年程式碼:
const data = response.data.users.map(user => user.name)
我的評論: “如果response.data.users未定義怎麼辦?”
小輩: “哦!我沒想到這一點。”
我沒有說的是: “我上週忘了檢查這個,導致生產崩潰。我吃過不少苦頭。現在你不用再吃了。”
經理: “我們應該如何建立微服務?”
我說的是: “我們應該使用帶有訊息佇列的事件驅動架構。”
5 分鐘前發生的事情:我在 Google 上搜尋了「微服務通訊模式」並閱讀了第一篇文章。
小輩: “你是怎麼記住這些指令的?”
我: “我不知道。我有小抄本。”
我(顯示書籤資料夾):
Git 指令速查表
CSS Flexbox 指南
JavaScript 陣列方法
React Hooks 模式
常見的正規表示式模式
小輩: “等等,你用小抄本嗎?”
我: “每一天。”
讓我分享我的秘密武器(也就是我每天造訪的書籤):
Stack Overflow - 顯然
MDN Web 文件- JavaScript/CSS 參考
React 文件- 當 Stack Overflow 不夠用時
CSS-Tricks - 解決所有 CSS 問題
regex101.com - 因為正規表示式是不可能的
caniuse.com - “我可以使用這個 CSS 屬性嗎?”
npm 趨勢- 比較軟體包流行度
GitHub - 閱讀其他人的程式碼
DevDocs.io - 所有文件都集中在一個地方
ChatGPT/Claude - 新的谷歌(別評判我)
📁 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"
這是一個有爭議的觀點:有時候你不應該使用谷歌。
如果你在學習 JavaScript 時,每次都去 Google 搜尋“如何寫函數”,那你根本學不會。堅持練習,直到掌握為止。
在Google搜尋之前,先嘗試自己理解錯誤。閱讀錯誤訊息,檢查行號,思考。
不要只是在谷歌上搜尋“什麼是閉包”。去嘗試。打破常規。理解為什麼。
錯誤:用 Google 搜尋每一行程式碼
優點: 15 分鐘後卡住時使用 Google
最佳做法:透過 Google 學習模式,然後自己實現
基於現實情況,忘記語法和犯錯正是開發人員所做的事情,以下是我的建議:
我們所有開發者都依賴 Stack Overflow、YouTube 和 Google。這不是弱點,而是工作原因。
記錄你反覆在 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
Stack Overflow 很棒,但官方文件更易於理解。
如果你身處一個你不是最聰明的人的房間,這意味著你正在學習和擴展自己。
這麼「蠢」的問題?另外三個人也想知道同樣的問題,但都不敢問。
觀察經驗豐富的開發人員犯錯、走錯方向或在 Google 上搜尋可能會非常有幫助。
你會發現我們都是在邊走邊想辦法。
我希望你們從中得到以下幾點:
你並不是因為使用 Google 搜尋而成為冒名頂替者。
忘記文法並不代表你的技能降低。
雖然你不知道所有事情,但你並不是一個糟糕的開發人員。
你是人。我們不斷學習各種訊息,花費無數時間進行除錯,怎麼能指望記住所有東西呢?
我從事專業開發工作已有十年。我領導著一個團隊。我的年薪達到六位數。我開發的產品已服務數百萬用戶。
我每個月至少會在 Google 上搜尋一次「如何將 div 居中」。
初級人員和高階人員之間的差異不在於知識,而是是否知道如何快速找到知識。
因此,下次當您發現自己瘋狂地在 Google 上搜尋一些「基本」內容時,請記住:
在某個地方,谷歌的一位高級開發人員正在谷歌上搜尋完全相同的東西。
歡迎來到軟體開發領域。別再心懷愧疚,繼續用谷歌搜尋吧。
我給你看過我的了,現在也給你看你的吧。身為開發者,你在 Google 上搜尋過的最尷尬的事情是什麼?
請在下方留言或推文給我@elvisautet ,分享你最常使用的 Google 搜尋。讓我們一起規範它。
Google搜尋次數最多的名人堂作品:
“如何退出 vim”
“git強制推送”
“javascript 降序排序”
“css垂直對齊”
“正規表示式電子郵件”
你的是什麼? 👇
我是 Elvis Autet ( @elvisautet ),一位擁有 8 年經驗的高級全端開發者,並且對谷歌有著十足的痴迷。我已經在谷歌上搜尋過「如何反轉陣列」無數次了,現在我對此已經不再感到羞恥了。
在 X 上關注我: @elvisautet ,獲取更多誠實的開發人員內容以及有關我在 Google 上搜尋過的內容的糟糕承認。
如果這篇文章讓你在Google搜尋方面不再感到孤單,請分享給其他需要幫助的開發者同行。我們同舟共濟。
PS:在寫這篇文章之前,我在 Google 上搜尋了「如何寫出好的部落格結論」。 😂