第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
慕課專欄

目錄

索引目錄

用技術(shù)人的眼光看世界 • 程序員技術(shù)指北

原價 ¥ 99.00

立即訂閱
06 高效學(xué)習(xí)的秘密
更新時間:2020-04-01 10:25:41
人的差異在于業(yè)余時間。——愛因斯坦

在慕課網(wǎng)做了這么多實戰(zhàn)課,時間長了,收到了越來越多同學(xué)的問題。除了專業(yè)知識上的問題,遇到的最多問題,就是學(xué)習(xí)方法層面的問題了。由于我本人不是學(xué)習(xí)方法的專家,所以不敢輕易說自己的學(xué)習(xí)方法有多么先進。更重要的是,我不認為有一種固定的“好”的學(xué)習(xí)方法適合所有同學(xué)。如果存在那樣的方法,學(xué)習(xí)這件讓人頭疼的事兒,就不頭疼了。由于每個人的背景不同,擅長不同,每個人都有適合自己的不同的學(xué)習(xí)方法;與此同時,不同的領(lǐng)域,由于其本質(zhì)的不同,學(xué)習(xí)方法也應(yīng)該是不同的。我堅信:每個人去尋找適合于自己的學(xué)習(xí)方法,是每個人一生的話題。別人敘述的所謂的“學(xué)習(xí)方法”,只能作為參考用。

不過我在慕課網(wǎng)做答疑的過程中,確實看到了很多同學(xué)的學(xué)習(xí)方法有改進的空間。在這里,我想簡單總結(jié)一些我見過的,認為可能不是那么得當(dāng)?shù)膶W(xué)習(xí)方法,僅供參考。這篇文章不是一套“如何學(xué)習(xí)”的理論,而是一些零碎的個人見解,更像是在總結(jié)“學(xué)習(xí)中的那些坑”。不過,在我寫完這篇文章之后,回頭看,我覺得,我自己的高效學(xué)習(xí)秘訣,其實都在這篇文章里了。

1. 不要完美主義

我觀察到的大多數(shù)同學(xué)犯得最最最最大的“錯誤”,就是在學(xué)習(xí)上“完美主義”。乃至后續(xù)很多其他的問題,在我看來都和這個問題是直接相關(guān)的。不要完美主義!不要完美主義!不要完美主義!重要的事情說三遍。

舉個最經(jīng)典的例子,也是我經(jīng)常舉的例子,背英語單詞(在這里我們先不聊背英語單詞是不是好的英語學(xué)習(xí)方法,我們只看如果我們想要背英語單詞的話,應(yīng)該怎么背)我發(fā)現(xiàn)很多同學(xué)拿著紅寶書,第一個 list 都沒翻過去就放棄了。這是因為每天背完第一個 list 以后,第二天會發(fā)現(xiàn):第一個 list 還是有很多單詞沒掌握,然后就繼續(xù)背第一個 list。然后一周后,發(fā)現(xiàn)自己第一個 list 都搞不定,覺得英語好難,徹底放棄了。這就是“完美主義”:不把第一個 list “徹底”掌握不肯繼續(xù)前進。這樣是不對的。背了一個 list,能多記一個詞,就是進步。就算一個詞都沒記住,模糊有了印象,也是一種進步。我們不應(yīng)該過度著眼于我們還不夠完美。學(xué)習(xí)不是要么 0 分,要么 100 分的。80分是收獲;60分是收獲;20分也是收獲。有收獲最重要。但是因為著眼于自己的不完美,最終放棄了,那就是徹底的 0 分了。

仔細想,這種“完美主義害死人”的例子特別多。我看到過很多同學(xué),其實是在學(xué)習(xí)的路上,被自己的“完美主義”逼得“放棄了”——由于學(xué)習(xí)中有一點沒有做好,遭受到了一點點挫折,最終就放棄了整個學(xué)習(xí)計劃。每個人都一定要接受自己的不完美。想開一點:我們都不是小升初考了滿分,才能上初中的;也不是中考考了滿分,才能讀高中的;更不是高考考了滿分,才能念大學(xué)的;將來也不會是大學(xué)所有科目都是滿分,才能出來工作。不完美其實是常態(tài),根本不會影響我們學(xué)習(xí)更多更深入的內(nèi)容。但是在自學(xué)過程中,很多同學(xué)卻要求自己在自己制定的每一步計劃中都達到“完美”,才進行下一步。最終結(jié)果,通常都是“放棄”。

