我該不該寫?——"Writing for Developers" 閱讀筆記,你現在需要的是理由

前言

這篇是 “Writing for Developers” 一書的內容分享暨自用筆記。

雖然書名只提到寫作與開發者,但在讀完整本書以後,我認為這是一本教讀者透過技術寫作(technical writing)來宣傳自己的行銷之書。

而為什麼是透過技術寫作,而不是其他手段來自我推銷呢?這就是本文想說明的事,因為技術寫作能提供的好處,與工程師這個職業的契合度實在是太高了

坦白說我都聽得一頭霧水

不要緊,以下就開始為困惑的朋友講解「技術寫作能為工程師職涯帶來的正面影響」。

技術寫作能為工程師帶來的好處

徹底理解自己的程式碼

為了透過文字說明程式碼的功能與目的,首先你得搞清楚為什麼自己要寫出這些程式碼?為什麼選擇方法X而不是方法Y來實現目的Z?選擇方法X有沒有副作用?已經全盤考慮過副作用帶來的影響了嗎?還有更好的寫法嗎⋯⋯

撰寫技術文章強迫你正視自己的邏輯演繹產物,並檢查這些產物是否已經全都被最佳化

還有一種可能是,你在寫作途中發現程式碼有重大缺陷(天啊為什麼在 pr/mr 時都沒人發現啊而且我明明有寫單元測試啊)。沒事,寫作先放一邊 1,恭喜你獲得拆彈的機會,先去拯救自己吧。

提升自己的寫作與技術力

承上一點。在徹底理解自己的程式碼以後,你還需要清楚地、有邏輯且平易近人地用文字說明它,讀者才能吸收。這是一種需要練習的技能,其名為寫作。

至於為什麼技術寫作也能提升工程師的技術力?因為——你不會想以自己的名義發表一篇內容有誤的文章吧?

Writing a blog post creates internal pressure to verify all the information you’re about to publish under your name. … It is motivation to learn in its purest form because if you don’t do it, you may make a fool of yourself online.

這就代表你必須在公開文章之前,竭盡所能地確認所有內容都是真確的。而這個「確認內容真確」的過程也是一種學習。所以恭喜你,不但喜獲一篇精彩文章,也獲得更多關於開發的知了。

重複利用知識,一勞永逸

當你將想法精煉為一篇公開的文章後,一旦未來發生(但不限於)以下事件時——

——你不用泡一壺茶並坐下來開始再一次講述始於十二世紀的傳說,你只要提供文章的超連結,然後就能回去做自己的事了。

By blogging your thoughts, you’re reaching more people with less typing (or talking).

而如果有點不幸地,你最初用於寫作的觀點還有可以改善的空間,那麼現在要做的補救也只是「修正一篇文章」。真是太好了,不用挨個通知那些曾被你荼毒過的對象。

獲得免費的回饋

比較優雅的說法是:就像開源專案能透過 pr/mr 不斷改善品質,公開發布且提供留言功能的文章會透過網路世界的指教去蕪存菁,而文章作者也能藉著這些回饋修正自身認知中不盡正確的部分。

但畢竟 “Writing for Developers” 的作者與這個部落格的管理者都是誠實的工程師之輩,所以就坦白吧:那就是泡在網路上的工程師大多熱愛指出他人的錯誤,並急於奉獻自己的所見所知。

Writing a public blog post is an implicit call for (unsolicited) help. One certain thing about the online community of programmers is that they love pointing out other people’s mistakes and suggesting their own ideas as ultimate sources of truth.

所以,當你真的不曉得可以向誰求助,又無法付錢取得專業意見時,寫一篇文章並把它扔進社群裡是一個辛辣但保證有效的手段 🌚

推銷自己

一篇品質精良並且廣為傳閱的技術文章能提高自己在開發者社群的知名度,大家會開始認得「噢你就是寫了文章X的作者」。雖然有名不見得只會帶來好事,但名氣也是一種資本2,而資本越多的人就擁有越多選擇。

多篇品質精良的文章能說服你未來或現在的雇主「你在某個領域不但真的有所耕耘,還留下不少證據」。將平時的開發日常精煉為技術文章後,它可以成為績效評估時的彈藥,或是履歷上的閃耀詞條。

推銷產品與公司(當你身兼工程師與老闆時)

問:為什麼技術文章還能推銷產品 😠 這不是廣告的目的嗎?

答:首先,精心設計過的技術文章能讓普通讀者也能理解「為什麼選擇使用方法X來實作產品」、「為什麼這個產品不會有功能Y」、「這個產品最擅長解決什麼問題」。這些說明或許無法直接引發購買行為,但能在使用者心目中留下對產品的美好印象;而提升產品形象廣義上也是行銷的一環。

再者,與上方的「重複利用知識」概念類似——文章發表之後,它放在那裡就能持續造成影響;然而廣告卻是得付錢才能獲得版面的,更不用說現在還有沒裝 Ad Blocker 的人嗎 🌚

最後,假設你剛完成了產品的效能調校,並在測試裡得到一些不得了的數據——寫吧,不要白白放掉這個正大光明推銷產品(和身為工程師的自己)的機會。

適度愛慕虛榮有助行銷

😠 好好好⋯⋯知道技術文章為什麼會有「推銷產品」的效果了,那你現在可以解釋技術文章又和推銷公司有什麼關係嗎?

🌚 我們都知道最重要的影響參數是薪水,但是當幾個 offer 都提供差不多的待遇時,一個擁有大量優質技術文章的部落格的公司,比較有機會吸引到對技術有所追求的求職者吧。

結尾

以上說明了為什麼「技術寫作」是最契合工程師的行銷方式。進行技術寫作能強迫工程師確保程式碼已臻完善、讓工程師學習寫出能讓人看懂的文章、文章發表後就能永流傳節省重複解釋的時間。而基於社群特性,公開發表文章也讓工程師能免費獲得調整自己觀點的機會。最後,技術文章也是工程師精煉開發日常後的文字證據,可以向現任或未來的雇主(甚至是客戶)證明自己身為工程師的能力。

不過說了這麼多,還是要回到現實:技術寫作能為工程師帶來的好處都只能間接轉化成財富,寫作不等於直接進入發大財的人生路線。

真是遺憾

即便如此——你有一點點心動了嗎?如果是的話,那請期待本系列的下一篇文章吧。

註解

  1. 拆完炸彈記得回來把文章寫完 🌚 畢竟「發現程式碼的缺陷」可是G級寫作素材,能根據你的需求鍛造成「我學到的教訓」或「我為何從技術X跳船到框架Y」等等技術文章。下一篇部落格文章會說明技術文章的幾種常見模式,以及各種日常開發事件適合發展成什麼類型的技術文章。

  2. 根據《慣習》一書的理論,人際關係與人脈算是社會資本。此資本會影響一個人「與他人互動時能獲得的資源」。想理解除了錢以外還有什麼資本能掙的朋友,可以參考該書。