科技資訊管理與人生

作者:

分類:

企研所第一屆學生在前三週教我的事

20211003

1.科技的目的不是科技

科技是讓使用者運用,幫助解決問題、滿足需求的工具。所以真正的目標是「解決問題」與「滿足需求」,而不是科技本身。資訊軟體、程式與系統也不是最後的作品,而是過程的中介工具。

2.不是困難的功能才有價值

常常設計一些困難的功能,卻發現使用者根本沒有這樣的需求。但有時候卻發現清楚的按鈕顏色、簡潔的說明文字、新手上路引導、登入後體貼的問候,這些功能做起來很簡單,客戶卻非常在乎。教學也一樣。

3.新科技、新資訊不代表「好」

人天生喜歡新事物,但是新科技、新資訊往往不見得是最好的選擇。新技術通常看起來聽起來很炫。但在實務運用上,往往帶來更高的成本與更大的風險。

4.簡化才是王道

有些優秀的人往往很懶。正是因為懶,所以可以做出最方便好用、容易維護的軟體。N倍複雜的軟體,帶來N平方成長的用戶教育、團隊溝通協作、後續維護成本。因此,學程式會教你力行減法的重要,KISS everything(Keep It Simple and Stupid)。

5.系統思考

程式往往不是一個獨立存在的個體,而是由許多互相連動的模組、物件、平台所形成的體系。因此,學習設計程式的同時,也勢必會增強系統思考的能力,幫助你理解單獨模組的優化不一定能提昇整體戰力,以及找到系統內槓桿點等重要人生觀念。

6. 科技資訊管理沒有情緒、只有邏輯

人是理性與感性兼具的動物,但機器卻只有100%的理性。因此當你的程式無法Compile(編譯過關),跟機器生氣、求情、說謊都是沒用的。只有學會摒棄自己的情緒,用完全合乎邏輯的方式,才能通過他們嚴格的關卡。在過程中,你也學會了如何運用EQ。

7.課題的根源來自自己

當程式掛點、當用戶的問題沒解決、需求不滿足,你並不能怪罪用戶、也無法推卸給機器,只能怪自己沒有做出好的選擇、設計出對的架構、寫出可靠的程式。人生也是一樣,問題都根源於自己過去某個時點做出的選擇,沒什麼好責怪別人。

8.速度與債

在設計早期版本軟體時,為了求快、求提早取得市場反饋,工程師往往會用較粗魯的方式完成功能,因此欠下所謂「技術債」。而後,當產品獲得市場歡迎,用戶量持續成長,償還這個技術債所需的時間與人力就會日益膨脹,就像現實生活中的負債會生利息一樣。

因此,工程師要懂得在對的時間點,把前債還清,才不會在日後造成永不超生的後果。經歷過幾次這個過程,你將學會用成熟的態度去面對選擇、負債、償還。

10.可以一時繞過麻煩,但無法永遠逃避它

這跟技術債的概念很類似,有時候,工程師可以用Work Around暫時繞過問題,但它不能取代解決問題本身。遲早,你必須正面面對、解決它。

11.永遠幫自己留條後路

程式做久的工程師,往往會養成習慣在迴圈,或是需要長時間的執行程序中,幫自己留一個跳出的路徑,免得事情出狀況時,無法搶救。在人生中,永遠想好後路也是很重要的觀念。

12.用小里程碑激勵自己

在做一個大系統時,如果花數週、數月的時間埋頭苦幹,卻一直沒辦法看到成果,很難維持自己在意志高昂的狀態。厲害的工程師會把它切割成許多小片段,每個階段完成都有可運作的部分成果,利用這些小里程碑來讓自己保持熱情。

13.專注的重要

專心的設計程式1小時,生產力恐怕抵過邊做邊玩10個小時。

14.團隊合作的重要

與他人互補、協作、建立組織發揮整體戰力,是所有人一生中必修的功課。

本文改寫自林之晨(Jamie)
「程式不只是技能,更是滿滿的人生道理」https://mrjamie.cc/2016/12/07/life-lessons-from-coding/