學習知識的時候系統學習的利弊?

我從小學接觸到HTML和CSS,但是那時候也小,什麼都不懂,不懂找教程,不懂找書籍。所以都是想要用到什麼效果,百度,久而久之就有了感覺。

但是隨著學習的深入,後來接觸到PHP等,越來越發現底層知識匱乏對於高層知識學習是多麼大的一個障礙。

現在大學了,接觸到了單片機。一開始是非常希望能從底層開始,把基礎打紮實的。

但是大學裡有各種各樣的項目,讓我覺得,等到系統地學完再去接觸這些項目,都是什麼時候了,再一個就是,什麼時候才算是系統地學完了呢?

我也向學長學姐提問過,他們給我的回答是,他們也是這樣子,用到什麼才學什麼的。畢竟工科類本來學業就比較繁忙,如果要做點東西,很難擠出時間來系統地把知識過一遍

那麼,系統地學習知識,如何權衡?


能看到這題太好了,謝謝邀請我的朋友。

可以把全部知識想像成一個金字塔,分成若干層。這個金字塔極其宏大,任何人窮盡一生之力也只能掌握其中的一部分體積。

想把整個金字塔吃掉是絕無可能的,正如莊子說的「以有涯隨無涯,殆已」,我們要做的就是從中選擇對自己最有價值的某一塊。

應然的判斷往往考察著功利和效率,即對你來說,選擇哪個局部的金字塔是最有利的。

複習一下分層理論:上層依賴下層,每層都只依賴其直接下層,不依賴下下層。

所以我們要先知道,自己的工作具體在哪一層。

佛說箭喻經:如果你中了箭,先別研究是誰射的你,先去治病吧。

對自己價值最高的知識,毫無疑問是當前層知識,如果工作緊,時間有限,肯定是應當學它,沒什麼好說的。

對初學者來說,如果其智商和勤奮程度是一般水平,把學習目標停在這層也是種合理選擇。

但總要跨過初學這一段啊,所謂「知其然更知其所以然」,所謂「所以然」就是當前層的下層,然後再對下層進行「知其所以然」的操作,如此遞歸下降。

但人力有時而窮啊!腦力也是,所以遞歸不是無限的,而是在有限的層數上就會止步。

這個「有限的層」,就是總知識的「大金字塔」中屬於你的「小金字塔」,你的個人知識體系。

那對這個「小金字塔」的遍歷,是自頂向下,還是自底向上?

很多人說,用到什麼學什麼,也就是自頂向下,這是有道理的,原因有二:

1.用到什麼學什麼,能保證學到的東西都是有用的,從「用」的角度看這樣「學」性價比高

2.把學的東西用上,知識實際是經了一遍從書本輸入到你精神世界,再從你精神世界輸出到工作實踐的「編譯過程」,記憶效果會很好,從「學」的角度看效果也好

但自頂向下有一個壞處,就是不成體系,用題主的話說就是不系統。當你翻開一本下層知識的書,很容易發現有的章節很熟悉,有的章節則陌生。

畢竟,這種學習依賴於「從上層到下層」的調用過程,而不是把自己停留在下層書里逐句鑽研。

用到什麼學什麼,聽起來挺好,但有時候身在上層,不知道下層的情況,設計解決方案的時候想不到最優解,這時反而是「學到什麼用什麼」了。

俗稱「拿著鎚子,看到啥都像釘子」。

所以拿出時間,下死力氣讀下層的大書,甚至硬啃文檔和手冊,是有價值的。

如果你的解決方案的誕生,總是通過搜索引擎查找別人在類似問題上的經驗即可完成,姑且把這稱為「經驗型」的方案設計。

如果你的問題可借鑒的資料少,比較新穎、特殊、少見,需要你自己動腦子依賴下層知識和實際情況來設計方案,把這稱為「演繹型」的方案設計。

這兩者有個大區別,就是「最終的方案是什麼」,前者你是查出來的,後者你是想出來的。

「最佳實踐」和「方法論」這種詞在技術領域非常常見,包括「輪子」,這些是可借鑒的經驗。

但經驗這東西,同樣有個抽象分層,「Java語言生成二維碼的庫中XX庫比較好」和「高內聚低耦合」都是最佳實踐,顯然層次是不一樣的。

生成二維碼的庫你照著示例代碼照貓畫虎就行,高內聚低耦合這種抽象的經驗怎麼落地?就需要低一層的知識來承接它。

所以說「基礎不好」的結果就是容易沒有理解力和創造力。

