寫作吧,菜鳥工程師!(上)
很多工程師聽到「寫文章」這三個字,第一個反應可能是...
- 「我文筆很爛。」
- 「我沒什麼東西好寫的。」
- 「我那麼菜,寫出來會被笑。」
這些想法其實很正常。大多數人從小到大接受的教育,都沒有鼓勵我們做這件事...喔,有啦,學生時期偶爾會被老師要求寫作文,但那種「寫作」通常是為了應付考試,重點在於文筆、修辭、字數,而不是內容本身。
但仔細想想,我們每天其實都在寫東西。寫 commit message、寫 PR 說明、寫文件、在 Discord 上回答問題、在 issue 裡解釋 bug,這些其實都是寫作的一種形式。甚至我也常在社群平台上看大家長篇大論地解釋某個技術觀念(或跟人吵架),這些文字雖然零散,但本質上也是一種寫作,只是我們沒有把它當作「寫文章」而已。
把這些零散的文字,整理成一篇文章,其實沒有想像中那麼遙遠。而且工程師寫技術文章,真的不太需要什麼文學造詣。我們不是在寫小說,也不是在投稿文學獎。我們只是在把一件事情講清楚,照理說這應該是工程師最擅長的事情之一(吧?)。
舒適圈超爽的!
長輩都跟我們說要跳出舒適圈,多嘗試新事物才會成長。但說實話,待在舒適圈超爽的,幹嘛跳出來。每天上班寫 code,下班滑手機追劇,打打遊戲,日子過得挺好的,幹嘛沒事找事做?寫文章又沒人逼,公司也沒規定要做,為什麼要自找麻煩?
簡單的說,就是你想不想再變得更厲害一點。有寫過文章的人就知道那個過程有多煩,我們得把腦袋裡模糊的東西抽出來,整理成別人看得懂的文字。寫到一半常常發現,有些東西自己以為懂了,結果根本講不清楚,只好摸摸鼻子回去查資料、重新理解。
離開舒適圈一定會覺得不太舒服、有點煩,或是偶爾想放棄。但寫完的那一刻,我不會說什麼「成就感讓人上癮」這種話。我只會想:「終於寫完了,可以去打我的魔物獵人了。」
要不要發到網路上給別人看是一回事,但我相信再回頭看,你會發現自己對那個主題的理解比之前深很多。
真的懂了嗎?
我偶爾在網路上聽到某些人對某個技術「很熟」。用了幾年的框架、寫了幾萬行的程式碼,應該夠熟了吧?事實上「熟」跟「真的懂」是兩回事。 愛因斯坦可能曾講過:
If you can't explain it simply, you don't understand it well enough.
如果你不能清楚解釋一件事,那代表你根本不懂它。
在工作中用某個技術,用到後來好像也挺順手的,但那種順手很多時候只是肌肉記憶。真的有人問起「這東西為什麼要這樣設計?」或「這兩個做法差在哪?」的時候,常常會發現自己支支吾吾講不出來,更糟的是像 AI 的幻覺一樣亂講一通。
寫作就是逼自己把這些模糊地帶攤開來檢視。
因為要寫給別人看,我們沒辦法用「反正就是這樣」一句話帶過。寫的時候可以假設讀者什麼都不知道,要把每一步都解釋清楚,在腦中模擬他們可能的疑問然後逐一回答。這個過程會逼我們去查文件、看原始碼、做實驗,把那些原本似懂非懂的環節搞清楚。
每次寫完一篇文章,我都會想:「原來我之前根本沒真的懂。」,大家以為我寫了《為你自己學 Git》這本書所以一定是對 Git 很熟,但事實上我原本可能對 Git 就只有 60 分的勉強及格程度。為了寫這本書,不得不去翻更多的資料,最終大家看到現在的我好像對 Git 很熟,其實就是因為寫作的過程讓我把那些模糊地帶都釐清了。
這種成長感,是待在舒適小圈圈裡不容易體驗到的。
免費的審查
把文章發出去之後,如果寫錯了什麼,說不定會有人跳出來指正。有些時候語氣客氣,有時候沒那麼客氣,但不管怎樣,我們等於得到了免費的技術審查。想像一下,如果這些錯誤是藏在程式碼裡,可能要等到系統炸掉才會被發現。但因為寫成了文章發出去,有人在我們還沒踩到雷之前就幫忙指出問題了。嘿嘿,這不就是免費的 code review 嗎?
很多時候,這些留言會帶來完全沒想過的觀點。「你寫的這個方法可以用,但其實還有另一種做法更有效率......」這種留言,根本就是在幫我們免費上課。剛開始可能會覺得被糾正很丟臉,但換個角度想,被糾正總比一直錯下去好。這些陌生人願意花時間幫忙找問題,其實都應該感謝他們,說不定還能因為這樣交到新朋友。
履歷上的「熟悉」
假設你是面試官,面前有兩份履歷:
- 「熟悉 React、Node.js、Docker。」
- 「熟悉 React。曾參加 iThome 鐵人賽撰寫 React Server Components 系列文章,完賽並獲得佳作。」
你會對哪一份更有興趣?
「熟悉」這個詞實在太模糊了,每個人對熟悉的定義都不一樣而且都隨便人家講,有人用過一次就說熟悉,有人鑽研數年也只說略懂略懂,我的熟悉不等於你的熟悉。但如果能寫出幾篇關於某個技術的文章,代表真的花時間理解過這個東西,而且能把它解釋清楚。
寫文章是一種很難造假的證明。你說用 AI 生成很快?是啦,不過先不論文章裡的 AI 機味,文章裡的實戰經驗、踩過的坑、解決問題的過程,目前 AI 可能還沒辦法幫你寫出來。寫文章不是唯一建立個人品牌的方式,但它可能是門檻最低的一種。不需要任何人允許,不需要任何人推薦,今天就可以開始。
AI 時代,寫作反而更重要
有人可能會認為「現在 AI 都可以寫文章了,還需要自己寫嗎?」
正因為 AI 可以在幾秒鐘內產出一篇看起來還行的文章,網路上充斥著越來越多「正確但沒有靈魂」的內容。這些文章讀起來都差不多,結構工整、用詞精準,但就是少了點真實經驗,少了踩過的坑,少了那些「我當初也是這樣卡住」的共鳴。相信我,讀者的眼睛不一定都是雪亮的,但還是能感覺得出來的。AI 生成的內容讀多了,大家都開始能分辨什麼是罐頭文章、什麼是真人寫的,在一片 AI 生成的噪音中,一篇有血有肉的真實經驗分享,反而更容易被看見。
AI 可以告訴你 `git rebase` 的定義和用法,但它沒辦法告訴你「凌晨三點因為搞錯 rebase 把同事的 code 蓋掉,被罵到臭頭」的故事。這種真實經驗是無法偽造的,也是讀者真正想看的。
與其擔心 AI 會取代寫作,不如想在這 AI 時代,能寫出獨特觀點的人變得更稀缺了。所以:
這是一個該開始寫作的理由,不是停止的理由。
你寫的文章可能被 Google 收錄,每天都有陌生人搜尋到。可能被轉貼到 PTT、Threads 或是臉書社團,或是被某個大公司的資深工程師轉貼到公司的 Slack / Discord 群組給公司的新人。
我們睡覺的時候,文章在幫我們打知名度。
有人在找解決方案的時候,文章可能正在幫我們建立專業形象。
在面試的時候,自己寫的文章正在幫自己加分。
更有趣的是,有時候連自己都會被自己幫到。我有過好幾次這種經驗:在網路上搜尋某個問題,點進去一看,咦,這篇文章怎麼有點眼熟?仔細一看作者,原來是自己幾年前寫的。當下那種感覺很奇妙,像是過去的自己穿越時空來幫現在的自己一樣。
寫文章真的是最划算的投資,可能沒有之一。
那些我們告訴自己的藉口
讀到這裡,也許已經有一點被說服了。但就算決定要開始寫,馬上就會遇到下一個問題:要寫什麼?
在討論可以寫什麼之前,我們得先面對一個現實,就是人類非常擅長找藉口。這不是批評,這就是正常的人類。寫作這件事本身就有點可怕,從小受的教育會讓我們的腦袋想辦法讓我們逃避這件事。
所以說好的藉口呢?
「我的文筆不好」
唉呀,技術文章根本不需要那種東西。技術文章的重點是把事情講清楚,又不是參加作文比賽。沒有人期待你寫出莎士比亞或倚天屠龍記,他們只是想知道怎麼解決那個該死的 bug,或是想聽聽你對某個技術的看法。寫作不需要太多天賦,寫作是一種技能,可以透過練習慢慢變好的東西,只要練習就會看到進步。
「我沒時間。」
這個藉口聽起來最合理,但真的沒時間嗎?你都有空滑脆、滑 IG 了,如果能從這些時間裡擠出一點點來寫作不就有時間了嗎?寫作不一定要一次就寫完,可以利用零碎的時間。通勤的時候在手機上記下靈感、午休的時候寫個開頭、睡前花十五分鐘整理一下思緒,或是不方便打字就用語音備忘錄錄下來,回家再整理成文字。重點是把寫作這件事排進優先順序裡,而不是等到「有空」才做,因為我們永遠不會「有空」。
「我的專案還沒完成,等做完再來寫。」
這是一個很完美的拖延策略,因為專案永遠不會真正「完成」。總是有新的功能要加、有 bug 要修、有重構要做。如果等專案完成才寫,那永遠不會開始寫。而且,進行中的經驗其實是最鮮明的,趁現在還記得那些細節、踩過什麼坑、當初為什麼做這個決定,現在不寫下來,等專案結束這些細節都會模糊掉。
「這不是什麼新東西,網路上已經有很多文章了。」
我想寫 Vue 的教學,但網路上已經有一大堆了,而且很多大神都寫過...所以,別人寫過就不能再寫 Vue 相關的文章嗎?不是這樣的。同一個主題可以有不同的角度,也許因為背景相似、思考方式接近,我們的解釋方式剛好對某些人特別有用。有時候官方文件看不懂,某個不知名部落客的文章反而讓我突然開竅。就算是老生常談的主題,例如這一篇文章就是(你有發現嗎?),只要我們能帶來新的觀點、新的經驗,或是用更簡單易懂的方式解釋,它就值得被寫出來。
「我沒什麼有料的東西可以寫。」
這是冒牌者症候群在作祟,我們總覺得自己知道的東西都很普通,沒什麼特別的。這是因為對我們自己來說,這些東西確實已經變得理所當然了。我們可能忘記了一年前的自己不會這些東西,忘記了現在正有人處在我們一年前的階段。對我們來說理所當然的事,對三個月前開始學程式的人來說可能是天書。還是你覺得我這篇文章有什麼特別厲害的地方嗎?沒有吧?但我相信對剛開始想寫文章的人來說,這篇文章或多或少能幫到他們。
找題目其實沒那麼難
所以,我們可以寫什麼?
找題目其實不難,問自己三個問題就好。
先問自己最近被什麼東西搞到快崩潰?什麼東西讓我們痛苦了很久才搞懂?這類題材的文章通常最受歡迎,因為如果我們痛苦過,代表別人也會痛苦。花了三天才搞懂的東西,寫成文章可能幫別人省下三天。踩坑文特別受歡迎,大家都愛看別人踩坑,一方面是有種「原來不是只有我這麼笨」的安慰,一方面是可以學到怎麼避開這些坑。
或是最近解決了什麼讓自己覺得開心的問題?不用是什麼驚天動地的大事。也許解決了一個困擾很久的 bug,也許終於把那個功能實作出來了,也許成功把某個程序的執行時間從三秒降到一秒。這些「小確幸」都是很好的題材。可以分享怎麼發現問題、怎麼思考、怎麼解決。對我們來說可能只是日常工作的一部分,但對讀者來說是一個真實的案例,比理論文章更有價值。
還是最近在玩什麼新東西?週末會玩什麼新技術?有沒有什麼 side project 正在做?有沒有什麼領域特別有興趣,會主動去研究?寫有熱情的東西,寫起來會比較開心,文章也會比較有生命力,讀者是感受得到的。
用這三個問題來檢視自己最近的生活,通常都能找到可以寫的題材。
寫什麼都可以,重點是開始
總之,不要想太多,先寫就對了。
選題目沒有標準答案。別人覺得有趣的題目我們可能覺得無聊,我們覺得精彩的題目別人可能沒興趣。這都沒關係。重要的是開始寫了,就會開始累積了。
第一篇文章可能沒人看,第二篇可能也沒人看。但只要持續寫下去,總會有一篇觸及到某些人。而且在這個過程中,會越寫越順、越來越知道自己適合寫什麼、讀者喜歡什麼。不用希望一開始就寫出完美的文章,只需要開始。
然後呢?知道要寫什麼之後,對著空白頁面發呆,還是寫不出來啊...
別擔心,下一篇文章我們來講講怎麼真正開始動筆(更精準的講是動鍵盤),還有一些讓寫作過程可能不會那麼痛苦的小技巧。