Go or Stay, 這是一個問題
又一年的CSP-J/S初賽落下帷幕,幾家歡喜幾家愁,有幾個小朋友因為今年的奇葩政策(不以分數取優)沒能挺過初賽,心中彷徨:自己堅持了兩年的OI之路竟以提前退役告終?
Go or Stay, 這是一個問題!對于一個OIer來說,學習兩年竟然倒在初賽上,這本身就是一個需要反思的問題,是自身能力不夠,還是知識儲備不足? 在我看來,全不盡然,
自身能力
我一直信奉天賦決定上限,努力決定下限,對于CSP來說,這是只要努力就能達到的高度,天賦可能只需要那么一丁點兒,當你走出考場驕傲地說這次的選擇題太水了,請明白:那是你趁暑假別人出去嗨的時候把歷年的初賽題刷了一遍的成果,是你刷完題還被教練逼著在博客整理錯題的識訓,這是你努力的結果,跟天賦關系不大,
知識儲備
有句話叫書到用時方恨少,但對于CSP來說,就是基礎演算法、資料結構、搜索、貪心、動態規劃、圖論,再加上一些簡單的數學知識,兩年了,想必這些東西你已經了然于心,讓你看幾遍,就能過AcSaber,至少國慶這三天是這樣過來的,也就是說,在知識儲備上,你足以面對CSP,
那問題到底出在哪里?
論"淺層學習"的危害
我們刷過很多題,零零總總有300~400道了吧,按道理也算是一個初出茅廬的OIer,但就是這樣,讓你分析深度優先搜索,完善區間合并、冒泡排序,還是會出錯,我們來分析分析這是為什么?
首先,在學習或者刷題的程序并沒有“沉浸”其中,停留在“淺層”,只學會了怎么寫代碼,卻忘了問為什么這么寫,如果改變一下會怎么樣,最好情況是什么、最壞情況是什么,輸入資料對演算法有無影響?這是演算法學習縱向上的要求,
其次,一直停留在簡單問題或是模板演算法上,缺乏應對變化的能力,A+B問題我能5秒AC,然后呢,這有什么意義?如果一種演算法的模板已經“吃透”,那么就應該在這個基礎上做一些廣度上的擴展,例如:學會了快速排序,就應該使用快速排序的思想解決一些實際問題,如查找第K大的數,而不是偷懶用一個sort水過,今天水過的問題,考試中可能就是噩夢,
最后,不注重思維上的訓練,碰到難題不愿意動腦,不知道從哪里下手,過分地依賴外部力量,OIer都喜歡謙虛地自稱蒟蒻,讓大佬給思路、找問題,殊不知大佬也是從小白一點點成長起來的,正因為在成長程序中善于思考、認真總結,才能終成大神,所以,作為一個OIer最重要的就是要培養獨立思考的能力,
深度學習
想要避免"淺層學習",可以從這幾點下手:
- "吃透"基礎演算法,
- 不斷去做那些自己踮起腳才能解決的問題,
- 注重思維能力的訓練,
而這一切,都需要不斷地反思和總結,所以,深度學習最好的手段就是寫博客,
對于基礎演算法,寫博客的目的是為了強化自己對基礎知識的掌握、理解,嘗試分析每種演算法的優與劣,在不同情況下的時間復雜度、空間復雜度,真正"吃透"演算法,
對于那些自己踮起腳才能解決的問題,寫博客是整理自己思路的程序,總結出錯的原因,真正讓自己做一題會一題,而不是做完就忘,
思維能力的訓練不僅要培養獨立思考的能力,也要學會他山之石可以攻玉,看大佬題解不可恥,可恥的是看完就忘,沒有變成自己的東西,對于題解要"看懂”,更要"寫明白",
路漫漫其修遠兮
作為一個兩年的OIer,你已出發很遠,但卻沒有看到曙光,這是一段寶貴經驗,希望對你的人生有所啟發,
It’s up to you to decide whether to go or stay,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/172853.html
標籤:其他
上一篇:黑馬程式員第二天
