關于學科競賽的經驗
(本文約1000字,閱讀只需要3分鐘哦?)
莫西莫西,我系提莫莫隊長,平時喜歡種種蘑菇,
起因是思夢姐姐找到我,希望給20級的同志分享下學科競賽相關的經驗,于是乎我答應了,于是乎又有了新的故事,
emmm,我在線下已經和部分師弟師妹們分享過了,在這里以文字的形式將分享的內容分享出來,方便師弟師妹們學習,
不過感覺效果好像不太好呢,是聽的有點懵還是啥,如果有啥建議,請告訴我哦,我們一起努力!
文章目錄
- 關于學科競賽的經驗
- 為啥學習
- 為啥競賽
- 學科競賽總覽
- 演算法類
- 專案類
- CTF類
- 非本專業類
- 綜合類比賽
- 非專業類
- 競賽經驗分享
- 演算法相關
- 經歷
- 總結
- 刷題網站
- 書籍推薦
- 專案相關
- 經歷
- 總結
- CTF相關
- 經歷
- 刷題網站
- 實用小技巧
- 代碼水平提高
- 自學能力提高
- 總結
- 自身的發展和思考
- 發展經歷
- 自學
- 考研
- 總結
- 結語
- 參考文獻
為啥學習
學習的目的,是為了獲取競爭優勢,增加選擇機會,提升認知水平,
人生就是一個不斷學習的程序,終究有一天,我們會感謝現在努力學習的自己,
說直白一點,學習就是為了以后能拿高薪,能更好更體面地活著,成為一只有思想的豬,拱各式各樣的白菜,
為啥競賽
不掛科的大學不是完整的大學(×)
不競賽的大學不是完整的大學(√)
以賽促學,只有去參加比賽,你才能知道自己掌握了什么知識,哪些知識還不熟悉,
學科競賽總覽
主要是學校發了通知的競賽,當然,除了以下列出來的,還有很多很多的競賽
演算法類
- 藍橋杯
- 中國高校計算機大賽–團體程式天梯賽
- ACM(ICPC、CCPC)
專案類
- 中國高校計算機大賽–大資料挑戰賽
- 中國高校計算機大賽–網路技術挑戰賽
- 中國高校計算機大賽–移動應用創新賽
- 中國高校計算機大賽–微信小程式應用開發大賽
- 2021粵港澳大灣區未來城市場景大賽
- “中國軟體杯”大學生軟體設計大賽
- 中國大學生服務外包創新創業大賽
- 粵港澳大灣區IT應用系統開發大賽
- 全國大學生人工智能創新大賽
- 中國軟體開源創新大賽
- 機器人奪寶奇兵大賽
- 計算機設計大賽
CTF類
- 強網杯
- 網鼎杯
- 紅帽杯
- 藍帽杯
- 廣東大學生網路安全攻防大賽
非本專業類
- 大學生數學競賽
- 全國大學生數學建模競賽
- “泰迪杯”資料分析技能賽
- “泰迪杯”資料挖掘挑戰賽
- “外研社?國才杯”英語寫作、閱讀大賽
綜合類比賽
- “互聯網+”大學生創新創業大賽
- “挑戰杯”全國大學生課外學術科技作品競賽
非專業類
- XXX微電影比賽
- XXX籃球賽
- XXX知識競賽
- XXX設計大賽
- XXX演講比賽
- XXX征文比賽
- XXX情景劇
- XXX主持人大賽
- XXX辯論賽
- XXX歌手大賽
- XXX朗誦比賽
- XXX書法比賽
- ……
競賽經驗分享
在這三年間,我也參加了不少的競賽,下面主要分成演算法,專案,CTF這三大類來講,
當然,我也參加過數學建模,資料分析之類的比賽,由于篇幅原因就不展開講了,
演算法相關
程式 = 演算法 + 資料結構
學習演算法也不只是為了比賽,更重要的是提高自身代碼的水平,
除此之外,進大小廠面試都會讓你現場解題的,例如實作某個功能的代碼需要怎么寫,
經歷
大一的時候跟大家一樣,最先接觸到的競賽毫無疑問就是演算法競賽,就是那個新生賽,當時我也是誤打誤撞獲得了三等獎,也有點可惜吧,差一道題就是一等獎了,做演算法題有時候確實很蛋疼,思路好像沒錯,結果也好像正確,但就是AC不了,很可能就是某處細節錯了,那也沒辦法咯,
后面也是去參加藍橋杯,5道填空題和5道編程題,怎么說呢,藍橋杯更像是考試一樣閉卷做題,提交之前,你不知道你寫的代碼是否完全正確的,也有的人自信滿滿,以為寫的代碼全對的,結果全錯了,同時,我認為藍橋杯是上述各種各樣的比賽中,最容易獲獎的,基本就是參加了,只做出兩三道填空題就是省三了,
藍橋杯也俗稱“暴力杯”,會一些暴力演算法就能省二以上了,當然,我覺得藍橋杯是越來越難了,可能也是被罵“暴力杯”多了,現在只靠暴力就會比較吃力,由于個人原因后面沒怎么刷題了,最后也是獲得了省二,
關于天梯賽,正賽其實不難,難度可能比藍橋杯略低一點,有簡單的簽到題也有ACM級別的大師題,而且做題的時候可以無限次提交,能隨時知道你的代碼是否正確,emmm,但是嘛進正賽之前學校自己組織的選拔賽就比較燒腦,基本就是拿別的學校的ACM選拔題來做,難道要比藍橋杯難,比ACM低一點,做起來確實痛苦,但也沒辦法,這個比賽說是團體賽,其實也還是各自做各自的題,我最后也是獲得了省一,
總結
這種演算法類的比賽也沒什么好說的,就是刷題刷題刷題刷TM刷爛它,基本就是努力與收益是成正比的,會了就是會了,不會就是不會,
平時刷題的時候,如果一道題超過20min還沒思路的話,就不要死磕了,這樣刷題的效率太低了,這時候就應該去看看題解,參考一下別人的思路,然后再自己動手去實作一遍,
每次做完一道題,要去復盤一下這題,也看看別人的題解,看看是不是別人的思路更棒或者說代碼寫得更漂亮,可以模仿下別人的代碼風格,
刷題網站
我比較推薦下面這三個,問就是好用:
力扣:https://leetcode-cn.com/problemset/all/
洛谷:https://www.luogu.com.cn/
牛客競賽:https://ac.nowcoder.com/acm/home

