筆記 — 找到時間成為更好的開發者 (Time Management)

筆記本與筆

這篇文章是關於 Time Management 的筆記。很久以前看過這篇 finding-time-to-become-a-better-developer,但因為太久遠所以讀了什麼都忘光光。為了節省未來自己的時間,便做了這篇筆記,也把他放出來,或許能幫助到誰。

找到時間成為更好的開發者

正文

文中列了五點解決這個問題:優先度、對好程式碼的堅持、Managing Expectation、投資報酬率、預排休息時間。

A. 學東西有優先順序

你不用學所有東西,但可以用下面這三點順序來決定要學什麼。

  1. 基礎:學新東西若有基礎就能學很快
  2. 最常用的 stack 的最新版本:無須多說,靠什麼吃飯的就優先學什麼
  3. 市場巨頭背書的技術:可以試試看,老大都說好,你就可以看看有多好

B. 好程式碼比壞程式碼還要省時間

但感覺上並非如此。

文中提到兩件可以嘗試的事,讓你的程式更少出錯更符合 design pattern:

  1. TDD:帶來少 bug 且設計優良的 Code
  2. iterative design approach:會動之前不要想完美

Make it work, make it right, make it fast. — Kent Beck

C. 一直工作不代表專業,Managing Expectation 才是

無限工作可以讓你好像生產力超高,但當你承諾了個不可能的死線,事情會變得更糟。與其做到爆肝,不如好好地衡量自己的能力,抓出真正能完成事情的 deadline,對組織會更有效益。

You need to take control of the timelines so that you are always and without fail delivering high quality work exactly on time. This is incredibly difficult at first. It means having to say “no” and having to push back.

Time Management
Photo by Eric Rothermel on Unsplash

D. 要注意投資報酬率

Make it work, make it right, make it fast,right 不代表一定要完美無錯、fast 也不表示要快到極致。

讓程式「從 90 分到 98 分的時間」和「從 98 分到 100 分的時間」可能一樣,但兩者的投報率並不相同。

E. 預排休息時間

情緒、專注力都會影響生產力,但人的狀態不可能一直維持在最高點,所以需要適度休息。而這樣的休息時間若是預排好的,就比較不會有罪惡感,可以好好休息,進而讓整體生產力提升。

結語

在業界也當了一兩年的工程師,深刻覺得 C. 提到的 Managing Expectation 非常重要。可以不必當生產力最強的人,但務必不要讓人難以掌控你的速度,不然就整個團隊而言,預想好的時程被突然延後更感困擾。

除此之外,機會成本也很重要,A 和 B 在做不同事情時的效率可能不同,所以應該要在有需要時,儘速尋求專家協助,不要一個人默默苦幹燒掉時間。時時要把 Time Management 放在心上,才能活得毫不費力!

你的時間值得更要緊的事!

工程實在是博大精深,也許你有興趣看看我其他關於這方面的體悟:http://backend.wildsky.cc/categories/工程心法/