軟體開發教給我們的7個生活指南
我們在做軟體開發時學到的很多思維、方法、工具、模型、演算法……其實可以遷移到生活中使用,讓我們生活得更美好哦。我這裡暫舉 7 個,以後有時間,慢慢補坑,爭取補到 60 個。大家有興趣的,可以留言補充你最有感覺的。
1. 網路協議應用於人際溝通
在網路程式設計中,客戶端和伺服器要通訊,必須尋找特定埠,建立連結,遵守一定的協議,才能傳輸資料。比如 http、ftp、telnet、echo、rtp等協議,都是如此。這個過程,內含的道理就是:雙方要溝通,先得相互除錯,找到一個共同的頻道和彼此都能接受的規則,才能有效完成資料交換。
這點應用在人際溝通上,是一個道理,為了讓溝通有效果,達成目的,那你就要尋找對方的埠、協議格式等等,以對方能夠接受的方式和ta聊,這樣才能聊到一塊去。
2. 版本管理應用於個人生活節點記錄
程式設計師都會用svn、git等版本管理工具管理自己的工作產出,提交程式碼時,還要寫點日誌,描述自己新增了什麼features、修改了什麼bugs,以便能夠記住自己過去幹了什麼,必要時回滾。程式碼版本管理這點應用到生活中,就是我們要記錄自己生活中的關鍵事件,比如取得的成功、很痛的失敗,以便我們經常翻看,能夠更好的生活。這就是,沒有記錄,就沒有發生。
3. SCRUM每日站會用於個人每日計劃
很多團隊採用SCRUM運作專案,在SCRUM裡,有個每日站會,每日站會,會問三個問題:
昨天完成了什麼任務?
遇到了什麼障礙?
今天準備做什麼?
這一點,可直接拿來反省我們每天的生活。
比如,你可以每天早上使用5分鐘回顧總結:昨天取得了什麼進步?遇到了什麼問題?然後再用5分鐘做計劃:今天準備做什麼事情?養成了這樣的習慣,苟日新、日日新、又日新,人生開掛不在話下。
4. LRU用於物品斷舍離
作業系統在管理記憶體時,經常用到 一個演算法——LRU(Least Recently Used,最近最少使用),把最近沒用到的頁面置換到硬碟上去,需要時再載入進來。
這個 LRU ,就是家中物品斷舍離的原則:那些很久未用的東西,多半將來也很少有機會用到,可以直接扔掉或二手處理。比如你要整理衣服,取 3 年為閾值,3 年沒穿過的,就扔掉,那就可以淘汰掉一大半衣服。比如你整理書籍,取 3 年為閾值,3 年沒看過的,就扔掉,那就可以淘汰掉一大半廢書。
5. 編譯器報錯與接納事實
我們寫完程式碼編譯時,編譯器經常咆哮:你小子他孃的搞出1001個錯誤!我們雖然很不情願,但很快就會乖乖的接受,動手去修改程式碼,解決問題。
可是我們生活中,往往不是這樣乖巧的。我們是反著來!
比如我去年查出頸動脈粥樣硬化,我就不能接受:“憑什麼是我?我還不到四十!老天對我太不公平啦!”
比如男生張三和女生小蘭競爭經理職位,小蘭成功,張三敗北。張三很可能就無法接受這個結果:“老子這麼優秀,為什麼偏偏不選老子當經理?這裡面肯定有貓膩,說不定小蘭被潛了!”
比如你早上起床晚了,匆匆忙忙開車出門,一出小區就被堵上了,立即就會埋怨:“我擦,怎麼這麼倒黴,堵成這樣!”
……
生活中有太多類似的事情,我們總覺得自己是特別的,倒黴的事情不該發生在我們身上,可是,生活就是個編譯器啊,我們就是程式設計師,用時間為生活撰寫程式碼,編譯器給我們丟擲個錯誤,我們就得臣服啊。臣服,然後想想接下來怎麼辦。這樣才是解決問題的上策。
6. kNN演算法與你就是5個朋友的均值
kNN(k-Nearest Neighbor)演算法很簡單,它說的是,每個樣本都可以用它最接近的k個鄰居來代表。
kNN用在生活中,就是:你是你最親密的5個朋友的均值。比如你的收入,就是你最好的5個朋友的均值。
想通這點,要想有更好的成就,就要不斷更新朋友圈,不斷和更有成就的人交朋友。
7. 介面卡模式應用於和父母溝通
介面卡模式是常用的模式之一,其主要意圖就是做介面相容:使得原本由於介面不相容而不能一起工作的那些類可以一起工作。有點類似這個:唐伯虎要點秋香,可你只有石榴姐,就找了張人皮面具畫上秋香的樣子,給石榴姐帶上,讓石榴姐看起來像秋香。
介面卡模式就是為了溝通存在的,可用於各種人際溝通場景。
比如我們因為生活的年代和家裡老人們的主流生活時代不同,我們就常常覺得他們不理解我們,以為說什麼他們也理解不了。那這個時候,就可以使用介面卡模式,把我們想說的話,用老人們可以理解的經驗重新包裝一下,再說給他們聽,這樣他們就能理解了。
先到這裡,改天再補,歡迎你留言說出自己最認同的可以遷移到生活中的軟體思維。
對類似內容感興趣的小夥伴,可以關注我的公眾號程式視界: