? 1
? 時間回到我上小學的時期,大概是在三年級,有一件事讓我記憶猶新。
? 那天我放學回家做數學作業,作業過程中遇到一道題,內容大概是這樣:有一棵樹,從這棵樹上飛走了三只鳥,又飛走了四只鳥,問一共飛走幾只鳥?明眼人一看就能得出答案是七只,答案簡直太容易了,可就在那天,我也不知道腦子當時出了什么問題,因為讀不懂這道題的邏輯,導致不知如何下手計算,自己的大腦進入了一個怪圈:“題目沒有告訴我樹上有幾只鳥啊,萬一沒有鳥呢,豈不是沒有辦法飛走”!
? 思維定式到這里繞不出去,我就悲劇了,而且我性子又急,氣到想要哭出來的節奏,后來由我姥爺對我耐心講解個把小時,才讓我有點開竅。如今回想起這件事,覺得當時自己這么蠢,都沒有被留級,還真是幸運撒。不過話說回來,我確定當時進了鉆牛角尖的怪圈。
? 2
? 出于對計算機底層原理的熱愛(非裝逼的熱愛),我最近在學習c語言。關于c的強大我不在這里贅述了,如果您有興趣了解,直接問度娘最好。
? 初學一門編程語言會涉及到數據類型、數據結構、流程控制、函數庫知識等等,而c中的指針操作更是它的靈魂,當然也最有趣。問題來了,好多初學編程的同學指針學的不好,我也算一個。
? 指針操作與內存操作是一脈相承的,但是內存操作歸咎于到計算機的底層原理,需要對計算機硬件有一定了解,而學好指針可以不對計算機內存知識有過深的了解。我非計算機科班出身,頭腦中并沒有一個完整的計算機系統體系,內存方面的知識更是不甚了解,但當我在思考指針操作時也會連帶思考內存的運行原理,這很明顯超出了我的知識能力范圍,可是出于好奇(此時絕對是個貶義詞),我又開始探索計算機的底層知識,結果鬧的自己一頭霧水。浪費時間不說,指針這塊內容我依然處于懵懂的狀態。
? 本來應該學習編程,卻學起了計算機科學,耗費了不必要的精力且最終得不償失。
? 后來我仔細分析了上述錯誤,突然發現自己是不是有點想太多了。如果暫時把握不了計算機底層知識,至少先把指針操作方面的語法格式給熟記下來,先寫出代碼,做到要事第一,等未來有時間和精力再回過頭去思考和學習。
? 我把這種思想稱為“確定邊界”,也就是說我們要明白我們自身對知識的訴求點是什么?是只達到應用層還是更深入理論層,是只知道如何操作還是要做學術。
? 確定了邊界,就代表我們確定了做事的度量標準,確定了我們的最終目的是什么。比如我現階段學習c的目的是為了解結構化編程,而結構化編程只需要用c的簡單語法寫幾句,聲明幾個函數出來就可以了,但是如果我需要通過c了解計算機系統,那么簡單的編程很顯然滿足不了我的訴求,這下我要通過c再去學習算法和c的一些函數庫。
? 說到底,確認邊界的目的就是為了用最少的資源達到最好的結果和效果,這是一個經濟學問題,本質上是個人時間資源的稀缺性。
? 說到這兒,文章已至結尾,希望各位觀眾能夠理解我所表述的內容。