2014年4月30日 星期三

無瑕的程式碼 番外篇─專業程式設計師的生存之道

Ref.: 無瑕的程式碼 番外篇:專業程式設計師的生存之道

剛剛在看一個技術大師 R. Martin 的散文集.

他在談他心目中的專家和專業態度. 他認為一個專家, 必須要"永續經營", 所以要不斷學習增加自己的專業能力.

上班時間是給公司的, 那不算是額外的學習. R. Martin給了一個主觀認定的時間, 每周額外學習專業相關的知識20小時. 也就是每天要花三小時. 這三小時的專業學習最好跟工作沒有直接關系, 而是要去做一些能激發你對這個專業的熱情的事情. 這樣才能永續經營.

所以他也不贊成超時工作. 如果一個工作無法讓 專業人員 騰出時間 每天進修三小時, 可能就不是一個好工作...


另外兩個有趣的概念是 Kata 和 Flow Zone.

Kata 中文譯為 "套路", 指的是一種特定的程式設計練習題組. 通常是小題組. 像是知名的 The bowling game 或者是 CodeKata. 這種題組通常是被設計來 暖身 或者熟練 基本技巧.

R. Martin 認為, 程式設計是一種工藝技術, 需要反覆練習才能熟練精進, 也需要常常複習. 所以套路就顯得很重要. 透過重複練習套路, 我們可以反省之前的寫法, 更能夠將理論內化為技巧. 以我自己來說, 過去比較習慣在腦海中思考, 比較少寫成程式, 所以我寫程式的速度並不快. 現在的工作內容也不需要寫大量的程式, 所以程式設計的概念有所進步, 但是速度和技能並沒有太大的提升. 我想我也需要找一些 Kata 來練習.

Flow Zone 被譯為 "神馳".
定義是一種將個人精神力完全投注在某種活動上的感覺;心流產生時同時會有高度的興奮及充實感。
一般人都很希望進入這個境界, 因為集中力會變高, 感覺好像生產力大幅提升. 但是很意外的是, R. Martin 認為我們應該避免進入這種狀態. 因為注意力太過集中, 反而導致只注意到細節, 而沒有考慮到宏觀的問題, 例如採用了不合適的資料結構, 反而事後要花很多利器修正.

這有點違反一般的認知, 但是其實蠻有道理的 R. Martin 也提到很多人都喜歡聽音樂寫程式, 認為這樣生產力比較高, 精神比較集中, 但是他認為這只是因為聽音樂比較容易進入神馳狀態而已. Tom DeMarco 也曾在他的書中提過類似的論點, 根據研究顯示, 低噪音的環境是最好的, 其次才是有音樂, 基本上越安靜越好, 即使只有一點聲音干擾, 人的生產力都會有顯著降低.

沒有留言: