2021年12月25日 星期六

programming productivity

轉戰管理職第二年,非常懷念當初做individual contributor全心全意做技術的時光。大概5年前看過Xiong Yalin(GM, BBP, KLA) 的一個專訪,說是他非常懷念做技術的時光。Elon Musk也說大部分時間他都花在Engineering。ASML也不是沒有機會,只是非常強調組織架構,佔什麼位置做什麼事(當然也扛責任),對我來說反而是技術強項施展不開。為了求內心平靜,三不五時還是會(想)寫一下程式(矽谷命,得時時進修。)管理職份內事做完別人沒話說,技術份外事多做了卻招忌,難題。

寫程式求平靜,反話是打電動有罪惡,總是不想讓自己覺得花時間在無用之處上。更積極來說,我確實也有過好幾次寫程式廢寢忘餐的美好經驗,十分有成就感。無論如何,多年琢磨出一些心法:

既然是軟體工程師,寫程式離不開電腦,電腦離不開電,又或是網路。那麼,是否說沒電沒網路沒電腦,軟體工程師就廢了一身武藝?其實從動念有想法到寫出來第一行程式之間阻力蠻多的,那些都是無形的時間與精神成本。Google search兩秒以上、開Microsoft Words十秒以上,我大概都會開始抓狂或分心到其他事情上了。如何讓自己隨時隨地10秒內可以開始寫程式就是我追求的理想也是我的秘密武器。說白了時時刻刻自我覺醒,檢視整個流程是否有更好的做法,省去不必要的操作、挑戰使用更好的工具。工程師、工欲善其事、必先利其器。

好比說挑戰使用更好的工具,這幾乎是拾人牙慧的事情,別人工具都設計好了,就怕你不知道而已。今年我總算嘗到CI/CD (Continuous integration / Continuous Deployment)的甜頭,原本以為各家服務眼花瞭亂,第一步都不知道怎麼跨出去,但其實跨出去知道是什麼個樣子,精神抓到了,90%都是相同的服務大概也就是那個樣子了。

另外,Google Colab是個好東西,除了它滿足"隨時隨地10秒內可以開始寫程式"的需求以外,它兼有分享的功能,讓寫程式不只是自己一個人的事,它讓自己的想法可以快速實現、驗證、並分享,促進討論,創造人類公共財,無私的感覺真好。

今年另一項技能get是Google Colab + Github的組合。Github只是死code的版本封存,要加一個runtime、CICD等讓code活起來,Google Colab就是一個很好的配合。多說無益,直接體會比較快:

https://colab.research.google.com/drive/1OZIN0i0BbWyUY5-S-dCxC-42lQ5SxrCp?usp=sharing

(這是2021年GFPGAN用來還原低解析度人頭照的技術,all credits to authors)

Google Colab基本上還是依賴網路,沒網路仍然要有戰鬥力,就更考驗功力了!

沒有留言:

張貼留言