圖1 洛谷

圖2 力扣

圖3 牛客
假如刷題刷出成就感了,不妨參加一些周賽,以至于能夠更好的打擊自己,獲得學習的動力.
書籍推薦
我推薦的觀看順序是:白書或者紫書,當然頭鐵的話也可以選擇演算法導論,
下面是我在百度上找的白書、紫書這些書籍的介紹
-
劉汝佳老師系列圖書(紫書, 藍書, 綠書)
-
挑戰系列叢書(白書)
日本的前世界總冠軍寫的書,題目難度循序漸進, 從易到難,比較適合想打演算法的新手來看, 一本講資料結構一本講演算法,全部弄懂的話水平也差不多哪里了

圖4 紫書

圖5 白書
專案相關
專案是什么?
專案是人們通過努力,運用各種方法,將人力、材料和財務等資源組織起來,根據商業模式的相關策劃安排,進行一項獨立一次性或長期無限期的作業任務,以期達到由數量和質量指標所限定的目標
簡單來說,專案就是做一件事,例如開發XXX系統,
它和上面的演算法相比,更考驗一個人的綜合能力,所以專案經驗也是很重要的,
面試的時候,HR也喜歡問你有無專案經驗,專案是怎么實施的,
說了那么多廢話,可能都還云里霧里的,接下來我就分享下我的親身經歷:
經歷
今年不知道幾月,我參加了全國高校計算機大賽–網路技術挑戰賽,
參加比賽,至少要先要看看這個比賽是干嘛的吧?
哦,比賽分為三個階段,資格賽,選拔賽,挑戰賽,還可以組隊
既然能組隊,那當然是去找人啦,找誰呢?那當然是去找大佬啦
那誰是大佬呢?拿過獎的就是大佬唄,師兄們都在準備考研和作業沒空
那就問問同級的唄,他們對這個比賽不感興趣,那沒關系,找同班的唄
結果拉了一個經常在群聊里吹水的同志,拉了一個實力強又默默不說話的宿友同志
又覺得大一師弟師妹比較有空,結果又拉到了一個師妹
哦豁,人齊了,那就開干
資格賽是干嘛的呢?哦,答題,跟數通有關的
數通是啥?理解為計網和路由與交換的強化版吧
那有啥辦法,看視頻學習唄
僥幸到了選拔賽階段,什么?要完成一個作品?那就分工唄
吹水先生和師妹負責檔案和打雜,宿友同志負責前端,我負責后端和統籌
在群上激烈討論,于是得到初步的想法
凡做專案,檔案先行,于是得到了初步的檔案
真懷念那時候的日子啊,每天早上8點起床,去實驗室肝,12點回去吃飯睡覺,14:30又去實驗室肝,17:30去跑步吃飯睡覺,然后20:00又去實驗室肝,肝到1點多再回去
就這樣,持續了近兩周,從無到有,從檔案到作品到視頻,橫空出世
最后也是不負眾望獲得了華南賽區一等獎
很幸運地來到了挑戰賽階段,可惜,因為可惡的疫情,不能去浙江的現場答辯
于是,我們團隊又加班加點地完善作品和檔案
至于答辯視頻,從制作PPT,到寫演講稿,到錄制視頻,這又是一個全新的領域
最后,很可惜又很幸運地獲得了國家三等獎,這可能也是大學生涯的頂峰了吧

