做加法容易做減法難,程序員的我深有同感
本文轉載自微信公眾號「BAT的烏托邦」,作者YourBatman。轉載本文請聯系BAT的烏托邦公眾號。
前言
你好,我是A哥(YourBatman)。手殘昨天又沒標原創~
現在的你是不是感到時間不夠:沒時間看書、沒時間學習、沒時間寫文章、沒時間旅游、沒時間運動、沒時間約朋友吃飯、沒時間看電影、沒時間帶孩子;但是明知道沒時間,你卻又不停地給自己做加法:辦健身卡、買學習課程、報班等。如此往復,然后自己變得越來越焦慮。
我們大都如此,普通人只懂得加法,而不懂得減法的重要性。
最近看到一句話,來自弗吉尼亞大學的著名心理學家Benjamin Converse:“做加法的想法幾乎立刻就能在腦海中浮現出來,但做減法卻需要更多的認知努力”。這讓我聯想到那句“做加法容易做減法難”,一直在腦中回響,所以趁周末就聊上幾句。
所屬專欄
程序人生
相關下載
https://wangpan.yourbatman.cn 程序員專用網盤上線啦,開放注冊送1G超小容量,幫你實踐做減法
版本約定
程序員、產品經理...
正文
數學上來講,加法和減法的難易程度可認為是一樣的;但生活和工作中來看,做減法可比做加法難得多得多。
獵豹CEO傅盛曾說:讓一個人有所成就的最好方式,就是不斷做減法。記得有段時間,我非常忙,各種會議滿天飛,效率很低。我當時就想,難道當年喬布斯比我更忙嗎?歸根到底還是我的管理方法不對。
為什么做加法容易做減法難?
從小到大的教育和成長環境中,我們一直都在爭取和追求著更多的東西,所以每當我們不得已要放棄已經擁有的東西時候會感到難受,當做是一種損失。
你是否注意到當我們遇到問題的時候,自然而然的喜歡做加法。如:更多的人、更多的功能、更多的會議、更多的渠道、更多的表格、更多的產品、更多的代碼...總之越多就感覺做得越好。在尋找某件事情的解決方案時,我們的大腦總是往尋找增加新東西(加法)方向思考而非刪除點什么(減法),這似乎已是思維定式。殊不知,這只是一種認知偏好,和每個人從小到大的教育成長環境密切相關。
做加法似乎是順應人性,而做減法是逆人性的。但只做順人性的事(如貪婪、不勞而獲、睡懶覺、占便宜...)往往難有成就,往往做逆人性的事情會收獲更多,如:堅持早起、堅持學習、堅持健身。
在當下資源、信息大爆炸的時代,當我們一直在給人生做加法的時候,往往會忽視掉最為關鍵的東西,同時還可能會迷失自我。人腦和CPU是一樣一樣的,處理的頻率有上限,如果上下文過多需要切來切去,效率必然驟降,甚至導致出錯、返工。殊不知:不用重來才叫快,能夠積累才叫多。
生活上同樣,就像給家里添置新東西,多大平米的房子最終都能被塞得滿滿當當,舍不得扔越堆越多反倒過來影響到生活質量。所以說做加法相對容易些,有點錢隨意購買添置點物品很容易,但買回來后再扔掉就非常難了!
當然,在生活中,你得做了足夠多的加法,累積了一定多的資源,才有資格做減法。
總之,正如心理學家所說的那樣:做加法的想法幾乎立刻就能在腦海中浮現出來,但做減法卻需要更多的認知努力。
我們都在做加法
汪涵在節目里說,他的微信好友最多的時候有100多人,就讓他很緊張了,隨后他就將開始刪微信,刪了后感覺自己很輕松。
也許你會說那是汪涵,即便沒有微信,還是會有人通過其它方式去找他,他也不會缺資源。下面舉些日常例子,看有哪些能觸碰到你!!!
- 通訊錄里的好友/號碼越來越多,但能聯系的越來越少,所以每次找起來就很困難
- 關注的公眾號越來越多,但從中提取到有用的知識似乎越來越少
- 百度網盤里的文件越來越多,但看過的卻越來越少
- 家里經常購置新東西卻很少扔舊物品,每次搬家時“想死”的心都有
- 看到一篇好文章,想著先收藏再精讀。現在回頭看看自己的微信收藏夾、瀏覽器收藏夾、CSDN收藏夾是不是早已不堪重負
- 新買一本書很容易,但新增一個知識點卻很難。看看自己的書架是不是已壓彎
- 書越看越薄往往比越看越厚難得多得多
- 用人單位招人擴張相對簡單,但收縮卻非常的困難
- ...
人的精力是有限的,當噪音太多時,就很難做到聚焦,從而容易偏移重點。這體現在工作、生活的方方面面,作為產品經理/程序員的我們當然更不例外,繼續來聊聊。
產品經理的加法
當下有2個神級一樣的產品:QQ和微信,恰巧它倆分別是加法和減法的典型代表。
你有多久沒有登錄QQ了?這是最新版QQ的樣子(Mac PC版):
曾經的QQ也只有聊天功能,后來慢慢的做加法。比如這是通訊錄的分組管理:
我們總是時不時就會發現QQ又出了新功能,窗口按鈕越來越多、元素越來越豐富。從起初的每一次新奇感,到現在的無感甚至反感。
對于年齡較小的用戶而言,因為沒有體驗過所以他們會常常用QQ覺得功能豐富、好玩,但對于年齡較大的用戶而言,對于很多存在但幾乎不使用的功能感到疲乏了,想要的更多是簡潔的用戶體驗,所以會傾向于微信。
這是最新版微信的樣子(Mac PC版):
對于個人而言,微信好友的數量是我們每個人在做的加法。可以翻閱看看自己的微信好友數現在是多少人了?細細想來,每次你翻閱朋友圈時,是不是被朋友圈占領的時間在變得越來越多。
誠然,微信已逐漸從強關系的好友互動,逐步演變為弱關系的資源積累,對于年輕人來講, 你可能會覺得這種資源累積是無可避免且還十分重要的。但真的是這樣嗎?你發現微信并沒提供通訊錄分組功能,這是它的產品理念。“一年交十個朋友,不如十年交一位朋友”,你應該開始考慮是否需要克制。
其實,微信本身是一個做減法的成功案例。微信從2011年的誕生到現在2021年已有10年了,其本質的東西并沒有變化多少,你會發現微信的每次發布新版本連RELEASE NOTES都沒有。雖然張小龍說這并不是“克制”,而是在遵循一種好的設計原則讓微信不去做一些影響設計美感的事情。
龍哥說每天都有5億人說我們做得不好,每天還有1億人想教我怎么樣做產品,顯然他要做的最重要的事就是克制,要做減法。
在產品的初始階段都能實現1+1=2的價值輸出,成熟后很可能只能做到1+1<2,這個時候可以嘗試做減法,實現2 - 1 > 3的價值,這是一個需要很多認知、很難的過程!
大道至簡,產品至簡。一款成功的產品,在解決用戶需求以外,應該要能保持至簡。這個簡不是簡單的,而是簡潔。前者是復雜度描述,而后者是一種思維,會貫穿于整個產品的設計理念,讓用戶能夠保持良好的使用體驗而收到不必要的干擾。很喜歡王自如的那句:真正的科技是讓人感覺不到科技的存在。
程序員的加法
在程序員口中常能聽見這樣的話:這代碼寫得跟屎一樣。行,給你展示一個真實的代碼示例,前方高能請系好安全帶:
一個業務處理方法足足截了近10張圖,累死老夫了。
如果讓你來挑這段代碼的毛病,是不是覺得罄竹難書?然后,再猛的一回頭看看自己寫的代碼,是不是和它又有幾分相似?五十步笑百步了,哈哈,大寫的尷尬!
用代碼寫軟件就好比蓋房子,雖然房子的樣式多種多樣,但很多基礎原則卻是一模一樣的。越上層越具體多樣,越底層越抽象歸一就是這么個道理。
Java是門面向對象的高級語言,如果全程用面向過程的思維去編寫,那它相較于PHP、Python這種腳本語言的優勢將大打折扣。很多公司經歷過x語言(PHP、Python等)到Java語言的遷移,如果只是照抄著一字一句的翻譯,那么請問這么做的價值又有多大呢?
回到本文主題,造成這種屎山代碼的原因是什么?有哪些力量?
- 緊急的上線:這個功能很簡單,怎么實現我不管”,橫批“明天上線”
- 管理者的短視:一個程序員水平不高往往只會影響某個局部,并且還可以通過培訓提高。若管理層只有短期目標,那沒救了
- 程序員的水平:程序員的入門門檻不高,培訓培訓就能上崗,水平不一
每行代碼都是程序員一行一行敲出來的,所以究其根因是程序員的水平不一,這個鍋我們程序員必須背上。其實,對很多程序員而言,只會做加法:寫補丁式代碼,長期以往,屎山便逐漸形成。
對于一套現成的代碼,打補丁(加代碼)往往是容易的,但從200行減到100行卻非常的難。人性的弱點致使總是傾向于選擇容易的事為之,畢竟做減法的話需要有大量的思考和經驗的運用,難度頗高也費腦細胞,如抽象思維、代碼設計、面向對象、設計模式的運用。
如果說生活上做加法只會影響到自己一個/一家人,那作為程序員你的加法就很有可能影響到“很多人”,包括的你的同事、你的用戶、還有你的后輩們。每個英俊瀟灑的程序員都不希望寫些被“后輩”瘋狂責罵的代碼,程序員可以多些對代碼的敬畏之心,方可少為屎山貢獻力量,這便是做減法的體現。
好的代碼就是金山銀山
相較于屎山代碼,好的代碼就是金山銀山。當我們看到一些代碼發展了十幾/幾十年還依舊保有非常高的活躍度的時,無不是因為有著金山銀山的支持。比如JDK、Spring等。
好的代碼習慣并非“天生”所得,需要后期的經驗積累和不斷的學習。Java的開源生態讓其學習環境非常的好,我們總是能找到各個技術子領域的優秀項目代表,用以學習、模仿、成長。寫程序在于先精后廣,如果你連精通都不會,再寬的廣度也只是沒有核心競爭力的皮毛。
代碼是程序員的武器。雖說公司并不會因為員工為“屎山”貢獻了力量而遭到開除,但一個程序員的持久生命力體現在能否寫得出金山銀山的好代碼,貢獻長久價值。自我回憶回憶自己的心目中的“偶像”大佬、架構師,都能寫得一手好代碼,無出其右。
做減法:斷舍離
當事情越來越多的時候,我們總想著通過增加時間來解決:延遲下班時間、每天早上5點起床、推掉旅游娛樂、減少健身的時間...但,看似增加出來的時間其實很快又能被填滿。所以,在很多時候繼續增加(時間)已是無益,做減法才能夠解決。加法已經夠多了,我們不妨學習做減法,學習斷舍離。
斷舍離是最近幾年很火的一種方式,是從日本開始流行
- 斷:斷絕想買回家但實際卻并不需要的東西
- 舍:舍棄家里那些泛濫的破爛
- 離:脫離對物品的執念,處在游刃有余的自在空間
別以為“斷舍離”的目標僅僅是指向物品的,但實際上它還指向了我們的內心。
“斷舍離”的過程能讓我們更加深入的了解事物的本質、了解自己的價值觀、了解自己內心的渴望。對于程序員而言,就是善于刪除代碼,減少垃圾代碼的輸出,將自己放在一個較高的層級空間運籌帷幄。
總結
人生的旅程是一個由簡到繁,再由繁到簡的過程。
加法和減法看似一對相反的動作,但二者合理結合方能有最大效用。沒有絕對的好與壞,QQ做加法并不是失敗了,而是另外一種戰略路線的體現,用馬化騰的話講:騰訊現在有兩條腿走路更踏實了。
作為一枚程序員,既有寫代碼的工作,更有生活。年輕時我們一直在學習、積累、購買。當到了一定年紀后,我們更應該利用已有經驗和認知,做減法來提高工作效率和生活品質,達成由內而外的升級。
今天,你做減法了嗎?

































