路人問:一本數據結構與算法的書,以數組舉例,原本數組的概念挺簡單的,可是書上寫得像一種更廣義的數學概念同樣,有沒有必要去理解? 算法
智者回答:該不應學,用不用學,這種問題,就是屬於讓別人無法回答的問題。嚴格意義講,全部知識都是有意義的,確定或者否認的回答都是片面的。但具體對於你如今的階段需不須要學,是因你而異的。個人建議是,你已經有這個困惑了,其實就是不想學了,那就跳過去,等你之後發現這個知識有用,再回頭仔細看,撿起來。學習就比如旅行,任性一點兒不要緊,向你喜歡的風景出發。有時候回頭看,發現本身錯過了什麼風景,再回頭去追尋並不晚。不用懼怕錯過,重要的是一直在旅程上。編程
以上這個小對話,正對應着咱們在學習中的心態問題。數組
好比在學習數據結構這門課時,不少同窗都表示本身對 C 已經遺忘了。甚至有的同窗說要回頭去從新學 C 。我我的認爲大可沒必要。數據結構
在這裏,和你們分享一個個人學習心得。最重要的一條,就是學習千萬不要完美主義。編程語言
首先,要衝着本身的目標去。數據結構課程就應該把主要精力放在算法思路的學習上。課程中代碼實現細節上,可能會存在一些不懂的編程語言的專有概念。其實理解一個大概,知道是幹什麼的就好。工具
第二點就是,學習不要奔着 100 分去。咱們不該該過分着眼於咱們還不夠完美。學習不是要麼 0 分,要麼 100 分 的。80 分是收穫;60 分是收穫;20 分也是收穫。有收穫最重要。可是由於着眼於本身的不完美,最終放棄了,那就是完全的 0 分 了。post
若是你去聽頂級學府,好比斯坦福的課程,就會發現,老師是不可能把全部細節都講清楚的。你們必定都學過 C 語言,C 語言讀取數據 scanf("%d",&a)
,這個 &a
爲何要有個&
?可能有的老師會講什麼地址符一類的。可是我認爲,頂級的老師會告訴你:先接受它,記下來,scanf 中,變量前面就是先加個 &
。由於若是非要介紹什麼地址符,相信 99% 的同窗在初學的時候根本沒法理解,反而頭大,搞暈了,挫敗感強,以爲這東西好難。但其實這個難度是初學 C 語言不必接觸的難度。等咱們真正深刻之後,再回頭看,就天然而然理解了。千萬不要試圖一上來就搞懂一切。學習
就好像大一剛剛入門 C 語言的時候,不少同窗在學習過程當中就一直在訴苦,說很難,爲何這裏是這樣寫,爲何那裏是那樣的。力求從一開始就搞明白一切。這樣只會越學越體會不到用處。想要更快入門,就多瞭解怎麼用,而不是爲何這麼用。會使用工具才能更好地理解工具。code
咱們沒有那麼多時間去把東西一開始就完美地弄明白,我以爲這也不現實。但能在一開始優雅地用起來,不是更讓人有成就感嗎?get
所謂的「抓大放小」。若是一時沒搞懂,問本身一句,這部份內容是否是當前必定要搞懂的知識。若是是,固然要死磕;但若是不是,記錄下來,嘗試繼續前進,之後回頭再看。
對於學習的知識,不要妄圖一次性的徹底掌握,所謂溫故而知新。多給本身一些回頭看的機會,相信不少東西都會柳暗花明的。
本文是系列二,以後會陸陸續續補全系列其餘。
附掘金技術徵文連接