程序語言的設(shè)計和解決問題的范式都是有很多講究的, 它們決不止于解決一個個具體的問題. 它對于我們?nèi)松乃伎家灿泻芎玫膯l(fā), 或者可以看成相當(dāng)棒的輔助工具. 借助編程的思想, 幫我在混沌的人生中指出一條清晰的道路.
面向?qū)ο?/h2>
把寬泛無序的東西都嚴(yán)格限定在"對象"里, 定義好它的 variables 和 methods,規(guī)定好類型和權(quán)限才能使用, 規(guī)定好 input 和 output, 這樣在使用時才不會因?yàn)殡S意導(dǎo)致各種諸如越界等錯誤.
思考:
- 在工作和生活中, 無處不見因?yàn)樵浇鐚?dǎo)致的麻煩事. 領(lǐng)導(dǎo)和下屬對責(zé)任的不明晰, 導(dǎo)致任務(wù)無法有效完成. 領(lǐng)導(dǎo)只關(guān)心 output, 下屬卻更在意 input; 因?yàn)榻Y(jié)果最終是算領(lǐng)導(dǎo)的, 下屬不過領(lǐng)取微博的薪資過日子.
- 為什么"清官難斷家務(wù)事"? 因?yàn)榉ü倥械氖欠砂讣? 法律是有章可循的\面向?qū)ο蟮? 而家務(wù)事拉拉雜雜,界限模糊,你中有我,我中有你, 更多時候就是心里不平衡, 這種無法量化的東西也只能虛晃一招. 也就是多給對方臉上貼金, 說點(diǎn)暖心的話, 支持的話,理解的話, 寬慰的話. 更實(shí)在一些, 多一點(diǎn)實(shí)際的關(guān)心和幫助, 物質(zhì)的補(bǔ)償和酬謝, 時間和空間上的陪伴, 給足 input.
- 處對象時, 一定要弄清楚對方的需求是什么. 你一廂情愿的喜歡對方并沒什么用. 要雙方的 input 和 output 都對接好了,關(guān)系才能持久. 不然, 就算結(jié)婚了就算有孩子了就一定幸鸽Γ快樂嗎? 另一方面, 很多家庭之所以還能維系, 是因?yàn)?strong>利益捆綁在一起了, 分開了生活成本(居住, 飲食, 出行, 社交等)會陡然上升, 于是將就在一起吧. 為什么現(xiàn)代人的離婚率遠(yuǎn)遠(yuǎn)高于農(nóng)業(yè)時代? 經(jīng)濟(jì)條件好了嘛, 一個人也能活的很好, 我宅我自在.
divide and conquer
人們常常在大問題面前驚慌失措. 其實(shí), 再大的問題, 第一步就是要將它切割, 變成一步步可以執(zhí)行的小步驟. 困難不再可拍, 困難可以最終解決.
self-balanced tree
不論理想和情懷, 大部分人工作是為了換取生活的物資. 工作是兢兢業(yè)業(yè)\精力高度集中的狀態(tài); 生活則是隨意,輕輕松松的狀態(tài). 雖然娛樂業(yè),服務(wù)業(yè)和現(xiàn)代通訊把這兩者的界線變得模糊, 但是這兩種狀態(tài)是不一樣的.
一個人要活得健康有活力, 這兩者的平衡是要把握好的. 工作再成功, 也不能代替生活的空白; 生活再豐富, 也不能代替工作上的稱心如意.
一個家庭要幸福美滿, 兩個人的平衡也是必須的. self-balanced 不是意味著兩者的高度絕對相同, 而是高度差不能超過一個 level, 也就是它們至少夠的著對方. 自己跑太快時,愿意拉對方一把.
natural ordered data
雖然直白地談?wù)撃挲g\薪資\官階是不禮貌的\傷和氣的, 但是你必須承認(rèn)這就是事實(shí). 因?yàn)檫@些數(shù)字, 它們才好排序,才好 sorted, 不然你那么多算法都無從實(shí)施. 如果你把自己看成統(tǒng)計學(xué)上的一個點(diǎn), 蟻群中的一個螞蟻, 星星中一顆不發(fā)光的行星, 就不需要自卑難過了. 而且, 這也只是你暫時的狀態(tài), 你意識到你的起點(diǎn)低, 這是奮起直追的第一步. 只怕自己沾沾自喜而追得太慢.
binary search
世界上最快的算法效率是 log2(n),也就是二分法. 所以剛開始懂事時, 小孩就被教區(qū)分好人和壞人. 雖然現(xiàn)在知道世界是復(fù)雜的, 那種分法不準(zhǔn)確. 可是這是最有效率的教法, 總比混淆是非好! 所謂復(fù)雜, 主要是維度/角度的不同. 我們可以從道德\法律\財富\成績\智商\情商\外貌\性格等 attribute 上區(qū)分他們