圖6 選拔賽檔案版本

圖7 挑戰賽檔案版本
總結
做一個專案能學到的知識很多,無論是專業知識還是非專業知識,
同時,這種專案類的比賽也與演算法類的比賽不一樣,演算法類比賽的成績完全取決于個人,實力強那就是實力強,沒有虛的在里面,而專案類的話,就有比較大的運氣成分在里面,或者說水分在里面,這也是沒法避免的,你的專案能否拿獎,除了你的專案是否優秀,還要看你的專案合不合評委的胃口,評委這關就比較關鍵了,
所以這也是專案類比賽難的原因,耗費巨大人力物力卻不一定能拿獎,努力和收益不成正比,但是,只要你去努力,識訓還是滿滿的,
CTF相關
可能大部分人都沒聽過CTF這類的比賽,可能也有小伙伴對CTF比較感興趣,那我也簡單分享下,
其實這類比賽是比較難的,難度不亞于打ACM,并且社會上的企業啥的也會去參加,
CTF主要分為5個方向
- Reverse
- Pwn
- Web
- Crypto
- Misc
但目標都只有一個,獲取一串被隱藏加密的字符,
1 Reverse
題目涉及到軟體逆向、破解技術等,要求有較強的反匯編、反編譯功底,主要考查參賽選手的逆向分析能力,
所需知識:匯編語言、加密與解密、常見反編譯工具
2 Pwn
Pwn 在黑客俚語中代表著攻破,獲取權限,在 CTF 比賽中它代表著溢位類的題目,其中常見型別溢位漏洞有整數溢位、堆疊溢位、堆溢位等,主要考查參賽選手對漏洞的利用能力,
所需知識:C,OD+IDA,資料結構,作業系統
3 Web
Web 是 CTF 的主要題型,題目涉及到許多常見的 Web 漏洞,如 XSS、檔案包含、代碼執行、上傳漏洞、SQL 注入等,也有一些簡單的關于網路基礎知識的考察,如回傳包、TCP/IP、資料包內容和構造,可以說題目環境比較接近真實環境,
所需知識:PHP、Python、TCP/IP、SQL
4 Crypto
題目考察各種加解密技術,包括古典加密技術、現代加密技術甚至出題者自創加密技術,以及一些常見編碼解碼,主要考查參賽選手密碼學相關知識點,通常也會和其他題目相結合,
所需知識:矩陣、數論、密碼學
5 Misc
Misc 即安全雜項,題目涉及隱寫術、流量分析、電子取證、人肉搜索、資料分析、大資料統計等,覆寫面比較廣,主要考查參賽選手的各種基礎綜合知識,
所需知識:常見隱寫術工具、Wireshark 等流量審查工具、編碼知識
經歷
打CTF的話還是需要組隊的,需要找到真正志同道合的伙伴,而且是研究不同方向的伙伴,因為光靠一個方向去打的話是很難拿獎的,
我也是打著玩,沒有說刻意地練習,有空的時候就去做做題,打打比賽,
打的時候其實也會遇到很多不會的地方,這時候怎么辦?百度咯,看下題目,去猜大概需要用到什么知識點,去搜關鍵字,或者搜索差不多型別的題目的題解,然后現場學習,明白之后就去實踐,CTF其實也挺考腦洞的,有的時候那些解題思路是真的想不到,
雖然沒拿獎,但是識訓也是挺大的,因為每次都能學到很多很多的知識,它跟其他比賽不一樣,因為網安涉及到的知識真的是太多太多了,甚至可以包闊整個計算機領域,
如果能拿獎的話,這可是面試網安相關的作業的加分項哦,
刷題網站
我比較推薦下面這四個,問就是好用:
CTFHub:https://www.ctfhub.com/
攻防世界:https://adworld.xctf.org.cn/
BUUCTF:https://buuoj.cn/
安鸞滲透實戰平臺:http://www.whalwl.cn/home
……
實用小技巧
代碼水平提高
代碼就不用多說了,只要你從事與計算機專業相關的作業,99%要接觸到代碼,
1 刷題這個不用說,比賽前高強度刷題,比賽后,一周刷個兩三道保持手感就好,假如不是為了打ACM,或是真的要去拼國獎的話
2 多閱讀他人代碼,emmmm,編程夜當午,手握小滑鼠,這種事情也是會時常發生的,在哪里可以找到適合自己當前階段的代碼呢,舉個例子,比如你要做Python的多執行緒開發,可以在大型自學網站bilibili學習基礎,學習好后就可以去如下網站輸入關鍵詞去尋找代碼:
github
gitee
csdn
3 公眾號:比如學習python,就多關注python領域的公眾號(感覺在說廢話…其實是為了消磨零碎時間,想一想別人零碎時間在刷抖音,你在汲取知識的甘露,是不是就賺到了)
自學能力提高
我覺得自學能力才是大學要掌握的核心能力,掌握了什么知識都是死的,掌握了自學能力才是活的,時代一變,知識體系一變,沒有自學能力的同學不就傻眼了嗎?大學和高中是完全不一樣的,至少高中的時候各科老師都會督促你學習,大學老師才懶得理你呢,真的,某些老師一打鈴跑得比你還快,生怕你問問題,我們實驗室的汪哥就沒管過我們,
自學方式其實有很多,看視頻,看書,看文章,看博客,詢問大佬,自己琢磨……看視頻較為直觀易懂,看書比較成體系,看文章能學到不一樣的姿勢,無論哪一種,學完之后,都一定要自己動手去實踐去復現,博客也是一種學習的好方法,將學到的知識,融會貫通,再總結輸出,學了不一定就是學會了,能給別人講明白,才是真正的學會了,
1 做筆記,推薦一個寫筆記的軟體:Typora,就是我現在用的這個平時學習不僅可以做筆記,看到別人寫的好的文章,也嘗試去保存下來,因為指不定某天你想看,但是已經沒了,保存的方法可以通過瀏覽器PDF提取,多保存自己想看的文章,

