面對人生這道程式,該如何編碼?

2021-09-10 17:22:28 字數 2541 閱讀 1193

近來,觀察到一些針對少兒的程式設計培訓課開始多起來了,看了下這些培訓課的宣傳手冊,原來程式設計已經逐步進入基礎教育體系,開始納入高考科目了。

我最早接觸計算機和程式設計已是在初中之後,正式的學習基本到了大學才開始,經過數年學校學習,再加上工作十餘年下來,如果說程式設計對我有什麼影響的話,我感覺程式設計作為一門技能的影響並不大,更大的影響可能是在思維方式上。程式思維不僅被用於解決程式技術問題,也幫助解決了很多人生上的問題與困惑。

當我們編寫**解決問題時,做的最多的大概就是把零散的**邏輯組織成函式,遇到對應的問題就呼叫相應的函式,再把函式組合起來解決更大的問題。

經驗豐富的程式設計師慢慢都會形成自己的專屬函式庫,甚至一些半成品的腳手架(框架)**庫,這裡面可能還包括一些能自動生產特定場景腳手架**的工具成品。這些老道的程式設計師,他們在過去參與了大量的專案,會不斷把這些專案中共通的部分提煉出來形成自己的專屬函式庫,並從乙個程式帶到另乙個程式。

這樣的做法其實大大提公升了他們編寫新程式**的效率和效果,節省了為每乙個新程式付出的勞動。這些已經過測試並應用的成熟函式庫意味著不再需要重複測試,更可依靠與信賴,分離了我們有限的注意力,讓我們能專注在新應用的新問題上。

這符合人的自然思維模式,我們也會採用別的領域的專業人士的思想來指導和解決問題,並且還能節省時間。並把這些證明能解決問題的思想儲存下來成為常規思考方式,或者一些小竅門。但如果你想成為乙個高效率的人,其實就需要像程式設計師一樣預先準備好屬於自己的專屬 「思維函式」 庫。

你知道如何使用這個庫,在遇到合適的場景時呼叫對應的函式,幫助你解決問題。思維函式庫就是在人生過程中逐漸沉澱下來的底層庫或 api,它是需要不斷被提煉、完善甚至 debug 的。而且,你要時時注意在工作或生活的合適場景下去呼叫它們,再好的庫不被呼叫也是沒用的。

有時侯,人生裡總會碰到一些問題或困惑,一時想不明白,經過長期的思考或實踐,有一天終於想明白了,其實這時就形成了乙個新的思維函式,沉澱到你的底層庫中,成為了寶貴的經驗。

人生的大課題無非:生存與發展;但這可能過於抽象,我們需要更具體一點。

其實在人的不同階段會面臨不同的課題,這些課題就像乙個個程式題目,需要去編碼解決,就會呼叫到我們的思維函式。以我自己為例,人到中年,當前的人生階段又面臨哪些課題呢?通俗點看,我們習慣於以下兩個維度:

工作十餘年來,走上了一條從程式設計師到架構師,再到技術領導者之路。關於職業生涯的成長課題,其實我已經反覆思考了好些年了,甚至因此在機緣合適之下寫成了專欄,總結成了程式設計師的成長法則。

而現階段面臨的無非也是我曾經遇到過的區域性最優點和跨越的障礙問題,面臨這樣的具體處境,現有的思維函式庫中其實都沒有乙個確定的解,它會面臨一定的概率機會。而我自己能控制的部分,無非就是鞏固現有領域,延伸擴充套件體系,預期可以提高潛在的概率,但實際並沒法量化測量。

絕大部分事業的起點和初期階段,努力和結果之間會有更大的概率確定性;越走越遠後,這樣的確定性會逐步降低,慢慢直到不確定性佔據了主導。你的函式庫一開始能幫你求得乙個確定的解,慢慢的,開始只能回答你乙個概率,甚至這個概率也是模糊的。

