🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付

讓我來跟你講講那個改變一切的星期二。

我花了三個小時才搞定一個原本只需30分鐘就能完成的bug修復。我的終端機開了47個標籤頁。本地伺服器重啟了六次。咖啡涼了兩次。就在我打開第23個Stack Overflow標籤頁,以及專案經理發來一條陰陽怪氣的Slack訊息的間隙,我突然清醒過來:我完全不知道自己在幹什麼。

程式設計部分沒問題——我會程式設計。但實際操作部分呢?如何有效率地完成日常工作?我完全像個一年級電腦科學系學生一樣,熬夜趕小組專案,而其他人都神秘消失了。

這裡有一個大多數開發者都不願提及的殘酷真相:我們花了數年時間學習編程,卻幾乎沒花時間學習如何運作。我們優化演算法,卻不優化工作時間;我們重構程式碼,卻不改進工作習慣;我們像宗教信徒一樣狂熱地爭論製表符和空格哪個更好,卻無法解釋為什麼在「高效」的一天結束後,明明沒有交付任何有意義的東西,我們卻依然精疲力竭。

五年前的那個星期二,我一頭栽進了各種生產力系統、工作流程優化以及真正能提升效率的開發者專屬技巧的世界。有些技巧是我透過痛苦的試誤才發現的,有些則是在與資深開發者深夜長談中得到的,他們已經找到瞭如何在保證程式碼品質的前提下保持理智的方法。

這並非又一篇充斥著「集中註意力」等老生常談的效率提升指南。這裡介紹的是經過實戰檢驗的策略,它們充分考慮到了軟體開發的獨特挑戰——頻繁的上下文切換、被各種幹擾打斷的工作日、令人疲憊不堪的除錯過程,以及在昨天截止日期前交付功能的同時,還要不斷學習新框架的壓力。

無論你是深陷冒名頂替症候群的初級開發人員,還是經驗豐富卻感覺效率低下的資深工程師,這些技巧都能幫助你重新掌控時間、集中註意力,甚至還能掌控你的夜晚。

讓我們深入探討一下。

  1. 雙終端規則:停止頻繁切換上下文,避免陷入混亂

想像一下:你正在除錯一個生產環境問題。你需要查看日誌,所以你cd到了日誌目錄。然後你需要重啟一個服務,所以你cd到了應用程式目錄。然後你需要執行一個資料庫查詢,所以你…等等,你剛才說到哪裡了?你瘋狂地按了十七次向上箭頭,試圖找到六分鐘前執行的那條完美的命令,現在你完全忘記了之前的思路。

為什麼這很重要:情境切換不僅僅是指在不同任務之間跳轉——它還包括我們因為工具與我們作對而人為地給自己施加的微小障礙。每次你偏離目標,都會在思維中製造一個小小的減速帶。一天五十次,你就為自己設下了一個認知障礙。

解決方案簡單得令人尷尬:始終使用至少兩個終端視窗(或分割畫面視窗),每個視窗專門用於特定的上下文。

我的配置如下:

終端 1(左):這是我的「工作」終端,位於專案根目錄。我在這裡執行開發伺服器、執行建置命令、執行測試以及進行實際工作。

終端 2(右):這是我的「調查」終端,也是我的臨時參考終端。我可以在這裡導航到任何需要的地方——日誌目錄、設定檔、不同的程式碼倉庫。我會執行一些一次性命令,檢查系統資源,用 grep 命令搜尋檔案。這個終端會經常被修改,沒關係。

神奇之處在於這種分離。終端 1 保持著簡潔和可預測性。我始終知道它在哪裡,正在執行什麼程序,以及按下向上箭頭會發生什麼。終端 2 則吸收了所有探索和調查的混亂,而不會污染我的主要工作空間。

使用 tmux 或 IDE 的終端可以進一步執行此操作:

  • 為不同的專案建立命名會話

  • 將相關任務拆分為多個窗格(頂部顯示伺服器,底部顯示檔案監視器)

  • 使用一個終端機執行命令,另一個終端監控輸出。

  • 專門保留第三個終端用於 Git 操作。

實際應用:在開發微服務專案時,我會為每個正在開發的服務分別設定獨立的終端,外加一個用於 Docker 指令的終端機和一個用於研究的終端。聽起來似乎有點過度設計,但當你體驗到無需頻繁cd或丟失命令歷史記錄的流暢工作狀態時,你就會明白它的優勢所在。

關鍵在於:你的工具應該與你對工作的思考模式相符。如果你同時考慮多個情境,你的工作空間也應該反映這一點。

  1. 真正有效的番茄工作法:開發者的番茄鐘技巧(這次真的管用了)

我知道,我知道。你肯定聽過番茄工作法。工作25分鐘,休息5分鐘,如此循環往復。理論上聽起來很棒,但實際操作呢?當你專注地寫程式碼11分鐘後,計時器響了,你卻要…停下來?在程式碼寫到一半的時候?在你終於進入狀態的時候?

不,那不可能發生。

但關鍵在於:傳統的番茄工作法並非為需要高度專注的創意工作而設計。它是為銷售和行政任務開發的,因為在這些任務中,被打斷的代價較小。開發人員需要的是不同的方法。

隆重推出:開發者番茄工作法,或我稱之為「有約束力的時間盒」。

你不再採用僵化的 25 分鐘間隔,而是根據自然的工作界限來設定時間盒,並嚴格規定計時器歸零時會發生什麼。

實際運作方式如下:

第一步:定義一個具體、可完成的任務。不要說“開發身份驗證功能”,而要說“實作 JWT 驗證中間件”。要確保你能完成某個任務,或至少能達到一個明確的終點。

第二步:誠實估計。這需要30分鐘? 45分鐘? 90分鐘?要實際一點。在你直覺估計的時間基礎上再加25%,因為你很可能低估了所需時間。

第三步:設定計時器並開始。但關鍵在於:計時器響起時不要停止,而是要進行評估。

當計時器響起時:

  • 你是否進入了心流狀態?那就再增加一個時間段,繼續吧。

  • 你遇到瓶頸了嗎?這是你的自然崩潰點。暫時離開一下。

  • 你是不是頻繁切換任務?計時器提醒你了——意識到自己走神了,重新集中註意力或休息一下。

第四步:連續完成 2-3 個時段(90-120 分鐘)後,真正休息。不是那種「查看 Slack」的休息。而是在辦公大樓走走,曬曬太陽,真正與外界斷開連結。

「關鍵在於」執行:以簡單的文件記錄每個時段的工作。寫下你做了什麼,以及是否完成。這能建立責任感,更重要的是,還能收集資料。一週後,你會發現一些規律。你會發現自己總是低估資料庫工作量40%。你會發現下午的時間段效率較低。你將擁有實際資料來改進你的計劃。

讓這一切變得輕鬆方便的工具:

  • 切換追蹤功能,用於記錄時間並進行專案分類

  • Be Focused Pro(Mac 版)是一款可在裝置間同步的計時器。

  • 一個簡單的 Notion 資料庫,包含任務、預計時間和實際時間三列。