可能有的同學(xué)會跳出來反駁我:學(xué)習(xí)當(dāng)然要認真??!在這里,我必須強調(diào),我所說的“不要完美主義”,和“學(xué)習(xí)認真”是不沖突的。什么是“完美主義”,什么又是“囫圇吞棗”,這是一個“度”,每個人其實不一樣。不要“完美主義”,不代表學(xué)習(xí)可以草率前行。每個人都必須要找到適合自己的學(xué)習(xí)節(jié)奏。我的經(jīng)驗是:在自己又因為自己的學(xué)習(xí)進度而沮喪的時候,問自己一句:是不是自己又犯“完美主義”的毛病了:)

2. 不要過度“學(xué)習(xí)路徑依賴”,學(xué)習(xí)要沖著自己的目標(biāo)去

現(xiàn)在信息太發(fā)達了,對于大多數(shù)領(lǐng)域的知識,網(wǎng)上會有很多所謂的“學(xué)習(xí)路徑”。我不是說這些學(xué)習(xí)路徑?jīng)]有用,但是不能“過度”依賴這些所謂的學(xué)習(xí)路徑。

比如,很多同學(xué)想學(xué)機器學(xué)習(xí),大多數(shù)學(xué)習(xí)路徑都會告訴你,機器學(xué)習(xí)需要數(shù)學(xué)基礎(chǔ)。于是,很多同學(xué)就轉(zhuǎn)而學(xué)習(xí)數(shù)學(xué)去了,非要先把數(shù)學(xué)學(xué)好再去學(xué)機器學(xué)習(xí)??墒前l(fā)現(xiàn)數(shù)學(xué)怎么也學(xué)不好(在這里,可能完美主義的毛病又犯了),而機器學(xué)習(xí)卻一點兒都沒學(xué)。最終放棄了機器學(xué)習(xí),非??上АF鋵?,如果真正去接觸機器學(xué)習(xí),就會發(fā)現(xiàn),至少在入門階段,機器學(xué)習(xí)對數(shù)學(xué)的要求沒有那么高。正因為如此,我一直建議:只要你在本科接觸過高數(shù),線數(shù),概率這些科目的基礎(chǔ)概念,想學(xué)機器學(xué)習(xí),就去直接學(xué)機器學(xué)習(xí)。學(xué)習(xí)過程中發(fā)現(xiàn)自己的數(shù)學(xué)不夠用,再回頭補數(shù)學(xué)。在這種情況下,數(shù)學(xué)學(xué)習(xí)也更有目標(biāo)性,其實效果更好。

類似這樣的例子還有很多,很多同學(xué)想學(xué)習(xí)做 ios app,就先去精通 swift 語言,或者想做 android app,就先去精通java 語言。在我看來大可不必。以我的經(jīng)驗,只要你有一門編譯型語言基礎(chǔ),大概看一下這些語言的基礎(chǔ)語法,就可以直接上手 ios 或者 android app 的開發(fā)了。先能做出一個最基本的 app,在這個過程中,就會意識到語言特性的意義,再回頭深入研究語言也不遲。此時還能結(jié)合真實的開發(fā)任務(wù)去理解語言特性,比沒有上手 app 開發(fā),抽象地理解語言特性,有意義得多。

再比如,我的《算法與數(shù)據(jù)結(jié)構(gòu)》課程和《玩轉(zhuǎn)算法面試》課程,在視頻中都是使用 C++ 進行編碼的。雖然我一再強調(diào)對于算法的學(xué)習(xí),語言不重要,但還是有很多同學(xué)表示,要先把 C++ 學(xué)透,再回來把課程中的算法學(xué)好。這是完全沒必要的。事實上,在我的這兩門課程中,我看到的收獲最大的同學(xué),是那些能夠把課程中的算法思想理解清楚,然后用自己熟悉的語言去實現(xiàn)的同學(xué):)