用既有的方法完成工作,大概是能,但說到出了問題怎麼解決,特殊情況怎麼處理,眼前就發黑。

能被「正合奇勝」這種層次的「箴言」有效指點的,學以致用的,都是基礎過硬的人,否則只能當神諭來聽。

讓自頂向下和自底向上勝利會師。

把理論和實踐、演繹和經驗並用,形成知其然、又知其所以然的知識體系。

讓你的小小的金字塔穩如泰山、堅如磐石。

——上面說的都是側重功利和效率,其實人學知識還有個動機是好奇。

那就簡單了,你的求知慾在哪裡,就學哪塊的東西,又開心效果又好,學的時候遇到了新的興趣點,就「入棧」一下——這是深度優先,或者「記錄」一下,等學完當前的再研究新興趣點——這是廣度優先,無論哪種,都能體會到自己有進步了的愉悅感。

如果體會不到,估計是切入的層不對,找廣受推薦的入門書看是較好的選擇。

如果沒有愉悅感,估計是找到的書不好,換更好的書去讀吧。好書和爛書,其差別可大了去。

既然說到這了,順便說下多年讀書所得四點建議:

1.只讀好書

2.用寫作鞏固閱讀

3.多喝水

4.累了就休息

祝你在求知之路上大有所得!


系統性學習,不是自底向上,也不是自上而下,你可以把系統想像為一個圓,而這個圓,覆蓋的範圍,是你想要專註的領域相關的知識體系。比如你想學Web開發,那這個圓就是Web開發相關的知識體系結構,假如你想學單片機開發,那這個圓就是覆蓋單片機開發相關領域,這首先是一個範圍,是系統的邊界,確定了邊界,你就可以學得完,否則學海無涯,你就迷失在知識的海洋吧。

確定了系統的範圍之後,還需要認識到一點,就是知識是有層次的,有分類的。在學習的過程中,區分主幹和細枝末葉,要把握主幹知識,構建系統的知識體系結構(其實是可以通過網上的各種信息或向前輩們諮詢,自己做個初步的整理,不斷的完善),然後再逐個的專註突破細枝末葉的東西。這就好比畫畫,先畫輪廓,再描繪細節,而且要一層一層的塗色,才能得到最終的傑作。

在平時的項目實戰中,時刻在頭腦中保持一個問題:「這是如何工作的?」,多思考多總結,激發自己的求知慾,知識體系就可以逐漸的建立。 雖然說很多時候是用到什麼再學什麼,但是你系統性學習的好處就是,要學習的這些新知識,可以和自己內在的知識體系掛鉤,這樣你就可以很快速的定位自己的知識缺陷,明白自己現階段該往哪個方向努力。看似學的比較被動,但實際上,還是按自己心中的知識地圖再不斷的完善自己。業餘時間也多注意主動學習。

系統性學習的弊端就是,花費的時間比較長。但系統性學習的目標更加深遠,是為了精通一個領域。為了達到這個目標,這個所謂的弊端其實是必經的過程,不可避免的。注意優化自己的學習方法,避免浪費時間。

總結一下:

1. 確定你的專註領域。

2. 構建自己的領域知識體系結構,也可以說是內在的知識地圖,把握系統的邊界和大局。

3. 平時的工作和學習中,看似學的比較被動,用到啥學啥,但實際上也可以按圖索驥。業餘時間也多注意主動學習。

4. 平時的學習過程中優化自己的學習方法。

5. 基礎該學還得學,躲不掉,該花的時間就花,不要在這方面吝嗇自己的時間。

謝邀。


在大學裡還是有系統學習一遍的時間的,跟著課程走就行了。

等你成為工程師,其實你還是會不斷遇到類似問題,好的工程師都會找到適合自己的方法。

工程師主要為了解決問題,會圍繞一個具體目標學習,達到它之前不要擴展太遠,完成它之後再做一些補充,你有過越多這樣的過程和經歷,也就越能形成自己的方法論和自信。

圍繞著解決問題這一核心,你需要對系統的知識做一些取捨,對於不會嚴格阻礙你思路的問題或者理論,你嘗試著接受它作為一個結論,並建立一個屏蔽細節的行為抽象。解決問題後還有時間和興趣可以做一些深入的學習,可以讓你念頭通達,並加深理解。

拆分和抽象問題是個需要不停思考和建立知識結構的過程,讓我先看完這本書有時候其實是思維的惰性。


