前言

身為一個白天寫後端、晚上搞創意編程的工程師,我最常被問的問題就是:「你哪來的時間?」

坦白說,我的時間跟大家一樣多。我不是那種每天只睡四小時的超人,我也需要追劇、耍廢、跟朋友吃飯。但我確實同時維持著好幾個 side project——p5.js 創作、雷射雕刻實驗、這個部落格、偶爾還有 open source 的貢獻。

這篇文章想分享我在這幾年摸索出來的 side project 管理心法。不是那種「成功學」式的雞湯,而是一個普通工程師如何在有限的時間和精力裡,持續做自己喜歡的事。


第一課:選擇比努力重要

不是所有想法都值得做

工程師最不缺的就是 idea。每天上班途中、洗澡的時候、睡前滑手機的時候,腦袋裡會冒出各種「啊,這個可以做成 side project!」的想法。

但是,每一個你選擇做的專案,都代表你放棄了其他專案的時間。這是殘酷的現實。

我現在的做法是維持一個「想法清單」,但不會馬上動手做。過了一到兩週,如果這個想法還是讓我興奮,我才會認真評估。

我的篩選標準

一個值得做的 side project 至少要符合其中兩項:

[x] 我會學到新東西(學習價值) [x] 做出來會讓我開心(情感價值) [x] 可以放進作品集或部落格(展示價值) [x] 可能對其他人有用(社群價值) [ ] 可以賺錢(商業價值) ← 這個是 bonus,不是必要條件

注意最後一項。如果你做 side project 的主要動機是賺錢,那你很可能會失望然後放棄。因為大部分 side project 不會賺錢,至少短期不會。把它當成投資自己比較健康。

規模控制

Side project 最大的殺手是範圍膨脹(scope creep)。一個週末能做完的小玩具,因為不斷加功能,變成一個永遠完成不了的大怪獸。

我的原則:

  • 一個 side project 的第一版,應該能在 2-4 週的業餘時間內完成
  • 如果估計需要更久,那就砍功能,不是加時間
  • 「能 demo」比「功能完整」重要一百倍
好的第一版:
"用 p5.js 做一個流場粒子效果,可以用滑鼠互動"

不好的第一版: "用 p5.js 做一個完整的粒子系統框架,支援多種力場、 可匯出 GIF/MP4、有即時參數調整 UI、支援手機觸控..."


第二課:時間管理的實際策略

找到你的「黃金時段」

不是所有的時間都適合做 side project。你需要找到自己精力最好的時段:

  • 有些人是早晨型:上班前的 6:00-7:30
  • 有些人是夜貓型:下班後的 21:00-23:00
  • 有些人是週末戰士:週六日集中做

我自己是夜貓型。白天上班已經消耗了大量的「決策能量」,下班後我需要先放空一小時(吃飯、散步、看 YouTube),等大腦切換模式後,大約九點開始進入狀態,寫到十一點左右。

時間切片法

不要想著「今天晚上要做 side project」這麼模糊的計畫。把時間切成明確的區塊:

週一、三、五晚上 → 程式藝術創作(p5.js / GLSL)
週二、四晚上     → 自由時間(追劇、社交、耍廢)
週六上午        → 部落格寫作
週六下午        → 雷射雕刻 / maker 相關
週日            → 完全休息

重點是有固定的節奏。不是每天都做,但每週都做。就像運動一樣,固定的頻率比偶爾的爆發更有效。

兩分鐘原則

有時候下班回家真的很累,一點都不想打開電腦。這時候我用「兩分鐘原則」:

告訴自己:我只做兩分鐘就好。打開檔案,看一下上次做到哪裡,改一行 code 就好。

神奇的是,大部分時候一旦開始了,你會發現「既然都打開了,那就多做一點吧」,然後不知不覺就做了一小時。

但如果兩分鐘後真的還是不想做,那就關掉去休息。不要有罪惡感。Side project 是為了快樂,不是為了壓力。


第三課:動力維持

可見的進度

人的大腦需要正回饋才能持續投入。Side project 最容易放棄的時候,是做了很多但看不到成果的階段。

我的對策:

1. 每次工作結束前,留一個「簡單的下一步」

// 今天做到這裡,明天要做的事:
// TODO: 加上滑鼠互動 — 移到這裡只需要加 mouseX, mouseY
// 這樣明天打開就知道從哪裡開始,而且很快能看到結果

2. 定期截圖和錄影

我會把每次的進度截圖存起來。回頭看從第一版到現在的變化,會很有成就感:

progress/
├── 2026-01-15_初版.png
├── 2026-01-22_加了顏色.png
├── 2026-02-01_加了互動.png
└── 2026-02-10_最終版.mp4

3. 分享半成品

不要等到「完成」才分享。在 Twitter/X 或 Open Processing 上分享 WIP(Work in Progress),社群的回饋會給你動力繼續。