依然是:不要“過度”學(xué)習(xí)路徑依賴,什么叫“過度”,每個人的標(biāo)準(zhǔn)不一樣。每個人都需要尋找自己的那個“度”。

3. 不要迷信權(quán)威的“好”教材

不是說權(quán)威教材不好,而是每一本教材都有其預(yù)設(shè)的讀者群,如果你不在這個范疇里,教材再好也沒用。最簡單的例子:再好的高數(shù)教材,對于小學(xué)生來說,都是一堆廢紙。

我經(jīng)常舉的一個例子是《算法導(dǎo)論》。我個人建議如果你是研究生或者博士生,已經(jīng)有了一定的算法底子,才應(yīng)該去閱讀《算法導(dǎo)論》。但是對大多數(shù)本科同學(xué),尤其是第一次接觸算法的同學(xué),《算法導(dǎo)論》實在不是一個好教材。但很可惜,很多同學(xué)在學(xué)習(xí)中有上面兩個毛病,既過度路徑依賴——別人說《算法導(dǎo)論》好,學(xué)習(xí)算法要走學(xué)《算法導(dǎo)論》這個路徑,自己就不探索其他更適合自己的學(xué)習(xí)路徑了,一頭扎進《算法導(dǎo)論》里;同時還“完美主義”的傾向——對于《算法導(dǎo)論》的前幾章,學(xué)習(xí)得事無巨細,但其實接觸了很多在初學(xué)算法時沒必要學(xué)習(xí)的內(nèi)容。最后終于覺得自己學(xué)不下去了,放棄了對“算法”整個學(xué)科的學(xué)習(xí),認為算法太難了。

誠然,算法不容易,但是,一上來就抱著《算法導(dǎo)論》啃,實在是選擇了一條完全沒必要的、更難的、甚至可能是根本走不通的路。對于一個領(lǐng)域的學(xué)習(xí),了解市面上有什么好的教材是必要的,但也不能迷信權(quán)威教材。每個人必須要去探索如何尋找適合自己的學(xué)習(xí)材料。

4. 不要看不起“薄薄”的“傻”教材,這些你看不起的學(xué)習(xí)材料,可能是你入門某個領(lǐng)域的關(guān)鍵

很多同學(xué)問我最初學(xué)習(xí)算法的是什么教材,我告訴他們是這本教材:《算法設(shè)計與分析基礎(chǔ)》。在這里,我完全沒有推薦這本教材的意思。事實上,現(xiàn)在我有點兒“鄙視”這本教材。因為我在學(xué)習(xí)它的過程中,發(fā)現(xiàn)這本教材有很多錯誤(幫助它糾正錯誤其實也提高了我的水平:)當(dāng)然,現(xiàn)在這本書的版本可能也和我當(dāng)時學(xué)習(xí)的版本不同了,大部分錯誤應(yīng)該已經(jīng)糾正了。)但它確實是我的一本很重要的算法啟蒙教材。關(guān)鍵原因是,它夠薄。

在大多數(shù)時候,如果有人問我教材推薦,基本上我的回答都是,如果是入門水平:隨便找一本在京東、亞馬遜、豆瓣上評分不太差的“薄”教材,就 ok 了。在這里,關(guān)鍵字是夠“薄”。因為“薄”的教材能讓你以最快的速度看完,對整個學(xué)科有一個全盤的認識:這個領(lǐng)域是做什么的?解決什么問題了?整體解決問題的思路是怎樣的?解決問題的方法大致是怎樣劃分的?一些最基礎(chǔ)的方法具體是怎樣的?這些在初學(xué)階段是至關(guān)重要!是讓你全盤把握整個領(lǐng)域脈絡(luò)的。雖然通過這么一本薄薄的教材,你的脈絡(luò)把握肯定不夠全面細致,但比沒有強太多!我看過不少同學(xué),一上來學(xué)習(xí)《算法導(dǎo)論》,關(guān)于復(fù)雜度分析的筆記做了好幾頁,然后就放棄了,連什么是動態(tài)規(guī)劃都不知道。這樣完全沒有對“算法”這個領(lǐng)域有全面的認識,甚至可以說根本沒有學(xué)過“算法”!先用“薄”教材入門,再找“厚”教材,細細體會其中的細節(jié),是我百試不爽的學(xué)習(xí)方法。
另外,在這里,我還要強調(diào)“入門教材”,很多教材雖然夠“薄”,但不是“入門教材”。大家要注意。