在沒有家庭之前,首先面對的課題自然是如何組建家庭。回顧當年,面對這個課題,其實並沒有沉澱出什麼特別好的思維函式去得到乙個最優解,基本就是靠感覺和運氣。有了家庭之後,再有了孩子,大部分人又都會面臨另乙個主流課題:小孩教育。

關於這個課題,我想很多人在成為父母時都沒能想清楚,基本都是參照同齡人或臨時看個育兒文章,就用於指導行動的。在我家小孩成長的幾年中,我經常會思考這個課題,慢慢提煉出了一些思維函式,核心描述大概是:創造環境優於具體的技能教育。

我的答案中包含的邏輯是,相對個體的內因,環境更是主要因素,因為乙個個體很難超脫於所處的或大或小的環境。在乙個環境中,大幅偏離環境的均值是低概率的。就像同乙個國家同一批的高水平運動員,水平差距可能很小,但不同國家之間可能差距就大了,這就是環境外因帶來的差異。

就小孩學習這件事,我不過是在創造力所能及的 「硬體」 和 「軟體」 環境,包括自然的,也包括人文的環境,也可能在環境中去塑造榜樣,以創造良性競爭。環境水平基本決定了他的基礎值,而自身的天賦、興趣會在此基礎上去偏移。

所謂課題分離,就是每個人都有自己的課題,你只要為自己的課題負責,而不要干涉別人的課題。一切人際關係的矛盾都起源於對別人課題的妄加干涉,或者別人干涉了你的課題。

我和孩子在不同的階段,都有自己的課題。學習,是孩子的課題,不是我的課題;我的課題是為他的學習提供環境和幫助,讓他明白學習的意義,為什麼對他重要,而在他過於貪玩時,做出必要的提醒。

所以,小孩教育其實關乎兩個分離的課題,很多矛盾的**在於我們過於迫切的干涉。而人的成長本來就是一件容錯性非常高的過程,你費盡心血的干涉、甚至設計的規定動作也許得到的效果微乎其微,反而可能種下了矛盾的因。

既然是函式,應用到了具體的課題上,就會有輸入和輸出;但慢慢你會發現,人生的課題,應用的函式,輸入通常是確定的,輸出則往往是概率的,不確定的。

人體就像硬體,而人這個硬體的執行效率是會隨著年齡慢慢下降的。所以,有時,我在想相對年輕人,中年人最核心的競爭力其實就是這些沉澱下來的思維函式,它們應該是更優質,更有效,更少 bug 的庫**。

世間那麼多人,那麼多 「庫」,如何測量和評價,如何讓別人相信你的 「庫」 更好?這又是乙個課題了。

面對人生這道程式,該如何編碼?

近來,觀察到一些針對少兒的程式設計培訓課開始多起來了,看了下這些培訓課的宣傳手冊,原來程式設計已經逐步進入基礎教育體系,開始納入高考科目了。我最早接觸計算機和程式設計已是在初中之後,正式的學習基本到了大學才開始,經過數年學校學習,再加上工作十餘年下來,如果說程式設計對我有什麼影響的話,我感覺程式設計...

如何面對「人生的困境」

生命是一種長期而持續的累積過程。我只在乎每天二十四小時點點滴滴的累積。許多同學應該都還記得聯考前夕的焦慮 差一分可能要掉好幾個志願,甚至於一生 的命運從此改觀!到了大四,這種焦慮可能更強烈而複雜 到底要先當兵,就業,還是先考研究所?我就經常碰到學生充滿焦慮的問我這些問題。可是,這些焦慮實在是莫須有的...

如何面對程式crash

在linux系統下面,因為非法位址的錯誤而導致的程式崩潰十分常見,面對這類問題,我們一般的做法只是去仔細研讀源 並猜測問題所在。那麼有沒有更方便的方法呢?請參看如下標示 kernel check a bad boy rotterdam.elf pid 258,prio 0 has error sig...