跟人一起做

獨自做 side project 很容易懈怠。找個同好一起做,互相督促。不一定要做同一個專案,只要有人可以分享進度就好。

我參加過:

  • iT 邦幫忙鐵人賽:連續 30 天發技術文章的挑戰,逼自己產出
  • Creative Coding 社群:在 Discord 上跟其他創作者交流
  • Maker Space:實體空間,跟其他 maker 一起工作

允許自己暫停

有時候就是沒有動力,或是生活有其他優先事項。這時候暫停 side project 是完全合理的

我的原則是:暫停可以,但要做一個「暫停交接」——寫一段筆記,記錄目前的進度、遇到的問題、下次要做什麼。這樣幾週後回來,不會完全忘記之前在做什麼。

## 暫停紀錄 2026-02-20

目前進度

  • 基本的粒子系統完成
  • 流場用 Perlin noise 產生

遇到的問題

  • 粒子數量超過 5000 就掉幀
  • 考慮改用 WebGL 或 OffscreenCanvas

下次要做

  • 試試用 instanced rendering 優化效能
  • 加上顏色映射(根據速度變色)

第四課:完成 vs 完美

80% 就夠了

Side project 不是工作交付物。沒有 PM 在催你、沒有客戶在等你、沒有 code review 要過。

這是好事也是壞事。好處是你可以自由探索;壞處是沒有外力幫你「結案」

很多 side project 死在「最後 20%」:

進度 0-80%:好好玩!好有成就感!
進度 80-95%:嗯,剩下的都是瑣碎的事(文件、edge case、UI 細節)
進度 95-100%:我不想做了,開新專案比較好玩...

我的解法:重新定義「完成」

對 side project 來說,「完成」不等於「完美」。以下這些都算「完成」:

  • 寫了一篇文章記錄你學到的東西
  • 在 Open Processing 上發布了作品(即使不完美)
  • 做出了一個 MVP 並且 demo 給朋友看
  • 把程式碼推到 GitHub 上

一鳥在手

完成一個 70% 的專案 >>> 同時進行五個 20% 的專案

我會盡量控制自己同時進行的 side project 不超過兩個。一個是「主要專案」(投入比較多時間),一個是「輕鬆專案」(偶爾玩玩的小實驗)。


第五課:把 side project 變成習慣

習慣堆疊

把 side project 接在一個既有的習慣後面:

既有習慣:晚餐後泡一杯咖啡
新習慣:泡完咖啡 → 打開 VS Code → 做 30 分鐘 side project

久了以後,你的大腦會自動把「泡咖啡」和「做 side project」連結在一起。

降低啟動摩擦

每次開始工作前如果要花五分鐘找檔案、開工具、回憶上次做到哪裡,你就會傾向不開始。

我的做法:

  • 工作結束時不關閉編輯器和瀏覽器,讓它們保持在上次的狀態
  • 終端機保持在專案目錄
  • 桌面上放一個快捷方式或腳本,一鍵啟動開發環境
#!/bin/bash
# start-creative.sh — 一鍵啟動創意編程環境
open -a "Visual Studio Code" ~/projects/creative-coding/current
open http://localhost:3000  # p5.js 的 live server
echo "Ready to create! 🎨"

紀錄你的旅程

最後一個建議:寫部落格(或任何形式的紀錄)

寫文章的過程會幫助你整理思路、深化理解。而且幾年後回頭看,你會很慶幸當初有記錄下來。我現在回頭看一年前的文章,常常會覺得「啊,原來我那時候在煩惱這個啊」,有一種看成長日記的感覺。

這也是為什麼我堅持自架部落格的原因——它本身就是一個永遠不會完成的 side project,而且是最有價值的那一個。


我目前的 Side Project 生態系

分享一下我現在的狀態,讓大家有個參考:

| 專案 | 狀態 | 每週投入 | 類型 |
|——|——|———|——|
| 部落格(本站) | 持續進行 | 3-4 小時 | 寫作 + 維護 |
| p5.js 作品 | 持續進行 | 2-3 小時 | 創意編程 |
| 雷射雕刻實驗 | 不定期 | 0-3 小時 | Maker |
| GLSL 學習 | 暫停中 | 0 小時 | 學習 |
| Open Source PR | 偶爾 | 0-1 小時 | 貢獻 |

總計大約每週 6-10 小時。不多,但持續了一年多。


小結

Side project 管理的核心其實很簡單:

  1. 選擇:不要什麼都做,挑最讓你興奮的
  2. 節奏:固定時間、固定頻率,形成習慣
  3. 進度:讓自己看到進展,維持動力
  4. 完成:80% 就好,完成比完美重要
  5. 快樂:如果不好玩了,暫停或放棄都沒關係

Side project 不是第二份工作。它是你的遊樂場、你的實驗室、你的花田。讓它保持有趣,比讓它完美重要得多。

延伸閱讀