5. 不要迷信單一教材

很多同學(xué)非要我推薦一本具體的“薄”教材入門,說實話,很多時候讓我有點兒哭笑不得。因為我隨便推薦一本,我確實不敢保證它是“最好的”,“最適合你的”,但是各個領(lǐng)域那么多教材,我又不可能都一一看過,一一比較過。最最重要的是,我的學(xué)習(xí)經(jīng)驗告訴我,在大多數(shù)情況下,學(xué)習(xí)不是一本固定教材可以搞定的。非要找到一本“最適合自己的”教材,然后就一頭扎進去,其實是不科學(xué)的。我印象很深刻,我讀本科的時候,那會兒申請了一個項目,要做一個網(wǎng)站,我一口氣從圖書館借了 10 本建站教程,然后以一本最薄的書為主干去看,發(fā)現(xiàn)這本書介紹不清楚的概念,馬上就從其他書里找答案。通常不同的作者對同一個事物從不同的角度做解讀,是能夠幫助你更深刻地認識一個概念。基本上一個月的時間,我就從一個完全的網(wǎng)站搭建小白,做出了這個項目需要的網(wǎng)站。這個習(xí)慣我一直延續(xù)。研究生的時候,對什么領(lǐng)域感興趣了,第一件事就是到圖書館,借十本相關(guān)書籍回來翻看。

但是,大多數(shù)同學(xué)喜歡僅僅扎進一本書里,一旦選定了自己的學(xué)習(xí)材料,就對其他材料充耳不聞,甚至是排斥的心理。這種做法,一方面又是“完美主義”的表現(xiàn)——非要把這本教材學(xué)透;另一方面,其實也是“犯懶”的表現(xiàn),不愿意多翻翻,多看看,自己多比較比較,自己去尋找最適合自己的材料,一味地盲目相信所謂“大神”的推薦。殊不知,這些推薦,不一定是最適合自己的材料;更何況,還有很多大神,明明是靠不出名的“薄”教材入的門,但給別人做推薦的時候,就突然變成自己是算法奇才,自幼閱讀《算法導(dǎo)論》而所成的神話了。

6. 實踐

前面說了很多和教材選擇相關(guān)的話題,但對于計算機領(lǐng)域?qū)W習(xí)來說,教材的意義其實遠遠小于實踐的意義。如果僅僅是看學(xué)習(xí)材料就是學(xué)習(xí)的話,那么教學(xué)網(wǎng)站的視頻后期處理人員就是水平最高的工程師了。因為每段視頻,他們都需要看一遍。但是,很顯然,僅僅是看視頻,是無法學(xué)到知識的。對于計算機領(lǐng)域的學(xué)習(xí)來說,真正動手實踐去編程是異常重要的,怎么夸大其中的作用都不過分。這就好比學(xué)游泳,必須下水去游泳;或者學(xué)開車,必須親自上路。否則你說的再頭頭是道,一個小學(xué)生文化水平的人,只要他開過車,游過泳,都能在這兩個領(lǐng)域瞬間秒殺你。