圖8 Typora
2 發博客,雖然沒什么人看就對了,但是總結的程序能加深學到東西的印象,而且在面試的時候,可以在自己簡歷加上自己的博客地址,你寫得多了,然后面試官一看也能對你技術水平有所了解,
我的博客地址:
- https://teemos.justwalking.cn/
- https://blog.csdn.net/weixin_45766049

圖9 博客

圖10 CSDN博客
3 時間,emmmm,要學習很多東西,時間肯定是不夠用的,所以晚上建議帶電腦去實驗室學習,或者是去圖書館看書,假如實在不行,就同化舍友,帶舍友一起學習,不過更大的可能是會被帶著一起玩游戲吧,哈哈哈,而且一些課…打個比方,選修的什么心理線下課之類的,這些就可以帶自己的書去看,學自己想學的,就像擠海綿一樣,
總結
在大二前,一定要找準自己的方向,然后就是堅持學習,這樣到了大三,你就會發現你已經超出別人很多,別人可能還在迷茫的時候,你已經可以去給一些公司投遞簡歷,甚至參與一些面試,這樣到了大四實習,不敢說你比別人工資高多少,至少不會太差,
自身的發展和思考
發展經歷
我大一不出意外應該是走后端方向的,也是因為機緣巧合,又或者說是命中注定,大一上的時候有一個關于網路安全的講座,聽了幾場之后,就勾起了我內心的黑客夢,誒你們想想,在目標的網路空間內隨意進出是不是很帥?從目標外網暴露的漏洞殺入,進入內網拿下整個服務器是不是很酷?在敵方的陣型中找到一絲絲不被輕易發現的裂痕,接著將這裂縫不斷地撕開,不斷地放大,最后一鼓作氣,一舉擊潰敵方的指揮所,當然,由于網路安全法的頒布,滲透的程序可能沒有說得那么夸張,但是在自己的靶機上過過癮也是足夠了的,
慢慢地我也對演算法失去了興趣,藍橋杯就劃一下水拿了個省二,因為我覺得CTF會更有趣,里面眾多方向都令人敬畏,無論是web滲透還是reverse逆向和pwn二進制漏洞,都令人神往,CTF的程序就像解謎的程序,沖破種種障礙,最終找到目標flag,CTF也是跟網路安全方向比較契合的比賽,邊學邊練,邊練邊學,
我覺得CTF的難度不比ACM低的,都是大坑,此外,我們學校對ACM會比較重視,有專門的老師帶隊集訓,近一年來也拿下了亞洲區域賽銀牌的好成績,相比之下,CTF就顯得捉襟見肘,不過沒關系呀,雖然沒有老師沒有師兄師姐帶,但獨自鉆研孤身前往何嘗不是種樂趣?這時候自學能力的重要性就體現出來了,
自學
關于自習,我也有去思考過,為什么到了大學就要自學呢?既然都來自學,為什么還要開設很多沒什么勾巴卵用的課程呢?來大學可能不只是為了那張文憑,還是學生階段到社會階段之間的過渡,如果只是單純為了就業的話,完全可以像其他培訓班一樣,直接去教你作業的知識,而不是在學校一樣教課本上可能都是上個世紀過時的知識了,你跟外面培訓班出來的比寫代碼,他們可能還真的不比你差,他們還能直接上手做專案,那么我們和他們之間的區別是什么呢?我覺得在于對計算機底層基礎知識的理解,做小專案可能沒什么區別,但是一旦專案做大的呢?例如做一個web專案,同時有10人去訪問,同時有1k人去訪問,同時有10w人去訪問,這分別要怎么處理,要怎么去優化呢?培訓班的可能就沒辦法了,而大學里出來的學過計算機網路,學過資料結構,學過資料庫系統,學過各種講原理的課,這時候就有辦法完成任務了,
同時,人脈也是一種極其重要的資源,這也是培訓班出來的無法比的,你想想你在大學四年人數人里面,有各種專業的大佬,也是同專業的大佬,他們或者創業,或者繼續深造,或者走進了大廠,多多少少都是人生路上的指明燈,或多或少地指引你前進,
考研
我已經決定要去考研了,最近我也在看與考研相關的資訊,接下來,我可能就不怎么參加競賽了,專心準備考研了,
至于考研,這也是一個不錯的目標,如果有這個目標,計算機組成原理,資料結構,作業系統,計算機網路這四門專業課一定要學好,雖然說計算機行業不是特別看重學歷,能者居之,除非你有特別強的實力,不然這也是進大廠的敲門磚,例如人工智能,現在的要求也是越來越高了,幾乎都要求有出色的論文科研經歷或者非常匹配的大廠實習經歷,而且學歷基本都是碩士起步,我個人感覺,如果不是準備讀研,如果不是實力超群,在AI上浪費精力,畢業真的就等于失業了,,,
總結
總的來說,傳統的開發崗如前后端開發一直都是剛需,大廠小廠都會招人,計算機專業的基本都能找到作業,像AI,網安的崗位就相對比較少,小廠很少很少基本沒有,大廠居多,像網上說得某某方面的人才缺口有幾百萬,事實上缺的是人才,缺的不是隨便混口飯吃的,
既然入坑了計算機方向,就必須做好終生學習的準備,因為計算機技術的迭代真的太快了,就舉個簡單的例子吧,對比現在的網站和十年前的網站,你會發現十年前的網站的樣式真的是low到爆了,對比現在的游戲和十年前的游戲,你也會發現十年前游戲的畫質是真的不行,例如人臉識別,可能五年前還只是小范圍使用,現階段已經大規模應用,新掌握的技術,可能幾年后就淘汰了,如果不持續輸入,可能所謂的中年危機就是這么來的,
我看羅翔老師的視頻時,經常聽他提到“人不能是手段,只能是目的”,雖然我不理解是啥意思,但我想說,比賽永遠只是手段,不是目的,要通過比賽來發現自己的不足,而不只是為了獎項,
結語
哎呀,提莫莫也不知道說啥啦,就說這么多吧,我先去前面探探路~
艱難方顯勇毅,磨礪始得玉成,盡管前路兇險,但只要心有所想,也便只顧奔向遠方,一定要站在自己所熱愛的世界里,閃閃發亮,做自己心目中的大佬,
且視他人之疑目如盞盞鬼火,大膽地去走你的夜路!
參考文獻
[1] 提莫莫 《關于學習計算機的經驗》 (https://blog.csdn.net/weixin_45766049/article/details/119713191)
[2] 源哥哥 《學習經驗》
[3] 各種百度
[4] 各種B乎
[5] 各種CSDN
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/385493.html
標籤:其他
下一篇:超級弱口令工具