真正的好處在於:它不在於計時器或休息時間,而是幫助你了解自己的工作方式。一旦你了解了自己的工作模式——何時最專注、能持續深度工作多久、哪些任務總是超出預期——你就可以據此安排你的一天。

我把最難、最耗費腦力的工作(新功能實現、複雜的除錯)安排在一天中的前兩個時段。程式碼審查和文件編寫則安排在下午,那時我的大腦比較遲鈍。這並非出於動力而提高效率,而是物理規律使然。你應該順應自身的自然節奏,而不是對抗。

  1. 15分鐘法則:你對抗拖延症與無止盡鑽研的秘密武器

每個開發者都有兩個死敵:你不想開始的任務和你似乎無法停止的任務。

第一種情況:你需要重建那個所有人都不敢碰的遺留模組。它只有一個文件,卻有 800 行程式碼,沒有測試,註解還用了三種不同的語言。光是想想就覺得累。於是你……查看郵件。整理 Dock 欄。突然間徹底清潔了一下鍵盤。總之,什麼都行,就是不想一頭栽進那個深淵。

第二種情況:你正在調查首頁載入緩慢的原因。只需要檢查幾個指標,應該只需要十分鐘。三個小時後,你重建了整個監控基礎設施,閱讀了十二篇關於瀏覽器渲染性能的文章,並搭建了一個測試環境來比較三個不同的 CDN 提供者——但你仍然沒有解決最初的問題。

「15分鐘法則」只需要一個簡單的承諾就能解決這兩個問題:

對於那些你一直逃避的任務:答應自己只做15分鐘。就這麼簡單。 15分鐘後,你可以毫無愧疚地停下來。

對於那些你投入過多精力的任務:在深入研究之前,先設定一個 15 分鐘的計時器。當計時器響起時,問問自己:“這真的在解決我的問題,還是我只是在享受探索的過程?”

從心理學角度來看,這種做法之所以有效:

開始是最難的。我們的大腦天生就會避免不適感,而那些龐大且不明確的任務會強烈引發這種迴避反應。但15分鐘呢?那可就沒那麼可怕了。任何人都能堅持做任何事15分鐘。你承諾的不是完成,而是開始。

妙處在於:大多數時候,你不會只堅持15分鐘。一旦開始行動,慣性就會發揮作用。你會發現任務並沒有想像中那麼糟。或者你會進入心流狀態,完全忘記計時器的存在。 15分鐘法則就像一根心理撬棍,能激發你的動力。

對於鑽研不透的課題,情況則恰恰相反。開發者天生就是好奇心強、善於解決問題的人。我們看到一個有趣的切入點,腦海中立刻閃過一個念頭:「哦,我可以優化一下!讓我快速地…」然後四個小時過去了,你對實際的迭代目標卻毫無貢獻。

15分鐘檢查點迫使人們坦誠面對現實:

  • 重構這個實用函數對你目前的任務至關重要嗎?

  • 你需要了解 JavaScript 打包工具的全部歷史才能修復這個 webpack 配置嗎?

  • 設定完美的 lint 配置真的比發布功能更重要嗎?

有時候答案是肯定的!有時候確實需要深入思考。但很多時候,答案是否定的,而15分鐘法則允許你做出務實的選擇,而不是完美主義的選擇。

實際應用:準備一份「15分鐘任務清單」。清單上都是你一直在拖延的事情——比如寫模組文件、修復惱人的測試漏洞、更新依賴項、進行你一直想做卻遲遲沒有完成的程式碼審查。當你一天中出現一些零碎時間(例如會議取消、等待部署、提前完成任務)時,就用15分鐘完成一項任務。

一個月下來,你將完成 20-30 項這樣的小任務,否則這些任務可能永遠無法完成。你的程式碼庫會變得更健康,技術債會減少,你的成就感也會增強。

對於容易鑽牛角尖的情況:當你發現自己在研究某個無關緊要的事情時,設定一個計時器,然後問自己:「我需要知道的最少訊息是什麼才能繼續前進?」回答這個問題,將你學到的知識記錄在評論或維基頁面上以備將來參考,然後回到正軌。這樣,你就掌握了知識,卻不會被知識淹沒。

15分鐘法則並非僵化刻板,而是注重目標明確。它將“我應該做這件事”轉變為“我正在做這件事”,將“我只是在探索”轉變為“我正在有意識地選擇如何支配我的時間”。

  1. 文件驅動開發:先寫文件,再寫程式碼

這聽起來可能有點反直覺,但你試過之後就會覺得自己像超能力一樣。

傳統的開發者工作流程是這樣的:編寫程式碼,讓它執行起來,進行完善,然後(或許有人提醒你,或者有 PR 清單需要檢查)編寫文件來解釋你剛剛建立的功能。文件是開發的副產品,就像你吃蔬菜是因為它們對你有益,而不是因為你想吃。

反過來。先做記錄。

在編寫任何一行實作程式碼之前,請先寫文件,說明你的特性、功能或 API 的工作原理。描述它的功能、接受的參數、傳回值、處理的特殊情況、使用者的使用方法。

這樣做會發生以下情況:

思路會立刻清晰起來。寫作會迫使你仔細思考細節,這是盯著 IDE 永遠無法做到的。你會在設計問題變得代價高昂之前就發現它們。 「等等,如果使用者在這裡傳遞了 null 值,該怎麼辦?」這個問題會在設計階段就得到解答,而不是在生產環境中才被發現的 bug。

你的 API 會變得更好。當你先從使用者的角度編寫文件時,自然而然就能設計出更直覺的介面。你會注意到那些令人困惑的命名、缺少的參數或彆扭的使用模式,因為你強迫自己去解釋它們。

實現起來就容易多了。你已經考慮清楚邏輯了。文件就是你的規範。現在你只需要把清晰的英文(或你選擇的語言)翻譯成程式碼。再也不用對著空白文件發呆,不知從何下手了。

你的文件永遠不會過時。因為它們是先寫的,所以與你實際開發的內容完全一致。你不需要從已經完成的程式碼反向推導文件,因為那時你已經忘記了一半的決策過程。

例子:

假設你要建構一個限速中間件。你沒有直接開始寫程式碼,而是先寫下這段話:

## RateLimiter Middleware

Prevents API abuse by limiting requests per user.

Usage:
const limiter = new RateLimiter({ requestsPerMinute: 60 });
app.use(limiter.middleware());

Configuration:
- requestsPerMinute: Maximum requests allowed per minute (default: 100)
- keyGenerator: Function to identify unique users (default: uses IP address)
- onLimitExceeded: Custom handler for rate-limited requests

Behavior:
- Tracks requests using in-memory storage (upgradeable to Redis)
- Returns 429 status when limit exceeded
- Includes Retry-After header with seconds until limit resets
- Resets counter every minute

現在,當你實現這個功能時,你就完全清楚自己要建構什麼。你已經做出了關於預設值、配置選項和行為的設計決策。你的程式碼會自動生成,因為你的文件本身就是一份規範。

進一步來說:

對於複雜的功能,在編寫程式碼之前,請先編寫三種類型的文件:

  1. 使用者文件:使用者將如何使用此功能

  2. API 文件:函數簽章、參數、回傳值

  3. 決策日誌:你做出某些設計選擇的原因(這對未來的你來說非常寶貴)

支援此工作流程的工具:

  • 在程式碼旁邊用 Markdown 寫文件。

  • 使用 JSDoc、TypeDoc 或類似工具從註解產生文件。

  • 在專案根目錄下保留一個decisions.md檔案。

  • 對於 API,請使用 OpenAPI/Swagger 規格作為文件編寫工具。

思維模式轉變:你不是寫文件的開發者,而是透過文件和程式碼表達設計的開發者。文件不是你完成開發後需要繳納的稅款,而是讓開發成為可能的藍圖。

我曾經寫過一些功能,第一次提交的內容純粹是文件,第二次提交的是基於這些文件的測試,第三次提交的則是讓測試通過的實現。等到我提交 PR 的時候,所有內容都清晰明了、經過測試且文件齊全。程式碼審查的重點就變成了實質內容,而不是費力去弄清楚我當時的意圖。

下次開發新功能時試試這個方法:先寫 README 文件,再寫函數體,最後寫 API 文件,再寫接口。剛開始可能會覺得有點怪,大概半小時後就會覺得像是擁有了透視眼。

  1. 程式碼審查的兩分鐘法則:儘早審查、頻繁審查、小範圍審查

程式碼審查是美好願望的墳墓。

你肯定看過這種套路:有人提交了一個 PR,修改了 47 個文件,2300 行程式碼。你看到通知,心想「等有空再看吧」。結果「有空」永遠等不到。 PR 就這麼擱置了三天。作者在 Slack 上聯絡你。你終於抽出一個小時,打開 PR,立刻感覺壓力山大,匆匆瀏覽了一遍,敷衍地回復了句“LGTM”(看起來不錯),然後循環往復。

同時,你卻加劇了你等待 PR 審核時所遇到的那種令人沮喪的問題。

兩分鐘法則改變了這種動態:

如果程式碼審查只需不到 2 分鐘,那就立即進行。

不是“等你完成當前任務之後”,不是“等這次會議之後”,也不是“等你指定的程式碼審查時間”,而是立刻。現在就停下你手邊的工作,開始審查。

之所以有效,是因為:

小程式碼審查速度很快。一個 30 行程式碼且上下文清晰的 PR? 90 秒就能搞定。閱讀程式碼,驗證其合理性,留下評論或批准,就完成了。你幾乎無需切換上下文就能幫別人解決問題。

它能訓練你的團隊提交更小的 PR。當大家知道小的 PR 會立即得到審核,而大的 PR 則會一直排隊等待時,行為自然而然就會改變。你的團隊會自然而然地開始將工作分解成更小、更容易審核的小塊。

它能減輕你的認知負荷。與其讓十二個待審核的評審像技術債一樣縈繞在你心頭,不如立即處理那些小小的評審。你的待審核佇列始終保持在可控範圍內。你也不會再因為自己拖慢進度而感到內疚。

它能提高程式碼品質。快速回饋意味著開發人員可以在上下文記憶猶新時進行迭代。他們還在思考問題,而不是忙於其他三項任務。及早發現問題可以降低修復成本。

但訣竅在於:你需要讓小小的 PR 容易被辨識。

與你的團隊合作,制定規範:

  • 少於 200 行的 PR 會被標記為small標籤

  • 使用 PR 標題前綴: [SMALL][QUICK][REVIEW-NEEDED]

  • 設定 Slack 或電子郵件通知,針對小型和大型 PR 發送不同的提醒。

  • 制定團隊協議:小型 PR 當天審核,大型 PR 集中審核。

對於大於 2 分鐘的個人最佳成績:

安排好時間。在日曆上預留時間進行深度程式碼審查。像對待其他重要任務一樣對待它。但不要讓大型審查耽誤你立即進行快速審查。

指數級影響:

當你的團隊全員採用這種方式時,評審速度將會大幅提升。這種緊密的回饋循環能夠加速一切進程。功能發布更快,知識傳播更均勻,缺陷也能更早被發現。協作不再像官僚作風,更像是真正的團隊合作。

需要自律:

最難的部分其實是停下手邊的工作去複習。大腦會抗拒切換工作內容。但兩分鐘的複習就像開車時查看後視鏡一樣——短暫的注意力轉移能確保安全,讓工作繼續進行。

實施建議:

  • 保持你的公關通知可見(Slack、電子郵件、瀏覽器擴充功能)

  • 在咖啡休息時間,可以使用 GitHub 或 GitLab 的行動應用程式來審查小型 PR。

  • 建立鍵盤快速鍵,以便跳到您的審核佇列

  • 追蹤一週的評論回覆時間-提高意識有助於改進。

進階技巧:建立便於審核的 PR 範本。新增一個檢查專案:「此 PR 少於 300 行,或已拆分為多個 PR。」將控制 PR 長度的意識融入團隊文化。

我親眼見過一些團隊透過採用這項規則,將平均公關審核時間從3天縮短到3小時。這絕非誇張。快速回饋帶來的累積效應是團隊能夠採取的最具槓桿效應的生產力提升措施之一。

兩分鐘法則不僅關乎程式碼審查,它更是一種理念。減少快速行動的阻力,你就能更有效率地完成行動。讓回應變得簡單,你就能真正做到快速回應。

  1. 終端別名和腳本:自動化你的肌肉記憶

快速測試:你每天要輸入多少條指令?

如果你跟大多數開發者一樣,那麼你的工作流程也大同小異:啟動開發伺服器、執行測試、檢查 Git 狀態、重新建置依賴項、檢視日誌、開啟編輯器、連線資料庫。這些指令你輸入了無數遍,早已深深烙印在你的肌肉記憶中。

提高效率的秘訣在於:每次重複執行指令都是在浪費時間。

並非因為打字慢(雖然確實很慢),而是因為每個指令都是一個決策點。 「那個標誌是什麼來著?我需要設定環境變數嗎?今天我用的是哪個連接埠?」這些微小的決策累積起來,最終會變成千瘡百孔。

解決方案:毫不留情地將你重複做兩遍以上的每件事自動化。

一級:終端別名

這些方法能讓你快速發揮成效。將它們加入你的.zshrc.bashrc檔案:

# Git shortcuts
alias gs='git status'
alias gp='git pull'
alias gpo='git push origin'
alias gc='git commit -m'
alias gco='git checkout'
alias gb='git branch'

# Project navigation
alias proj='cd ~/projects'
alias work='cd ~/projects/work'

# Development servers
alias serve='npm run dev'
alias serve:prod='npm run build && npm run start'

# Testing
alias test='npm test'
alias testw='npm test -- --watch'

# Utilities
alias ll='ls -laGh'
alias cl='clear'
alias ..='cd ..'
alias ...='cd ../..'

