寫Blog與寫Code
2019-01-07
在外國,程式設計師在課餘時間寫Blog是很平常的一回事,大家在找尋技術問題的解決方法時,除了全知的Stack Overflow之外, 很多時候閱讀的就是一些其他高手所撰寫的技術文章,博客平台如Medium等也應運而生。相較之下,香港甚少有聽聞程式設計師有寫博客的習慣,大概是由於 工作繁忙,抽身不暇。筆者此前也只是曾經在一些Facebook專頁寫過一些技術文,現在才算上是恆常出文。短短數月中,已感受到為何外國程式設計師如此樂 此不疲,即使要抽出私人時間,也會寫Blog出文。
寫Blog有助溫故知新
程式設計變化迅速,新技術新框架時時出現。大概大家都試過想學習一種新框架,看着詳盡的文檔,卻不知如何入手。原因很簡單,在於往往大家學習的時 候,通常沒有特定要達成的目標,因此造成文檔讀了很多,卻不知如何開始。但如果你將「學習Rust程式語言」這個目標,改為「學習Rust程式語言,並寫一 篇博客向大眾解釋使用Rust的好處」,這樣目標就清晰明確得多,因為要完成一篇這樣的文章,你起碼要完成以下幾個步驟:
- 先自己學習Rust程式語言
- 親自以Rust嘗試作開發
- 比較Rust及其他程式語言之不同之處
- 用自己的文字表達2及3的發現
- 汲取別人的回饋,改進文章
比起漫無目的學習,以達成「寫成一篇文章為目標」所需的功夫明顯更多,情況就如中學時中英文老師要大家寫讀書報告一樣(不過筆者那時也很討厭就是了) ,要寫成一篇文章,遠比只讀不寫做得更多,大腦經過更多的刺激,學習也自然更有效。
除了學習新的事物,重讀自己的文章也可以重溫一些自己所研究的課題,很多博客一開頭都是寫給自己作參考之用:解決奇怪Amazon Cloudfront的問題浪 費了幾小時?最好的方法莫過於寫一篇文章,為未來的自己寫好最好的參考文件。
寫Blog鍛煉寫作能力
對很多程式設計師來講,寫作是一件麻煩的事情,一個專案的文檔(documentation)總是無人問津,因為大家都一個共識:寫Code不難,要寫一篇文章解釋 自己的那段Code卻很難。 箇中原因,在於大多數人的寫作肌肉早已退化,在完成學校教育後,由於荒廢多時,已甚少提筆寫文。因此要寫文檔解釋專案功能 時,大家才會避之則吉,唯恐自己要當上此種苦差。
寫博客恰恰就可以提供一個平台,培養自己的寫作習慣,强化寫作肌肉。解釋技術、概今時所需的表達能力,也比以前中文作文時要求更細緻,不只務需準 確,可能的話,還要生動有趣。原理跟旅遊愛好者常寫遊記一樣,寫得愈多,寫得愈長,自然寫得愈精彩。
當然,要鍛煉好自己的寫作能力,除了多寫,多讀其他人的技術文章也很重要,光以中文博客為例,兩岸三地之中也有不少好的博客可供學習,大家想多讀中 文技術文章的話,也可以去其他中文的技術網站參考一下。
寫Blog造就與其他人交流
寫文章也是一個雙向的過程,寫好了一篇文章,分享給同事朋友閱讀,也許會有一些不同的見解;在Medium平台或者論壇上分享,更是向公眾發表。 因此會有許多意想不同旳回饋,也就能聆聽不同意見。也由於是博客的關係,所得到的意見往往遠比現實世界所聽到的尖銳得多,也因此能聽到更多「真心 話」,也使自己學到要改進的地方。
博客的後續影響力也相當强大:假如你在一個Conference做了一個簡報,少則有幾十受眾,多則有數百人,但寫好一篇文章,在互聯網上就會一直存在,在Google上就能搜尋得到,造福未來對此課題感興趣的人,都能理解你的想法,這算是一種筆談呢。以前要寫文章,可能要投稿至報章雜誌,今日有 互聯網的方便,又怎可棄之不用?
寫Blog有助事業成功
與大家普遍相信的相反,寫Blog並不是一樣「搵唔到食」的工作,於香港也有一些全職寫手(雖然全職技術寫手較少)。就算你本身是一個軟件工程師,寫文章 對你事業也有幫助。想像一下,你現在面試一個軟件工程師,他除了有軟件專案經驗之外,還有恆常寫技術文章的習慣,代表他不但有編程能力,也有良好的 溝通能力,還有不斷學習的熱誠,這不正正就是大家心目中理想的軟件工程師人選嗎?
更進一步的是,已寫完的文章數量會與日俱增,就如放在網上一個閃亮的CV,比Linkedin的endorse或recommendation更有說服力呢。功利一點, Google今日的web crawlers更加只是以content為重,其他SEO技巧的小修小補早已無傷大雅,因此今時今日連吸引網站人流也要活用好文章。
如何開始?
在外國,有不少廣受歡迎的技術博客,有一個著名的博客叫Coding Horror,作者名為Jeff Atwood,曾經寫過一篇文章,解釋如何成為一個好博客寫手。 文中 其中一句,實在很有意思,
When people ask me for advice on blogging, I always respond with yet another form of the same advice: pick a schedule you can live with, and stick to it. Until you do that, none of the other advice I could give you will matter.
確實,寫博客需要持之以恆,如果不是恆常出文,人類的惰性很快會使你荒廢。要開始體會寫博客的好處,唯一辦法就是坐言起行,要求自己定時出 文。就算一開始沒有好文筆、好題材,多寫多讀,也自然會漸漸改善。也許大家不寫則已,一寫就上癮!
留言
閱讀更多
平常人都能掌握的Programming 原則
2019-01-29
大家會定時整理自己電腦中的文件嗎?大家看軟件工程師工作時,往往會發現他們的檔案總是井井有條,資料有條不紊地排列。難道學習軟件工程能使人變得 整齊?原因其實在於軟件工程師經常需要處理大量檔案及資料,因此發展出一套完整的工程原則(Engineering Practice),久而久之,就掌握了資料管理 的要訣。而如果平常人也掌握了這些工程原則,在日常電腦使用,其實也有不少好處。
Web Technology為何征服世界?
2019-02-05
2007年,蘋果宣佈發佈第一代iPhone,標誌智能電話時代的開始;一年之後Android亦宣告面世,從此時起,智能電話的發展迅速,Mobile App成為軟件的代 名詞,筆者初初成為軟件工程師時,總有朋友詢問我是否正在開發Mobile App,縱使筆者的專業一直都是網頁及後端開發之上。而其時亦有不少預測,預測[網站將會被Mobile App完全取代](https://searchenginewatch.com/sew/opinion/2414336/the-final-hurdle-is-cleared-apps-will-replace-websites)。網站所用的HTML、CSS、JS等,亦將成為歷史,送入博物館之內。
從「同朕check下」談中文科技詞彙
2019-03-03
本站文章以中文寫作,本來為方便香港讀者,在芸芸的英文文章之中,有一個另類選擇。出乎意料之外,我們近日發現多了不少台灣讀者閱讀本站文章,細想一下,大概是因為 筆者寫文好用中文科技詞𢑥,如型別推論(Type Inference)、機器學習(Machine Learning)、超文本傳輸協定(HTTP)等,台灣的軟件工程師搜尋相關的詞語,自然容易找尋到本站。然而,中文的科技詞𢑥,對不少香港軟件工程師而言,其實並不常用,那是甚麼驅使筆者會堅持使用這些中文科技詞𢑥呢?是愛?還是責任呢?