<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          清華學生總結的算法學習方法

          共 1830字,需瀏覽 4分鐘

           ·

          2021-10-09 04:41

          點擊關注公眾號,干貨及時送達

          ?作者|longyue0521
          整理|Python與算法社區(qū) 公眾號


          今天查資料時看到一個比較好的算法學習方法總結,來自清華大學算法訓練營 longyue0521 ,提出的 “做中學” 方法,個人也是比較認同的,大家不妨看看下面的詳細介紹。

          ? ?一、事半功倍

          Learning by doing 做中學


          ???二、經(jīng)歷描述

          在我初學編程時,因沒有掌握計算機相關專業(yè)的學習方法,走了不少彎路。

          我總是想先“打好基礎”,再走下一步,但這需要時間、毅力與堅持。

          我花了很大氣力學習,但都事倍功半!

          我想找到效率更高的學習方法,于是我開始瀏覽美國計算機四大名校的課程網(wǎng)站。

          經(jīng)過一番研究,自學幾門課程后,我發(fā)現(xiàn)了他們的教學套路:

          • 教授理論知識(一),小作業(yè),用于鞏固理論知識(一)

          • 教授理論知識(二),小作業(yè),用于鞏固理論知識(二)

          • 大作業(yè),編程實踐,需要用到理論知識(一)與(二)

          • 教授理論知識(三),小作業(yè),用于鞏固理論知識(三)

          • 教授理論知識(四),小作業(yè),用于鞏固理論知識(四)

          • 大作業(yè),編程實踐,需要用到理論知識(三)與(四)

          • 項目作業(yè),編程實踐,多人協(xié)作,需要用到理論知識(一)~(四)+ hits

          • 重復上述過程,一般重復4~6次,中間穿插期中考試,最后期末考試

          由此“套路”總結出另一種學習方法——“迭代學習”法:

          • 理解待解決的問題

          • 學習部分理論知識

          • 動手實踐嘗試解決,無法解決,回到1或2

          • 成功解決抓緊總結

          即使現(xiàn)在回頭看,我也不能說第一種學習方法有錯,“迭代”學習法更好!但這兩種學習方法都是以同一個核心為基礎的——動手做,做中學!
          你可以都嘗試一下,然后選取自己喜歡、又高效的學習方法!
          當然也歡迎分享你的學習方法!


          ???三、經(jīng)驗總結

          • 越早適應“迭代”學習法對你越有利。

          • 大多數(shù)時候你沒有足夠的時間來“學完再做”。

          • 若你在“迭代”學習過程產(chǎn)生的焦慮、沮喪、挫敗感,請及時排解

          • 排解后記得回來,堅持才能勝利!


          ???四、個人建議

          學習《算法設計》在借鑒學習《數(shù)據(jù)結構》的經(jīng)驗的同時,需要做適當調整——在每次大迭代中應用“迭代”學習法:

          第一次迭代,熟悉常用的算法設計策略,掌握策略的使用方法及適用的場景

          • 其實學習《數(shù)據(jù)結構》時你已經(jīng)學了不少經(jīng)典算法

          • 帶著學到的算法設計策略回頭總結、歸納經(jīng)典算法

          • 可以在紙上畫畫設計策略與經(jīng)典算法的關系圖,是一對一,一對多,還是多對多

          • 這個階段的重點,在腦中建立常用算法設計策略與經(jīng)典算法的對應關系

          • 如果個人能力不錯,可考慮與《數(shù)據(jù)結構》第三次迭代同時進行

          第二次迭代,靈活運用算法設計策略,解決實際問題

          • 大量的解決問題,在此過程中總結出你個人解決問題的流程

          • 可以針對某項設計策略進行專項訓練,但要考慮實際需求——工作、面試、競賽

          • 此階段的重點就是解決《數(shù)據(jù)結構》第三次迭代中的隱藏關卡,同時培養(yǎng)解決問題的感覺、自覺

          • 別忘了“迭代”學習方法

          • 大量訓練、多與他人探討、擴展自己的思路并及時總結

          第三次迭代,對給定問題能運用數(shù)學證明你的算法設計策略是正確的、可行的、高效的

          • 這個階段要做的事本應該融入到前兩次迭代中的,甚至更早比如在離散數(shù)學課上

          • 之所以單抽出來是因為有太多的人因這個“攔路虎”而徘徊在“算法設計”的大門前遲遲不敢踏入半步,更有甚者轉身離開了就再也沒回來......

          • 如果你不擅長數(shù)學,或不打算從事科研及對數(shù)學要求較高的工作,可以跳過

          • 對于打算從事科研及對數(shù)學要求較高的工作的人來說,這也可以算迂回策略

          • 可以先從教材對經(jīng)典算法的證明學習,然后重走第二次迭代實踐(這才是看CLRS的時機)

          • 這個階段的重點,有意識地運用數(shù)學來決定設計策略的選取


          ???五、追求目標

          你在學習《算法設計》的初期沒能養(yǎng)成良好的推理、證明習慣,后期改正要費些功夫信心/底氣不足,有強大的數(shù)學理論作為支撐你敲代碼、測試或和別人辯論也底氣十足盡管不完美但比起那些徘徊在門口、轉身離開的人,你已進入“算法設計”的大門!

          這難道不值得高興嗎?


          推薦閱讀

          (點擊標題可跳轉閱讀)

          JupyterLab 終于出了 Windows 桌面版

          李沐大神新作:用梯度下降來優(yōu)化人生

          反對李沐大佬:反向用隨機梯度下降來優(yōu)化人生

          神經(jīng)網(wǎng)絡的5種常見求導,附詳細的公式過程

          老鐵,三連支持一下,好嗎?↓↓↓

          瀏覽 38
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产黄色A片 | 毛片在线视频 | 一级电影网 | 亚洲欧美动漫中文字幕 | 91在线观看欧美日韩 |