Skip to main content

二分法的邊界條件

Opass
A life well lived

“Although the basic idea of binary search is comparatively straightforward, the details can be surprisingly tricky…” — Donald Knuth

每個大學生都可以在抽象上跟你解釋二分法的概念,但是一旦需要寫出正確無誤、考量到邊界條件的實作,大概只有10%左右的工程師能夠做到。儘管現代工具非常方便,只要呼叫bisect,就可以把一串有序列表二分搜尋。但學習正確地寫出二分法,對於鍛鍊程式思維還是非常有幫助。

令人困擾的git autocrlf

Opass
A life well lived

跨平台的git repo換行問題應該可以列入「每個工程師都會踩到的十大問題」之一。整理一下自己的筆記。

2020回顧

Opass
A life well lived

2020,計畫趕不上變化的一年。幾乎沒有人在2019時想過,世界會有超過8000萬人感染新興疾病,190萬人死亡。國境封鎖、口罩、防疫物資成為搶手貨,各國開始印鈔票挽救經濟。原訂的旅遊計畫也因為飛機停飛而取消。

重構的過程應該是什麼樣子

Opass
A life well lived

Legacy Code 是一間沒人維護的廁所

Legacy Code就像是一間沒有人維護的廁所,功能正常,拉屎沖得掉,但裡頭充滿難聞的氣味,牆上被簽字筆寫上各種低俗的髒話,不小心還會踩到髒東西,你連一分鐘都不想待在這裡。

人生苦短,多用鍵盤,少用滑鼠

Opass
A life well lived

因為某個不是資訊科系的朋友看到小弟操作電腦後驚為天人,一直堅持要我寫這篇。

出社會後的某個時間點開始,我決定要多用鍵盤,少用滑鼠。人生苦短,有太多你想要做的事情。聰明的人把重點放在要達成的目標,而怎麼做是實做細節,越快越好

工程師應該花70%的時間在溝通上

Opass
A life well lived

曾有一段時間覺得,寫程式是個需要腦力的工作,需要專注才能寫出有品質的程式。而如果要達到專案進度,每天最好需要有一段專注的時間,不該隨意被打擾。

工程師常常會覺得溝通頗浪費時間,我都沒時間寫Code了,還要去參加各種會議、討論計畫、demo進度,到底寫Code的時間還剩多少?工作一陣子之後,我的想法改變了。

學習TDD的心路歷程

Opass
A life well lived

我們聽了太多的敏捷開發,但不寫測試的敏捷,就像不會動手術的外科醫生一樣荒謬。

我在2017年上了Daniel的CSM(Certificate Scrum Master)課,上完有種毀三觀的震撼,那門課表面上在講SCRUM,其實講的是一套敏捷的人生觀。課程最後一天的下午,Daniel談到了為什麼要自動化測試。

重新思考熱情這件事

Opass
A life well lived

大學時期,我聽到太多相似的言論並懵懵懂懂的相信著。那些厲害的人熱愛他們在做的事,我們稱這種喜好為熱情,找到熱情就是找到生活的意義。他們說熱情並不是意味著快樂,亦可能是辛苦但值得。他們說熱情不會憑空出現,必須要努力生活、嘗試各種事物才會察覺。