作為一個程序猿,王陽明的心即理,知行合一怎麼和寫代碼結合起來?

本屌是一個程序猿,天天敲代碼的那種,最近看了王陽明,感覺他的心即理,要知行合一的思想很高,但是理解上不是很透徹,怎麼把這種思想和寫程序結合起來?

玄學編程系列:
作為一個程序猿,王陽明的心即理,知行合一怎麼和寫代碼結合起來? - 程序員
假如畢加索是程序員,他會寫出怎樣的程序? - 信息技術(IT)
如何用王家衛的方式寫代碼? - 編程


知行合一,知就是數據,行就是函數,數據就是函數,函數就是數據。函數可以作為參數傳入,也可以作為函數返回值動態生成 ,這是說高階函數。

心即理,類型即文檔,這是說類型系統。

天不變道亦不變(這話不是王陽明說的),變數一經聲明就不能再次賦值,函數不能有副作用。這是說變數的不變性。

「你未看此花時,此花與汝心同歸於寂。你來看此花時,則此花顏色一時明白起來」,這是說惰性求值,lazy evaluation, call by need

問,王陽明用的是哪種語言?

附送這個問題的道家版答案:

是圖靈夢見自己變成了機器,還是機器夢見自己變成了圖靈?——《編程之道》


你寫的出來的代碼才是你真正知道的代碼,
你真正知道的代碼你就一定能寫得出來。
——知行合一

所有的代碼最終來源於人的創造,除此之外別無來源,不可能是機器自己寫的,也不可能是蛤蟆寫的。
——心外無物

技術本身是無罪的。
——無善無噁心之體

關鍵在於人如何利用這些技術,如果用來宣傳先進的思想觀念、發展先進的生產力和創造符合人民大眾需求的精神文明,那這個行為就是好的;如果像某度那樣恬不知恥,那就是不好的。
——有善有惡意之動

就算是謀度這樣恬不知恥的垃圾公司,在被曝光之後,也要弄一個毫無下限、毫無誠意的所謂調查和公開信,說明無論是人還是衣冠禽獸,都知道什麼是好什麼是壞。
——知善知惡是良知。

既然謀度這麼無恥,那我們就一起換bing或者谷歌吼不吼啊?
——為善去惡是格物

只做了一點微小的個人理解,非常慚愧!謝謝大家!


我們都看過很多書,關於設計模式,關於代碼整潔,關於性能,好象明白了很多道理。

那麼,知行合一的意思是

如果你知道 代碼這麼寫,是不好的
就不要這麼寫。

私下裡以為,格物致知,知行合一,是程序員工作和生活的基本原則。

類庫為什麼會提供這個方法?這就需要我們去格,去探本究源。
產品經理、客戶為什麼提出這個需求來?也要去格,說不定,提出的需求與真正的需求相差很遠。
不斷的格,就會知道得更多,進而知行合一,指導你的編碼行為。


好多莫名其妙的答案啊

程序員的知行合一就是:

1. 有了想法就實現出來
2. 學習新語言的最好途徑不是看書而是做一個自己設計的項目
3. 不要光是指責別人的設計不好自己設計一個更好的出來


只需要想清楚這麼一個問題:

你為什麼要做程序員。


想到一個演算法時,告訴我你怎麼用程序去實現它?

演算法到程序的過程就是知到行的過程。

知行本一體,只因愚鈍分。也就是說想到一個演算法和實現它是一體的,混元無二的,只不過你的理解能力有限,或者編程能力有限,不能達到一體,才從知到行,或者行到知,就和我們開始學編程一樣,有可能先學演算法,也可能先懂程序,但是本質是不變的,都是學會一種東西。

但是如何去達到知行一體這個境界?

無善無噁心之體,有善有惡意之動。
知善知惡是良知,為善去惡是格物。

這是陽明先生的四句口訣,無善無惡這個東西是一個一體的東西,我們可以把他看作你說的程序,那麼可以這樣理解:

首先,我腦袋裡想的是程序,心中有程序,當我想寫程序時,意動,腦袋裡的程序開始了活動。其次,程序到底是個什麼玩意,我為什麼寫?你能認識到這一點,說明你還有良知,能去思考程序背後的東西,而不是單純的碼農,可是當你想到一個好的程序,或者一個好的演算法,該怎麼實現?為善去惡,演算法和單純的程序框架,你應該能找到權重,這也就是格物,不斷調試的一個過程。

到此為止,相信你一定想迫不及待的去寫個程序了吧?不過記得和心相互印證喲!

我喜歡寫短句,這次寫了好長…


很棒的問題,我雖然回答不了,但還是對知行合一很感興趣。我想你這個問題可以再擴展一下,就是知行合一如何指導各行各業的具體工作?
我自己也有個疑問,就是作為知識工作者,面對自己不了解或者不懂的事物時,如何運用知行合一做出合理的判斷或決策。


簡單點說,就是所想即所寫,完全無bug


說白了就是要把自己的思想(精力、興趣等)集中到自己要做的事(比如編程)上來,而不是心裡明明不喜歡編程,有點抵觸等,因為外因(老闆的壓力、生存、想玩遊戲等),知和行是一個統一體,知是內心的良知,行是知的外在表現,詩人因為喜歡才會作詩,畫家因為喜歡作畫,你要做的就是找到自己的良知,像追女人那樣去創作程序,做到真正的內心專註於自己的事業。

核心就是致良知(建立強大的內心,把自己的興奮點調整到編程上來),有了方向後,自然就會體現在自己的行動上。


寫代碼為啥不用馬列主義,毛澤東思想呢?


知是你去了解一個什麼新東西,或設計模式,或什麼框架,行是你能根據剛學到的知識應用於項目中


函數式編程。


對於知行合一,陽明子說的很清楚

知之真切篤實處即是行,行之明覺精察處即是知

你問行,但你確信已經知了嗎?

那麼到底是應該先知還是先行呢?

這就又回到應該怎麼理解"知行合一"的問題上。不幸的是這並不是一個可以三言兩語說清的問題。如果可以,也就不會有陽明子之後陽明心學的分裂和沒落了

如果你一定需要一個答案,我想"看四書"會是一個不太錯的答案


程序猿讀c++ prime,想做這世界第一的代碼高手,便欲格物;然對格物卻不知所以。於是就打起了這 0 和 1 的主意,念到:古有王陽明格竹悟大道,那我若格懂了這0 和 1的大道,自然天下無敵,可寫出這世界最完美的代碼。

程序猿倒也堅毅,如王陽明一般不吃不喝,愣是看了0 和 1格了七日,終因過度疲累而暈倒;此時另一帥氣程序猿從旁路過,見到暈倒的他便將其輕輕抱起,悉心照顧。

兩日後,程序猿終於醒來,卻也仍神志不清,嘴中仍低聲念到,「1...1...1..」;在一旁燒水煎藥的程序猿聽到,不禁臉泛微紅,害羞的說道,「討厭,你怎麼知道人家是0~(≧▽≦)/~啦」

兩人遂終成眷屬。


推薦閱讀:

你如何理解敏捷開發?
有沒有讓你眼前一亮的代碼?
程序員如何轉行做健身教練?
為什麼有教師節沒有程序員節?
你們周圍有在 GitHub 、博客上很活躍,但工作收入並不是很好的碼農嗎?

TAG:程序員 | 代碼 | 程序 | 王陽明王守仁 | 知行合一 |