從這裡開始。乍看之下似乎微不足道,但當你意識到自己每天要輸入七十次gs而不是git status ,就會明白它的重要性了。這相當於每天節省 420 個字符,每月節省 10,500 個字符,更重要的是,無需耗費任何精力在命令語法上。

第二級:複雜指令的功能

當別名不足以解決問題時,請寫函數:

# Create a new branch and push to remote
gnb() {
  git checkout -b "$1"
  git push -u origin "$1"
}

# Find and kill process on specific port
killport() {
  lsof -ti:$1 | xargs kill -9
}

# Quick commit with message
qc() {
  git add .
  git commit -m "$1"
  git push
}

# Create directory and cd into it
mkcd() {
  mkdir -p "$1"
  cd "$1"
}

現在, gnb feature/new-auth只需一條命令即可建立並推送一個新分支。 killport killport 3000可以讓你免於第 47 次搜尋lsof指令的繁瑣步驟。

第三級:專案專用腳本

在專案中建立scripts/目錄,並新增常用工作流程:

#!/bin/bash
# scripts/dev-setup.sh

echo "🚀 Starting development environment..."
docker-compose up -d
npm install
npm run migrate
npm run seed
npm run dev

現在./scripts/dev-setup.sh dev-setup.sh 腳本會處理您所有的晨間啟動流程。再也不用擔心忘記步驟或資料庫為何為空了。

第四級:與工具無關的任務執行器

使用類似makenpm scripts類的任務執行器,或just為了標準化跨專案的命令:

# Makefile
.PHONY: dev test build deploy clean

dev:
    npm install
    npm run dev

test:
    npm run test:unit
    npm run test:integration

build:
    npm run build
    docker build -t myapp .

deploy:
    make build
    make test
    docker push myapp
    kubectl apply -f k8s/

現在每個專案都有make devmake testmake deploy幾個指令。你的大腦記住了一套可以在任何地方使用的指令。

隱藏的生產力倍增器:

這不僅關乎速度,更關乎減少決策疲勞。當你消除那些微小的決策(例如「剛才那個指令是什麼?」)時,就能將精力集中在真正解決問題上,從而更長時間地保持心流狀態,減少情境切換。

需要自動化的內容:

  • 環境建造與拆除

  • 資料庫操作(重置、初始化、備份、還原)

  • 部署工作流程

  • 程式碼產生(新元件、API 端點、測試)

  • 清理任務(刪除分支、清除快取)

  • 常用除錯命令

我個人最喜歡的:

# Open PR for current branch
alias pr='gh pr create --web'

# Show commit history with graph
alias gl='git log --oneline --graph --decorate --all'

# Run tests for only changed files
alias testc='npm test -- --changedSince=main'

# Full reset: clean install everything
alias reset='rm -rf node_modules package-lock.json && npm install'

該學科:

每次你第二次輸入複雜的命令時,停下來。立刻建立一個別名或腳本。別告訴自己以後再做。現在就做。這只需要30秒,卻能讓你終身受用。

在您的 dotfiles 倉庫中保留一個.aliases文件,並在不同機器之間同步它。當您設定新電腦時,您可以立即獲得完整的生產力層。

進階技巧:使用direnv在您cd某個目錄時自動載入專案特定的環境變數和別名。每個專案都有自己的一組快捷方式,它們之間永遠不會衝突。

最優秀的開發者並非打字速度最快——他們已經將所有無需思考的工作自動化。他們的終端是客製化的工作流程機器,能夠自動處理重複性工作,從而將精力集中在創意工作上。

從小處著手。今天再加一個別名,明天再增加一個。一個月後,你就能建立一套個人效率提昇機制,顯著提升工作效率。一年後,你會驚訝自己以前是怎麼過來的。

  1. 每日站會文件的力量(沒錯,是真的)

請聽我細細道來。我知道「文件」和「會議」這兩個詞放在一起會讓開發者產生心理陰影。但這並非意味著要開更多的會或增加繁文縟節——而是為了建立一個強制清晰化機制,從而提高你一整天的工作效率。

具體做法如下:每天早上,在寫任何程式碼之前,花 5 分鐘時間寫一個簡短的筆記,筆記應包含三個部分:

  1. 我昨天(或上個工作日)發貨的物品

  2. 我今天出貨的商品

  3. 是什麼阻礙了我

就是這樣。無需正式格式,無需複雜模板。只需在文件、筆記本或您選擇的任何工具中寫下三個要點即可。

為什麼這種方法有效,而大多數文件無效:

它能在你需要之前就幫你理清思路。在開始寫程式碼之前,你會問自己:「我今天究竟想完成什麼?」 這可以避免一個極為常見的問題:整天辛苦工作,卻沒做對事情。

它能讓你對自己負責。當你寫下「今天我要實施使用者身份驗證」時,你就做出了承諾。不是對你的經理(儘管他們可能會感激),而是對自己。你把模糊的想法變成了具體的計畫。

它能揭示你平常看不到的規律。一週後,回顧你的筆記。你會注意到一些事情:

  • “我被同一個 API 問題困擾了三天——我應該向上級反映這個問題。”

  • “我總是說要寫測試題,但從來沒有真正寫過——我需要改變我的方法。”

  • “比起模糊的大任務,我定義具體的小任務時,交付效率更高。”

當每一天都模糊不清時,這些洞察便難以察覺。但一旦寫下來,規律便會顯現。

它能讓站立會議更快、更有效率。當你的團隊召開站立會議(線上或線下)時,你無需費力回憶之前討論的內容,只需閱讀筆記即可。會議時間縮短,資訊更新更清晰。你的團隊真正從這種儀式中受益,而不是僅僅把它當作一項例行公事。

它能為上下文切換提供清晰的線索。遇到緊急狀況?不得不參加突如其來的會議?沒問題——你的筆記會準確地告訴你當時身在何處,正在做什麼。無需花費20分鐘努力回憶之前的工作內容,即可立即繼續工作。

現實生活中的例子:

## December 10, 2025

