

大概十年前,我開始寫程式。
在那之前,我就很喜歡寫小說。
現在回過頭去理解自己愛上寫程式的過程,其實就是發掘一種更簡單、更直接就能用寫作影響世界的方式。寫程式就是寫作,同樣是依靠著文字與某些邏輯的輸入,輸出成一個使用者體驗。
只不過寫程式寫的是機器語言,使用者體驗就是人機互動。
寫小說寫的則是更複雜的人類語言,而使用者體驗取決於作者本身對於角色、劇情、情緒的轉化技巧,還有故事本身與每個讀者的共鳴度。
去年理解到這兩門技藝 (Craft) 的共同點後,我花了很多時間去沈澱,思考有什麼是我從寫程式裡學到,可以應用在寫作上;或者,反過來是從寫作上學到,能夠在工作上幫助我成為一名更好的軟體工程師的事情——
所有事情都做得到。可是,不是所有事情都值得做。
It’s just code. Everything’s possible.
當我在公司實習時,我記得我的 Tech lead 在規劃某個專案時,對 PM 說了這麼一句話,意思是要 PM 不要廢話,只要告訴他要什麼功能,他就會負責幹出來。
我當時覺得帥呆了,覺得我以後一定也要變成這麼屌的工程師。
轉正後的前三年,我也這麼幹了(至少,我盡力這麼做XD)。
但很快地,我在第四年遇到瓶頸。
那句我曾嚮往的話語變成詛咒。
我太喜歡寫程式了,只要讓我寫程式,我可以選擇性不管寫的程式到底重不重要。
這有點像是我去年寫《盜火戰記》時的困境,我很喜歡寫作,很享受進到心流的工作狀態,所以總告訴自己「寫就對了」。但寫著寫著,總會意識到故事的發展不對,角色的動機不對,該鋪陳的伏筆沒有交代清楚。打個比方,我也許可以很快寫出一個 A.I. 末日的故事,但要是它沒有任何亮點,那就不會有人想讀,那麼寫得再快、再多也沒有意義。
後來,在讀過一些寫作的方法論(尤其是 Brandon Sanderson 的寫作課)過後,我更加理解動筆之前的規劃,還有寫大綱的重要性。同樣地,OpenAI CEO Sam Altman 也在 How to be successful 這篇部落格也提過類似的觀點,只不過是應用在創業與工作上:
Almost everyone I’ve ever met would be well-served by spending more time thinking about what to focus on. It is much more important to work on the right thing than it is to work many hours.
尤其在 A.I. 開始取代人類工程師(而我只會變老,寫得越來越慢)的時候,我想,我需要的是提升自己的腦袋輸出,而非手指在鍵盤上的輸出。
寫作的 “Code Review”:回饋是一份禮物。
這是我寫程式上早就習以為常,但是寫作上還需要常提醒自己的一件事。
回饋真的是一份禮物。
我們工程師很習慣每天發 PR 給別人做 code review,或者 review 別人的 PR,也覺得這再正常不過了。我甚至很喜歡得到別人的回饋。畢竟,讓真正懂一個 codebase 的專家來教我該怎麼做更好,能夠大大提升效率。我也很喜歡給予別人回饋,除了可以保障 codebase 不會被人弄壞之外,有時候讀別人的 code 讀著讀著也能學到一些小撇步。
但不知道為什麼,同樣的邏輯,把自己剛寫完的草稿給別人看就顯得赤裸,顯得可怕。
很慶幸去年底加入 Write of Passage 後,開始慢慢調整這個心態,喜歡上跟專業的編輯們合作、跟其他學員們一起互相交換草稿、開著視訊討論彼此的文章可以怎麼進步(好奇的話,我英文部落格裡面有總結參加 WoP 的心得)。
現在, WoP 結束了,我還是想要持續提醒自己這點。
回饋是一份禮物,別太保護自己寫出來的作品。況且,初稿也不該是終點,反而應該是起點。在刪除贅字、修改錯誤、調整邏輯脈絡過後的第二版、第三版才是我的作品該有的模樣。
Stephen King 在他的自傳 On Writing 裡是這麼說的:
Kill your darlings, kill your darlings, even when it breaks your egocentric little scribbler’s heart, kill your darlings
認清自己究竟是創作者,還是管理者?
過去幾年,我常被給予這種建議:「你可以試著成長為一個 PM。」
或者,「你可以試著把更多的工作交給下面的新人。」
老實說,我試過幾次,但發現我並不喜歡(至少,在矽谷的龐大企業組織裡面不喜歡)。
而且,還有另一個問題⋯⋯我太愛寫程式了XD
寫程式對我來說就是一種玩樂。當我能夠把工作當作一種玩樂的時候,我的輸出可以爆表,可以做到別人無法做到的事情,也因此會有成就感,也因為有成就感,就能把工作做得更好。基本上,就是一個正向循環。但是,每次我試著將這些對我來說有趣、有挑戰性的工作外包給新人,然後去做一些所謂「規劃」、「合作」、「說服」、「討論」的工作的時候,我就開始缺乏動力,降低產能,然後懷疑自己的能力。
以寫作來舉例,這就像是沒有人會跟 Brandon Sanderson 說:「嘿,你寫得太好了。現在,你應該要試著成長為一個責任編輯,幫助新的作者寫出更好的故事。」
如果他感興趣就算了,但如果他不感興趣,那豈不是很浪費他的能力?
我不覺得我寫程式有好到山神寫作的那種程度,所以也不會說死埋頭寫程式一輩子是我所想要的。但這確確實實,也是我過去一年一直在反思的一件事。
工程師 PM、Tech Lead 這條路真的適合我嗎?
也許未來的某一天,這個答案還會變吧。但今天我依然是對此有所質疑的。
我想,我想要找到的是一條我有成就感,又能持續進步的道路。
休息是必要的。
我想再次回到這點:寫程式跟寫作像極了,其實都是一種創意導向的技藝。
而只要是創意導向的創作,一顆能夠正常運轉的腦袋都是必須的。
也就是說,休息是必要的。
整個 2024 年,我都告訴自己每天至少都要寫一點點。於是,每天下班後,不管再怎麼累,我都要求自己打開《盜火戰記》的文檔,打上個那麼幾句。前半年我自認「很有產能」,但漸漸地,這導致我疲倦,導致我寫出來的東西品質越來越低。
越來越進入那種 auto-pilot、會寫出最沒亮點的 A.I. 末日故事的那種狀態。
今年,我把整整六萬字砍掉重來,加上做了一些改變:規定每天休息的時間,早睡早起,建立寫作前冥想的習慣等等。我自認目前寫作的狀態好上不少,去年一整年寫了六萬字,今年的一月已經寫了一萬三千字。新版的《盜火戰記》也很快會重新與大家見面。
同樣的道理應用在工作上,我回過頭看,去年的很多瓶頸也來源自腦袋不清楚,社交的能量不足以支撐自己去與別人合作(或是,吵架)。所以今年開始,我嘗試在中午吃完飯後,別急著回座位上寫程式,而是在草皮上散個步,放空腦袋,簡單地冥想看看。
目前為止,似乎是有些好轉的,我也希望能夠持續下去。