很多同學(xué)都說我的算法講得好。其實,我一直認為,這其中一個最簡單的秘訣就是:我?guī)ьI(lǐng)大家把大多數(shù)算法都非常細致地實現(xiàn)了一遍;或者對其中的應(yīng)用進行了非常具體的實踐。反觀大多數(shù)高校教育,對于算法或者機器學(xué)習(xí)這種一定程度偏理論的學(xué)習(xí),通常非常不強調(diào)實踐。最終的結(jié)果是學(xué)習(xí)者只是接受了很多抽象的概念,但對其中具體的實現(xiàn)細節(jié),卻是云里霧里。我見過太多同學(xué),都明白什么是 O(n^2) 復(fù)雜度,什么是 O(nlogn) 的復(fù)雜度,卻問我對于 100 萬的數(shù)據(jù)規(guī)模,為什么自己的選擇排序運行起來就沒反應(yīng)了。答案很簡單: O(n^2) 的復(fù)雜度太慢了,100 萬的數(shù)據(jù)規(guī)模太大了,一般家用計算機轉(zhuǎn)選擇排序一時半會兒是轉(zhuǎn)不完的。這些同學(xué)一定理解 O(n^2) 的算法比 O(nlogn) 的算法慢,卻沒有真正實踐過,不知道這個差距到底是多少。

在我的課程中,經(jīng)常遇到有些同學(xué)提出這樣的問題:這個算法的某句話(或者某段邏輯),為什么要寫成 A 的樣子,而不是 B 的樣子?這種問題其實很好,但我覺得解決方法也很簡單,實際地去把算法改寫成B的樣子,實際地運行試試看,看會發(fā)生什么。如果發(fā)生了錯誤,仔細分析一下,為什么會有錯誤?如果沒有錯誤,具體比較一下: A 和 B 兩種不同的寫法,為什么都正確?又有什么區(qū)別?真正的學(xué)習(xí)上的提高,就發(fā)生在這個過程中。我當(dāng)然可以告訴給同學(xué)們一個結(jié)果,但是自己親自實踐一遍,相比閱讀我給出的一個答案,自己對其中問題理解的深刻程度,是完全不可比擬的。

7. debug 非常非常重要

我看到的另一類“經(jīng)典”問題就是:老師,這個代碼為什么錯了,然后貼一大段代碼。這種問題背后,依然是透露著學(xué)習(xí)方法的不對勁:提問的同學(xué)懶得 debug。在計算機領(lǐng)域,debug 近乎和實踐是一個意思。如果只是把材料上的代碼“抄”一遍,這不叫實踐,這叫抄代碼。小學(xué)生也能做。但是“抄”一遍,不小心沒抄對,發(fā)生了錯誤,然后自己一點一點調(diào)試,找到錯誤的根源,這叫真的實踐。小學(xué)生不能做。(當(dāng)然,自己理解了算法的邏輯,按照自己的理解,把算法寫出來,才是終極目的:)

不過很多同學(xué)不喜歡 debug,我當(dāng)然理解。其實誰都不喜歡 debug,但是,debug 才是最重要的能力。通常在一個領(lǐng)域里,你最不喜歡做的事情,就是這個領(lǐng)域的核心競爭力!我見過的所有計算機領(lǐng)域的“高手”,不管是在哪個細分領(lǐng)域,都無一例外,是個 debug 好手。我經(jīng)常告訴大家,在實際工作中,其實 debug 的時間要占你真正編程時間的 70%。如果你做一個項目,根本不需要 debug,要么是你的項目對你來說太簡單了,要么是你根本沒有接觸到這個項目的核心。

debug 不僅僅是找到代碼錯誤,解決錯誤的手段,其實更是一個重要的學(xué)習(xí)手段。通過 debug,看看自己寫的程序執(zhí)行邏輯,哪里和自己設(shè)想的不一致?再回頭看自己哪里想錯了,或者想漏了,分析一下自己為什么想錯了,或者想漏了等等,進步就是發(fā)生在這個過程的。

在我的算法課程中,很多同學(xué)對遞歸想不明白,我的建議都是:用一個小數(shù)據(jù)量,一步步跟蹤程序,看看程序到底是怎么運行的。通常這么做,1 個小時的時間,就足以讓你深刻理解遞歸程序的運轉(zhuǎn)邏輯。可是,很多同學(xué)懶得花這 1 個小時的時間。最終的結(jié)果是,花了一個下午,對著代碼生看,硬想,最終還是沒有理解程序的運轉(zhuǎn)邏輯。