Shipped yesterday:
- Fixed the pagination bug on the user dashboard (#2847)
- Reviewed three PRs from the team
- Updated deployment docs with new environment variables

Shipping today:
- Implement rate limiting on the auth endpoint (high priority)
- Write unit tests for the new validation middleware
- Pair with Jordan on the Redis caching strategy

Blockers:
- Need staging environment credentials for testing
- Waiting on design feedback for the settings page

寫完這段話只花了90秒。但現在你的一天都變得井然有序。你知道自己的優先事項。你知道自己遇到了什麼難題(並且可以主動解決)。你對今天「完成」的標準有了清楚的認識。

讓這一切變得輕鬆方便的工具:

  • Notion:建立一個包含這三個部分的每日頁面模板

  • Obsidian:使用範本記錄每日筆記

  • 簡單的文字檔案:在專案目錄中保留一個名為daily-log.md檔案。

  • Linear/Jira:請在已指派的工單上使用留言區。

  • Slack:在你建立的私人頻道中發帖

工具並不重要,重要的是練習。

進階應用:

每週回顧:每週五,瀏覽一週的筆記。慶祝所取得的成就。找出反覆出現的障礙。根據實際發生的事情,而不是你希望發生的事情,來規劃下週的工作。

績效考核:到了年度考核的時候,如果有人問你“你完成了什麼工作?”,你就能拿出證據。幾個月的工作記錄,按天整理。再也不用費力回憶第二季都做了些什麼了。

提升效率:這週過得很糟?看看你的筆記。你是不是頻繁切換任務?承擔太多任務了?反覆遇到瓶頸?筆記能幫你找到問題所在。

溝通優勢:你的經理詢問工作進度。你發送了過去三天的工作筆記。他們只需30秒就能了解全部。你顯得條理清晰、積極主動。

思維模式的轉變:

這不是無意義的忙碌,而是戰略思考時間。清晨的這五分鐘,讓你成為自己一天的規劃者,而不是被動地接受安排。你要決定什麼才是最重要的,而不是讓緊急狀況和各種幹擾左右你的決定。

常見反對意見:

「我沒時間。」你一定有5分鐘。你在Slack上花的時間都比這還要長。這是用低價值的時間換取高價值的清晰訊息。

「我的日子太難預料了。」 這正是你需要它的原因。當混亂來襲時,這張便條能為你提供方向。你可以有意識地選擇偏離計劃,而不是漫無目的地遊蕩。

「我永遠不會回頭看這些。」也許不會。但寫下來會改變今天的行為。回顧是額外的收穫;計劃本身才是最重要的。

從明天開始:在開啟整合開發環境(IDE)之前,先開啟一個文件。寫下三個重點。讓它像早晨喝咖啡一樣成為一種習慣。兩週後,你就會習慣用這種方式開始新的一天。

那些看起來井井有條、總能準確掌握工作方向、穩定交付的開發者?他們並非超人。他們只是養成了一些小習慣,這些習慣最終帶來了清晰的思路。這就是其中之一。

  1. 像學習樂器一樣學習你的IDE:快捷鍵、程式碼片段和肌肉記憶

這裡有個令人不快的真相:大多數開發者使用 IDE 的方式就像用兩根手指敲鋼琴一樣。沒錯,這樣也能做出點音樂。但跟真正精通這門樂器的人相比呢?簡直天壤之別。

你的整合開發環境(IDE)是你與程式碼互動的主要介面。你每天要與它互動數千次。你執行的每一個操作——開啟檔案、瀏覽程式碼、重構程式碼、執行測試——要嘛流暢自動,要嘛笨拙手動。這種差異累積起來,每週會花費數小時,每年又會累積數週。

IDE新手和IDE高手之間的生產力差距巨大。我們說的是2-3倍的生產力差異,而不是10%的提升。

第一級:掌握基本快速鍵

別再用滑鼠導航了。真的。滑鼠是用來編輯程式碼的,不是用來找程式碼的。

必備快捷鍵(請依照您的 IDE 進行調整):

  • 快速開啟檔案: Cmd/Ctrl + P — 輸入任一檔案名稱中的幾個字母,即可立即跳到該檔案名稱。再也不用像 1998 年那樣在目錄樹中逐一點擊了。

  • 符號導覽: Cmd/Ctrl + Shift + O — 跳到目前檔案中的任何函數、類別或變數。一秒鐘內找到所需內容。

  • 跳到定義: F12Cmd/Ctrl + Click — 沿著程式碼庫中的路徑瀏覽。無需丟失當前位置即可了解功能的工作原理。

  • 尋找所有引用: Shift + F12 — 這個函數在哪裡呼叫?一個快捷鍵就能告訴你。

  • 多遊標編輯: Cmd/Ctrl + D — 選擇下一個符合專案。同時編輯多個位置。這個快捷鍵會讓你驚嘆不已,節省大量時間。

  • 指令面板: Cmd/Ctrl + Shift + P — 無需記住各個快捷鍵即可存取所有 IDE 功能。它就像是 IDE 的 Spotlight 工具。

  • 整合終端: Ctrl + backtick — 在程式碼和終端機之間立即切換。

挑戰自己:連續一周,每次伸手去拿滑鼠時,停下來問自己:「這個動作有快捷鍵嗎?」 查一下,然後使用它。一週後,很多操作都會變成自動的。

第二層:重複程式碼的自訂程式碼片段

你一再編寫相同的模式:React 元件、測試樣板程式碼、API 路由、錯誤處理程式碼區塊。別再一個字一個字地敲了。

範例:React 元件程式碼片段:

輸入rfc並按 Tab 鍵:

import React from 'react';

const ComponentName = () => {
  return (
    <div>

    </div>
  );
};

export default ComponentName;

遊標落在ComponentName上,準備命名。再次按下 Tab 鍵,即可進入返回程式碼區塊。原本需要輸入 30 秒,現在只需按三次鍵即可完成。

建立以下程式碼片段:

  • 測試套件和測試案例

  • 常見的 React/Vue/Angular 模式

  • API 端點樣板

  • 資料庫查詢模板

  • 錯誤處理模式

  • 常用庫的導入語句

每個 IDE 都具備程式碼片段功能。 VS Code 使用 JSON 檔。 JetBrains IDE 提供即時範本。 Vim 則有 UltiSnips。花一個小時設定好這些功能,每週就能節省你幾個小時。

第三級:你可能沒用過的IDE功能

重構工具:不要手動重新命名函數及其 47 個使用處。使用「重新命名符號」功能,讓 IDE 安全地完成操作,包括跨檔案操作。同樣適用於「提取方法」、「提取變數」和「內聯變數」功能。

多遊標操作:務必認真掌握。這不僅僅是Cmd + D鍵。要學會:

  • 將遊標置於選定區域的每一行( Cmd/Ctrl + Shift + L

  • 在目前行上方/下方新增遊標( Cmd/Ctrl + Alt + Up/Down

  • 選擇檔案中所有符合專案(按 Cmd/Ctrl + Cmd/Ctrl + F Cmd/Ctrl + Shift + L

程式碼導航快速鍵:

  • 跳到匹配的括號

  • 在變化之間跳轉

  • 導航到遊標的上一個/下一個位置(類似瀏覽器的後退/前進)

  • 跳轉至錯誤/警告

任務自動化:大多數 IDE 都允許你建立執行配置或任務。與其每次都在終端輸入npm run dev -- --port 3001 --debug ,不如將其儲存為命名任務,然後使用F5或鍵盤快捷鍵啟動它。

Git 整合:無需每次執行 Git 操作都切換到終端。學習如何在 IDE 中直接暫存程式碼區塊、查看差異、解決衝突和建立提交。單是可視化差異工具就值得掌握。

第四級:工作區與佈局優化

巧妙地分割編輯器:不要一次只開啟一個檔案。分割螢幕以查看:

  • 左側是實作文件,右側是測試文件。

  • 元件程式碼在上,樣式在下

  • API路由如上所示,資料庫模型如下。

使用編輯器群組和標籤頁管理:

  • 將常用文件固定,防止它們被關閉。

  • 根據文件情況使用垂直或水平分割(窄配置垂直分割,寬元件水平分割)。

  • 學會不用滑鼠切換標籤頁( Cmd/Ctrl + Tab

建立工作區專屬設定:不同專案有不同的需求。設定專案專屬設定:

  • 程式碼格式規則

  • 程式碼檢查配置

  • 自訂程式碼片段

  • 建構任務

  • 偵錯配置

第五級:真正重要的擴充和插件

請勿安裝 47 個會拖慢 IDE 速度的擴充功能。要精挑細選。以下是一些值得考慮的類別:

程式碼品質:

  • 儲存時執行的 Linter 和格式化工具(ESLint、Prettier)。

  • 進口組織者

  • 程式碼拼字檢查器(沒錯,真的需要-變數名稱拼字錯誤很尷尬)

生產力:

  • 用於編輯器內 Git blame 和歷史記錄的 GitLens 或類似工具

  • 括號對著色器

  • 路徑智慧感知功能提供導入建議

  • TODO 高亮顯示以追蹤技術債務

語言特定:

  • 任何能讓你的主要語言感覺像母語一樣的東西(例如 Tailwind IntelliSense、Python 擴充、Go 工具等)。

專業提示:在安裝擴充功能之前,請先檢查您的 IDE 是否已內建對應功能。許多人們為了使用擴充功能而安裝的功能,其實都是 IDE 原生自帶的,只要您知道去哪裡找。

刻意練習法

第一周:掌握文件導航。不使用滑鼠開啟文件,只使用鍵盤快捷鍵。

第二週:掌握文件內的程式碼導航。無需滾動即可跳到符號、定義和引用。

第三週:掌握多遊標編輯。探索其創新用法。編輯 JSON 設定。重命名模式。轉換資料結構。

第四周:掌握重構工具。安全地重命名函數。提取方法。在檔案之間移動程式碼。

第五週:掌握 Git 整合。暫存、提交、審查、解決-所有作業都無需離開 IDE。

第六週:掌握除錯技巧。設定斷點、檢查變數、單步執行程式碼、使用監視表達式。

每週專注於一個領域。六週後,你將成為IDE高手。

實際影響:

我分別在熟練 IDE 前後計時完成了一些常見任務:

  • 開啟特定檔案:8 秒 → 2 秒

  • 尋找函數呼叫位置:30 秒 → 3 秒

  • 跨檔案重新命名變數:3 分鐘 → 10 秒

  • 設定偵錯會話:2 分鐘 → 15 秒

這些改進可不是微不足道的。算算看:如果你每天重複這四項任務 10 次,就能省下 6 分鐘以上。每週 5 天,每年 50 週——光是這四項常見任務,每年就能節省 30 小時。

音樂家的心態

專業鋼琴家不會去想琴鍵在哪裡。他們的手指知道。他們思考的是音樂。

同樣,當你熟練了整合開發環境(IDE)後,你就會不再思考如何操作,而是完全專注於你正在建立的東西。工具彷彿消失了,你只需要盡情創作。

這並非關乎“打字速度”,而是關於消除你的想法與程式碼之間的摩擦。你的想法能夠直接從大腦流向螢幕,而不會被導航和編輯等機械步驟所阻礙。

從小處著手:今天選擇一個快捷方式。每次遇到類似情況時都刻意使用它。明天再增加一個。一個月後,你就能建立新的肌肉記憶。

身為開發者,你的整合開發環境(IDE)是最重要的工具。務必像對待職業發展一樣認真掌握它——因為從某種意義上說,它確實關乎你的職業生涯。

  1. 將與具體情境相關的工作集中處理:為每天設定主題,並為任務設定時間限制

你可能遇到過這樣的情況:上午 10 點,你正埋頭開發一個複雜的功能,進入了心流狀態,進展順利。這時,Slack 通知來了,有人需要程式碼審查。你切換到其他工作,花了 15 分鐘審查程式碼,然後回到你的功能開發。結果,你又花了 15 分鐘才想起來剛才在做什麼,在想什麼。就這樣,15 分鐘的干擾讓你白白浪費了 30 分鐘的高效能工作時間。

到下午5點,你已經寫完了程式碼,審核了三個PR,參加了兩個會議,回覆了十幾則Slack訊息,修復了一個生產環境的bug,也更新了一些文件。你忙了一整天。但是你早上10點開始做的那個功能呢?還沒完成。你在12件事上都取得了進展,卻一件也沒完成。

這就是情境切換的弊端。你的大腦不是電腦,你無法在不同的思考模式之間瞬間切換而毫髮無傷。每次切換都會產生「認知切換懲罰」——重新加載情境、回憶起之前所處的位置並回到正確的思維模式所需的時間。

解決方案:將類似的工作集中處理,並合理安排時間。

日間主題(大膽之選)

如果你對自己的時間安排有足夠的掌控權,不妨試著為每一天設定一個主題:

  • 星期一:規劃與架構。設計會議。技術規範編寫。全局思考。

  • 週二/週三:深度工作日。功能實現。複雜問題解決。極少會議。

  • 星期四:協作日。程式碼審查。結對程式設計。團隊討論。

  • 星期五:清理和學習。編寫文件。重構程式碼。學習新工具。計劃下週工作。

這聽起來很死板,但實際上卻無比輕鬆。週二到來時,你知道你會一整天都在寫程式碼。沒有不確定性,也沒有決策疲勞,不用糾結於優先處理哪些任務。你已經決定好了。

半天主題活動(更貼近現實)

無法掌控整天行程?那就試試主題半日遊吧!

  • 上午:深度工作。處理最耗費腦力的任務。不開會。不使用Slack。

  • 下午:團隊協作。會議、程式碼審查、討論、行政工作。

(對大多數人來說)早上大腦最清醒。利用這段時間進行需要深入思考的工作。把輕鬆的、更偏重社交的工作留到大腦比較遲鈍的時候做。

小時主題化(最小可行批次)

即使無法控制較大的區塊,也可以按小時進行批次處理:

上午9-10點:處理郵件和Slack訊息。一次處理所有事項,高效回复,然後關閉。

晚上10點到12點:專題通報工作。手機開啟飛航模式。 Slack設定為勿擾模式。全神貫注。

中午12點到下午1點:午餐和程式碼審查。集中審查所有待處理的程式碼,一次完成。

下午 1-2 點:會議(如無法避免)。

下午 2-4 點:專題報道,第二輪。

下午4-5點:總結。更新工單。寫每日筆記。計劃明天的工作。處理一些瑣碎的事情和雜務。

批量處理類似任務的魔力

程式碼審查:不要整天每隔兩小時審查一個 PR。集中 30-60 分鐘,一次檢視所有待處理的 PR。這樣可以讓你保持「審查模式」——進行批判性思考、尋找規律、檢查邊界情況。每次審查都會更快更好,因為你無需切換思維模式。

會議:盡量集中安排。連續不斷的會議雖然令人疲憊,但比起分散在一天中的會議,破壞性要小得多。一個3小時的集中會議可以讓你擁有5個小時不受干擾的時間。而六個30分鐘的會議如果分散在一天中,會嚴重影響你一整天的工作效率。

溝通:設定固定的時間段查看 Slack 和電子郵件,例如上午 9 點、中午 12 點和下午 4 點。在這些時間段之外,關閉這些應用程式。你不會錯過真正的緊急情況(人們會找到你),但可以避免持續不斷的干擾分散你的注意力。

小任務:列出一些需要快速處理的小任務(例如更新依賴項、修復拼字錯誤、進行小型重構)。將它們集中處理。每週花一到兩次,每次 30 分鐘來清理這個列表,而不是讓它們在一周內打斷你的工作流程。

學習:不要把學習時間分散到一週的各個角落。要安排專門的時間——例如週五下午或週二上午——專門用來探索新工具、閱讀文件、觀看教學課程或嘗試新技術。

如何保護您的大量時間

1. 明確設定工作界線:更新你的 Slack 狀態。 “🧠 中午之前深度工作。” 在日曆上標記出來。讓你的團隊明白某些時段是需要保護的。

2. 製造幹擾:關閉 Slack。關閉通知。把手機放在另一個房間。必要時使用網站攔截器。讓自己更難分心。

3. 主動溝通:告訴團隊你的程式碼審查工作安排。 「我會在下午 1 點和 4 點進行程式碼審查。如果很緊急,請直接聯絡我。否則,我會在下一個工作時段處理。」大多數人都會尊重明確的預期。

4. 追蹤並迭代:留意你最有效率的時間段。你是晨型人還是下午型人?什麼時候開會最讓你疲憊?什麼時候你能最專注地工作?根據你的自然節奏來安排工作,而不是按照你認為應該遵循的理想時間表。

複合效應

批量處理並非意味著在更短的時間內完成更多的工作,而是為了在減少精神疲勞的情況下完成更高品質的工作。

當你連續三個小時不間斷地寫程式碼時,你會達到一種深度和流暢度,這是六個30分鐘的片段無法實現的。你的腦海中會保留更多上下文資訊。你會發現平常容易忽略的聯繫和模式。你會寫出更好的程式碼。

當你進行大量程式碼審查時,你會開始注意到不同 PR 之間的一些模式。 「哦,三個人都犯了同樣的錯誤處理錯誤——我們應該更新文件。」只有當你連續快速地查看多個 PR 時,這種洞察力才會顯現出來。

從小處著手

你不需要明天就重新安排整週的計畫。選擇一種分批處理策略即可:

  • 將所有程式碼審查工作集中到兩個每日視窗進行。

  • 每天前兩個小時要留出來做深度工作。

  • 僅在預定時間查看 Slack

  • 週五下午的主題活動,作為學習/清潔時間

試試兩週,看看效果如何。然後再加入另一種批次處理策略。

你需要獲得的許可

你不需要經理批准就可以批量處理工作。你不是不負責任或故意刁難。你只是在策略性地利用你的注意力——你最寶貴、最有限的資源。

最優秀的開發者不會24小時在線。他們會慎重選擇何時在線上以及做什麼事。他們像保護稀缺資源一樣保護自己的專注力。大量處理是他們保持專注的方式。

  1. 利用人工智慧工具,但不要讓它們替你思考

我們必須正視一個顯而易見卻又難以啟齒的問題:人工智慧編碼助理已經從根本上改變了軟體開發。 GitHub Copilot、ChatGPT、Claude(嗨!)、Cursor 以及其他十幾種工具現在都能編寫大量的程式碼。忽視它們,就是在阻礙自己;過度依賴它們,會讓你自身所需的技能退化。

提高生產力的最佳方法:將人工智慧工具作為倍增器,而不是替代品。

人工智慧工具真正擅長的領域有哪些

消除樣板程式碼:需要一個具備標準 CRUD 操作的 REST API 端點?需要一個遵循通用模式的 React 元件?需要測試樣板程式碼? AI 工具在這方面表現出色。它們可以即時生成框架,而您只需自訂關鍵部分即可。

例子:

  • 你:“建立一個 React 元件,用於顯示用戶個人資料卡片,包含頭像、姓名、電子郵件和編輯按鈕”

  • AI:產生包含屬性、樣式鉤子等所有資訊的完整元件結構

  • 您:自訂樣式、新增特定業務邏輯、與您的狀態管理集成

節省時間:結構化階段 10-15 分鐘。耗時:個人化客製化階段 5 分鐘。淨收益:顯著。

解釋和文件:遇到不熟悉的程式碼?處理複雜的演算法?人工智慧工具可以用簡單易懂的語言解釋程式碼的運作機制。它們就像一位資深開發人員,全天候 24 小時線上解答「為什麼這個功能有效?」之類的問題。

除錯輔助:遇到錯誤卡住了?把錯誤訊息和相關上下文貼到人工智慧工具裡。它們通常能立即發現問題,或提出你沒想到的除錯策略。這就像用一隻會說話的橡皮鴨來除錯一樣。

程式碼轉換:需要將類別元件轉換為 Hooks?將回調重構為 async/await?將 TypeScript 轉換為 JavaScript? AI 工具可以即時且通常正確地處理這些機械轉換。

學習加速器:想了解新的框架? AI 工具可以產生範例程式碼、解釋概念並回答後續問題。這是能夠適應您學習風格的互動式文件。

哪些人工智慧工具在哪些方面有危險

架構決策:人工智慧工具會提出一些模式,但它們並不了解你係統的限制、團隊的慣例或長期的可維護性需求。它們提供的是“一個解決方案”,但不一定是“適合您的解決方案”。

安全關鍵型程式碼:人工智慧產生的身份驗證、授權、加密或資料驗證程式碼需要極其嚴格地審查。這些工具可以產生看似合理但存在不易察覺的安全漏洞的程式碼。

領域特定邏輯:您的業務規則、資料模型、獨特的邊界情況—AI 工具並不了解這些。它們會提供通用解決方案,而這些方案可能完全不適用於您的實際情況。

複雜的狀態管理:人工智慧工具難以處理複雜的狀態互動、競態條件和複雜的非同步流程。它們產生的程式碼在正常情況下運作良好,但在極端情況下則會出錯。

效能關鍵型程式碼: AI 產生的程式碼優先考慮正確性和清晰度,而非效能。如果您正在優化熱點路徑或處理大型資料集,則需要人工判斷演算法複雜度和最佳化策略。

如何有效率地使用人工智慧工具(框架)

1. 從人工智慧開始,最終形成思考:

讓 AI 生成初稿。然後逐行閱讀。理解每個部分。重構不符合你模式的部分。加入它遺漏的錯誤處理。考慮它沒有想到的極端情況。

永遠不要盲目接受系統產生的程式碼。要像程式碼審查一樣對待它:它提供了寶貴的參考訊息,但仍需要你的判斷。

2. 將人工智慧用於加速,而非替代:

❌ “請為我寫一個完整的用戶身份驗證功能”

✅ “產生 JWT 中介軟體函數的樣板程式碼”

第一種方法放棄了思考。第二種方法節省了機械工作的時間,同時保留了你對建築設計的控制權。

3. 提供背景訊息,才能獲得更好的結果:

不要只貼程式碼就尋求幫助,請解釋清楚:

  • 你想要達成的目標

  • 你已經嘗試過的方法

  • 你受到哪些限制?

  • 你的程式碼庫使用了哪些模式?

輸入越好,輸出越好。

4. 核實所有資訊:

執行程式碼。測試程式碼。閱讀程式碼。理解程式碼。不要發布你沒有完全理解的AI生成的程式碼。那就像埋下了一顆不定時炸彈,遲早會埋下漏洞(或安全隱患)。

5. 利用人工智慧進行學習,而不是跳過學習:

當人工智慧產生你看不懂的程式碼時,請它解釋。把它當作教學工具。不要讓它造成知識鴻溝。

實際應用

場景 1:新功能實現

  1. 利用人工智慧產生初始結構和樣板

  2. 自己寫測驗(這會迫使你認真思考需求)。

  3. 自行實現核心業務邏輯

  4. 利用人工智慧輔助處理錯誤、驗證和處理極端情況

  5. 在做出決定之前,務必對所有事項進行嚴格審查。

場景二:除錯

  1. 嘗試自己花15分鐘解決它(努力的過程有助於理解)。

  2. 如果遇到困難,請結合上下文向人工智慧工具解釋問題。

  3. 對其建議進行批判性評估

  4. 自行實施該解決方案

  5. 了解它為何有效

場景 3:程式碼審查

  1. 請先自行審閱公關稿。

  2. 利用人工智慧發現你可能忽略的問題(安全問題、極端情況、效能問題)

  3. 在反饋中結合人類和人工智慧的見解

  4. 永遠不要將你的判斷權外包給人工智慧

技能培養的平衡

悖論在於:人工智慧工具既可以提升你的開發能力,也可以降低你的開發能力,這取決於你如何使用它們。

善用人工智慧:您可以學習得更快,發現更多模式,探索更多解決方案,並將時間集中在更高層次的思考上。

人工智慧使用不當:你會產生依賴性,喪失基本技能,不理解自己的程式碼,沒有這個工具就無法運作。

測試:你不用人工智慧也能解決問題嗎?如果不能,表示你過度依賴人工智慧了。在掌握解決問題的規律之前,減少在類似問題上使用人工智慧。

我的個人規則

  1. AI 產生程式碼,我進行驗證和自訂:絕不在不理解和修改的情況下發布生成的程式碼。

  2. 我寫測驗:測驗能促使我們理解。如果讓 AI 來寫測試,我可能就會逃避認真思考需求。

  3. 所有架構決策都由我做出:人工智慧可以提出建議,但我會根據它所不具備的系統知識來做決定。

  4. 我先進行除錯:在向人工智慧求助之前,給自己 15-30 分鐘的時間。學習正是在解決問題的過程中所發生的。

  5. 我質疑一切:人工智慧即使犯錯也自信滿滿。信任,但要核實。

值得一試的工具

  • GitHub Copilot:內嵌程式碼補全。非常適合樣板程式碼和模式編寫。

  • Cursor:整合了人工智慧的 IDE,擅長提供程式碼庫感知建議。

  • ChatGPT/Claude:提供對話式協助,用於解釋和除錯。

  • Tabnine: Copilot 的替代方案,注重隱私。

選擇一個,精通它,了解它的優點和缺點。不要收集六個人工智慧工具卻一個都沒用好。

面向未來的方法

人工智慧工具會越來越好,它們會編寫更多程式碼,但它們無法取代軟體開發中的思考環節——理解需求、權衡取捨、設計系統、考慮可維護性以及運用判斷力。

專注於培養不可取代的技能:

  • 系統設計思維

  • 偵錯方法

  • 程式碼審查判斷

  • 建築決策

  • 領域知識

  • 溝通與協作

這些技能是人工智慧工具可以增強但無法取代的。真正成功的開發者並非那些最擅長運用人工智慧的人,而是那些能夠利用人工智慧更快地完成機械性任務,同時在策略性任務上保持敏銳判斷力的人。

使用人工智慧工具,擁抱它們,但永遠不要停止思考。生產力的提升來自於人類智慧與機器速度的協作,而不是將責任拱手讓給機器。


整合所有要素

關於生產力,沒人會告訴你的是:關鍵不在於做多少事,而是以更少的阻力做對的事。

這篇文章中提到的所有技巧,其實都是為了減少摩擦:

  • 雙航站樓規則消除了導航摩擦

  • 時間盒法消除了決策摩擦

  • 15分鐘法則消除了起步摩擦。

  • 文件優先的模式消除了設計阻力。

  • 兩分鐘法則消除了審查阻力

  • 自動化消除了重複性摩擦

  • 每日站會消除溝通障礙

  • 熟練 IDE 可以消除工具使用阻力

  • 批量處理消除了上下文切換的摩擦。

  • 人工智慧工具消除了繁瑣的摩擦

提高效率的關鍵不在於更努力或更快工作,而是建立良好的工作環境,讓正確的事情變得容易,讓錯誤的事情變得困難。

注意所有這些技巧的共同點:它們並非關乎單純的自律或意志力,而是系統,是結構。它們將良好的意願轉化為自動化的行為。

你不需要明天就全部採用這十個技巧。那樣只會讓你不知所措,最終放棄。選擇兩個吧。選擇那些最能引起你共鳴的,能夠解決你目前最大的痛點。

付諸實踐。給它們兩週時間養成習慣。注意觀察變化-不僅是你的工作效率,還有一天結束時的感受。你是否感覺不那麼疲憊了?更滿意了?工作效率更高了?

然後再回來再增加另一個破解程式。

六個月後,你將建立起一套不斷累積提升的個人效率系統。每一次改進都會讓下一次改進更加輕鬆。摩擦減少,效率提升,工作也變得更永續。

我向你們提出這個挑戰:

明天早上,在你寫任何一行程式碼之前:

  1. 寫下你的每日站會筆記(3 個要點,5 分鐘)

  2. 如果還沒有兩個終端窗口,請先設定一個。

  3. 將一個鍵盤快速鍵加入你的肌肉記憶中

  4. 在著手處理你一直在逃避的任務之前,先設定一個15分鐘的計時器。

四個小步驟,總共三十分鐘,就能徹底改變你的工作方式。

最優秀的開發者並非擁有魔法。他們並非天生就具有超強的專注力或完美的時間管理能力。他們只是系統性地消除了意圖與行動之間的摩擦。

你也可以。

現在關掉這個標籤頁,打開你的編輯器,去創作一些很棒的作品吧。你現在擁有更好的工具了。

程式碼不會自己產生——但有了這些技巧,你會驚訝地發現編寫程式碼變得多麼容易。

祝您程式愉快! 🚀


原文出處:https://dev.to/thebitforge/top-10-productivity-hacks-every-developer-should-know-151h


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝17   💬10   ❤️5
430
🥈
我愛JS
📝2   💬8   ❤️4
92
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付