謝邀!

  1. 討論利弊,先確定判定標準和對象。因為有些事物於你為利,也許於他人則是弊。

  2. 系統學習的確可以幫助大多數人打好基礎,更便於學習進階的東西,但是也不代表所有人都可以通過系統的基礎學習獲得這種便利。


在國內現在的大學現在的風氣下,沒有足夠系統學習的氣氛。歷史遺留的很多專業水平不足的教授,教學班子。但是至少現在比較好的學校『課程體系』還算是合理。面向錢的編程,和面向短期虛榮心小成果的編程,都不需要成體系的學習。但是總有些學習是沒有那麼多為什麼的,只是為了離真相更近一步。

當然,能夠在畢業後找到一門不嚴重偏離自己的追求的方向工作,是系統了解世界的基礎。

做好自己的興趣點定位,確認自己真正需要什麼,在能力視野提升過程中不斷修正。一個規範的985/優秀211的本科加研究生課程體系已經是一個學科足夠的基礎。我感覺對沒門課程有足夠的認識,了解大部分課程是為了解決什麼問題,有哪些解決方案,提出哪些概念的程度;並且能夠成體系的運用幾門課程的知識貫穿,分析問題,做方案,解決實際問題;有基本的工程,實驗能力,方法(就是有人覺得完全無用的工程製圖,車床加工,大學物理實驗);足夠的實驗過程,並且能夠運用理論優化實驗,解釋實驗;能夠檢索文獻,了解前沿學科的進展。

世界上的科學問題,工程問題,解決的手段是類似的,能力的質變需要量變的基礎。沒有捷徑。現在的中文理工學習環境應該比前幾年好多了,無論是資料,還是做實事的人。社會總是會向合理的方向發展的。


他的回答不錯 @祁達方

我個人連續14年每天4小時學習。但是明顯感覺效率突增超過10倍是在系統思維習慣有了之後。

這個覺醒過程大概是:混沌-萌芽-框架成型-結構完善-形象具體

你可以:

大腦中想像學科的

1、主線邏輯導論、學科的目標構建一個框架;或第一層

2、細分子類概念、細分學科為小框架;或第二層

3、流程、工具、經驗模型為更小框架;或第三層

學習的過程,就是:

1、先定位,根據該概念、工具、經驗模型的特性,屬性什麼,和什麼有關,可以想像和之前的有什麼關聯,確定基於「基礎知識積累」之上的位置;

2、裝上去,從一點到另外一點,你可以看成是虛空連線般的摺疊。

3、修剪完善,驗證剛剛裝上去的新知識,修剪得更符合審美(保留這個詞);

4、經常查漏補缺,把明顯空洞的補上去;已經裝上去的完善;

5、重複以上過程,從3面體到12面體,再到100面體,直到一個世界。

這樣,不論你什麼時候學什麼東西(不同學科領域行業),是否有斷層,深度如何——均不影響你的成長。

以上,我個人總結的基於「系統思維」的學習方法。


一點小感想.

個人感覺,肯定是自上而下學.

自下而上的戰線太長了,容易迷失在細節中.

比如:

int a = 1;

int b = 2;

int c = a + b;

這段代碼到底發生了什麼?

先學c語言,然後你有疑問,去學彙編,還有疑問,去看數字電路的知識,明白加法器的實現,帶著疑問去學比較好.

如果是自下而上,你首先不知道路怎麼走,也容易迷失在細節中.

比如:

printf("Hello,world!
");

C語言你可以反彙編,可以去看Linux下的實現,一步一步帶著疑問尋找.

如果自下而上,你怎麼怎麼學?可能怎麼去搜索都不知道.

PS:我敢說,大部分程序員都不知道printf("Hello,world!
");這段代碼,電腦內部到底發生了什麼.


這不是系統學或不系統學的問題,而是執行力的問題。由於你的執行力低,所以導致系統學習的成本低於收益。但有的人執行力好,所以能進行系統的學習,久而久之差別就體現出來了。

你如果是除了吃飯和睡覺以外,時間都用來學習了,這個問題才是有意義的。不然你問題的潛台詞應該是「時間用於學習的利弊」。


推薦閱讀:

二進位是如何將加減乘除變換為加法實現的?加法是如何由邏輯運算與、或、異或來實現的?
決定論可以被證偽嗎?
計算機碩士期間,如何更好地成長和「變得優秀」?
極端反人類的編程語言會有哪些特徵?
電腦重新啟動是怎麼實現的?

TAG:學習 | 編程 | 計算機 | 嵌入式系統 | 通信工程 |