8. 量變到質(zhì)變

還有很多同學(xué),對于算法的一些問題,會問:老師,你是怎么想到用這樣的方法的?對于這類問題,我的回答一般都是:你見的還不夠多。

不知道是不是受高中階段學(xué)習(xí)的影響,有一些同學(xué)特別執(zhí)著于就著一個單一的問題,尋找其中的“解題路徑”。當(dāng)然,我不是說這是完全錯誤的,但也有一個“度”。我的經(jīng)驗是:與其把時間花在這里,不如去見更多問題。比如動態(tài)規(guī)劃,是算法學(xué)習(xí)的一個難點,很多同學(xué)在學(xué)會了背包問題的解法之后,總是執(zhí)著于去追尋:是怎么想到這種狀態(tài)定義的方法。可能是我個人水平有限,我無法清楚地解釋是如何想到這種狀態(tài)定義的方法。但是我的經(jīng)驗告訴我:再去看,去實踐 100 個動態(tài)規(guī)劃相關(guān)的問題,然后回頭看背包問題,你會發(fā)現(xiàn)這種狀態(tài)定義的方式非常自然。僅僅對著一個問題思考,很多時候都是死胡同。你見識的還不夠多,就不足以幫助你總結(jié)出更加“普遍”的問題解決規(guī)律。當(dāng)你見得足夠多的時候,一切就都變得很自然,所謂的“量變到質(zhì)變”。

不過,大多數(shù)同學(xué)在這個環(huán)節(jié)都會“犯懶”,企圖通過一個問題就理解問題的本質(zhì),這其實和企圖通過一本教材就精通一個領(lǐng)域的想法是一樣的,是不現(xiàn)實的、不可能的。同時,這里又包含著學(xué)習(xí)過程中的“完美主義”的思想,遇到一個問題一定要把它想得無比透徹。但是我的經(jīng)驗告訴我:大多數(shù)問題,其實都是需要“回頭看”的。隨著你對一個領(lǐng)域理解得越深入,回頭再去看那些曾經(jīng)的問題,都會產(chǎn)生新的視角,對于很多曾經(jīng)想不明白的問題也豁然開朗。這也是“進步”的根源。如果卡在一個問題上不前進,不給自己“回頭看”的機會,甚至最后是放棄了,就什么也沒有學(xué)會了。

所以,很多時候,你發(fā)現(xiàn)對一些問題“百思不得其解”,或許不是因為自己“笨”,而是因為“還不夠努力”。

9. 最后,一定要相信時間的力量

有一天,在我的一個算法課程群里,有個滴滴的后端大神發(fā)招聘,結(jié)果大家七嘴八舌地就議論開了,大致主題思想就是:自己什么時候能夠成為滴滴的后端大神。這位滴滴的后端大神今年 32 歲;大多數(shù)議論的同學(xué),其實連 22 歲都不到。我告訴他們,其實 10 年后,你們就是大神。

這其實很好理解,回想十年前,也就是 12 歲的你,和現(xiàn)在的你比較,是不是天壤之別?如果把你扔到一堆 12 歲的小朋友中間,22 歲的你是不是就是個大神?同理,32 歲的人,已經(jīng)在業(yè)界摸爬滾打了那么多年,扔回到 22 歲的大學(xué)生中間,當(dāng)然是大神。

很多時候,所謂的“大神”并不神秘,仔細觀察他們的經(jīng)歷,會發(fā)現(xiàn)時間有著不可磨滅的作用。只要你沒有虛度時間,每天都在進步,通常結(jié)果都不會太差的。如果再加上一點點機遇,就是大神。

愿大家也早日成為大神。

大家加油!

}
立即訂閱 ¥ 99.00

你正在閱讀課程試讀內(nèi)容,訂閱后解鎖課程全部內(nèi)容

千學(xué)不如一看,千看不如一練

手機
閱讀

掃一掃 手機閱讀

用技術(shù)人的眼光看世界 • 程序員技術(shù)指北
立即訂閱 ¥ 99.00

舉報

0/150
提交
取消