论ACM ICPC_Ruins He
這段時(shí)間老是有許多新人向我問到ACM相關(guān)的問題。比如它與工作的關(guān)系,對我以后的工作到底有沒有幫助?還比如說第二年的訓(xùn)練計(jì)劃應(yīng)該是什么樣的?還有的孩子問到,我寒假玩兒的一個(gè)寒假,又該怎么辦?
看到這些問題,我自己也感慨萬千,一眨眼自己在這方面也涉獵了兩年多了,經(jīng)過那一段時(shí)間的糾結(jié),最終還是決定第三年繼續(xù)。大家選擇ACM的理由的很多很多,為了以后方便找工作?充實(shí)生活?鞏固學(xué)科基礎(chǔ)?不管是為了功利心理也好,還是純粹的興趣也罷,最后共同的結(jié)果就是我們選擇了ACM作為自己大學(xué)生活的一部分。
我們可以從ACM中學(xué)到什么?
首先,作為一個(gè)團(tuán)隊(duì)活動,我們可以從中感受到團(tuán)隊(duì)合作的魅力,只可以感受團(tuán)隊(duì)合作給我們帶來有那種不一樣的感覺,當(dāng)然,也可以從中認(rèn)識更多的志同道合的朋友。
其次,ACM是一個(gè)學(xué)習(xí)的過程,對我來說,在這兩年里,我自己學(xué)到了許多上課不會涉及的東西,自己吸收其它方面知識變得更快了,對于即將從事IT產(chǎn)業(yè)的我們來說,學(xué)習(xí)能力是一個(gè)非常重要的能力。
最后,要取得好的成績,我們要掌握許許多多的知識,而大部分的知識,都是計(jì)算機(jī)學(xué)科、數(shù)學(xué)學(xué)科的基礎(chǔ),比如說微積分、線性代數(shù)、概率論、數(shù)據(jù)結(jié)構(gòu)等等。
ACM需要的是堅(jiān)持而不是三分鐘熱度
大一開班會的時(shí)候提及到過大學(xué)四年的規(guī)劃,記得當(dāng)時(shí)選這個(gè)的人挺多的,堅(jiān)持半年的也很多,但是到了大一下學(xué)期,一個(gè)寒假回來,堅(jiān)持下來的就沒有幾個(gè)了,而到了最后參加講座的就更少了。這說明的什么?可能是沒有興趣吧,ACM是一個(gè)需要堅(jiān)持的競賽活動,不是簡簡單單的混個(gè)三、四個(gè)月就可以有成績的,只因?yàn)楦冻隽?#xff0c;才會有后來的回報(bào)。
很久以前就聽學(xué)長們說了一句話:ACM ICPC不應(yīng)該成為大學(xué)生活的全部,但是我們卻時(shí)常后悔沒有把我們的全部投入進(jìn)去。很多人常常在失敗的時(shí)候抱怨自己的隊(duì)友,把失敗歸咎于自己的團(tuán)隊(duì),當(dāng)然也有人把所有的責(zé)任推到自己的身上。我們要記住,ACM是三個(gè)人的活動,不是你一個(gè)人的,更不是你隊(duì)友的。三個(gè)人堅(jiān)持下來了,我們要的不一定是得到輝煌的成就,最主要的還是那深厚的友誼加上和朋友們一起奮斗的過程。
關(guān)于ACM的種種小事
交流是重中之重
成為集訓(xùn)隊(duì)的成員已經(jīng)有兩年的時(shí)光了,在每年新的一輪訓(xùn)練開始時(shí),最經(jīng)常見到的就是一個(gè)新人的隊(duì)伍,甚至是有一定配合的老隊(duì)伍的三個(gè)人,各自做各自的,從始至終都沒有什么交流,說的最多的就是這題過了,這題掛了,或者是你先下來,我先寫另外一道,等等。切記一點(diǎn),ACM是三個(gè)人的活動,并不是1+1+1那么簡單的,如果三個(gè)人各自為戰(zhàn),這和個(gè)人活動有什么區(qū)別?1+1+1<1是常常遇到的事兒,出現(xiàn)這類問題最主要的原因就是各自為戰(zhàn)。
做事要有一個(gè)整體規(guī)劃
到現(xiàn)在,我見到的最多的解題策略,包括我自己曾經(jīng)用的,都是reading-thinking-coding-thinking-coding-debug-thinking-debug-submit。對于一個(gè)中檔題來說,這個(gè)過程可能需要30到50分鐘不等,往往很多人覺得50分鐘和30分鐘是沒區(qū)別的。在過題之后估計(jì)整個(gè)過程,許多人會把實(shí)際上是50分鐘的時(shí)間估計(jì)成半小時(shí),然后就覺得時(shí)間充裕。不管是做ACM也好,平時(shí)做事也罷,有一個(gè)非常重要的環(huán)節(jié),那就是Programming,這可不是Programmer相關(guān)的單詞,而是Dynamic Programming中的Programming,它是規(guī)劃的意思,相同的一個(gè)ACM問題,如果你在上機(jī)前多花5分鐘規(guī)劃,你可以在coding和debug階段省下很多的時(shí)間。記住,理想的解題過程應(yīng)該是reading-thinking-programming-coding-debug-submit,甚至對代碼能力好的人來說,debug這個(gè)環(huán)節(jié)可以省略。
克服對新知識的抵觸心理
第一年訓(xùn)練結(jié)束之后,隊(duì)伍解散,我也開始新知識的儲備,那時(shí)候?qū)P有著很大的抵觸心理,后來在寒假逼著自己看了幾篇DP優(yōu)化相關(guān)的論文,結(jié)果雖說不上喜歡上了DP,至少對DP的抵觸心理小了很多。世上不存在什么不可能學(xué)會的知識,我們要做的僅僅是培養(yǎng)興趣而已。
代碼越短越好 or 寫的代碼越長說明自己越牛?
我想一定的不少人覺得代碼越短越好,或者代碼越長說明自己越強(qiáng)。很明顯這種想法并沒有任何的科學(xué)性。coding是一門藝術(shù),拿coding和寫文章作對比,可謂大同小異,作為一個(gè)團(tuán)隊(duì)的成員,我們要做的是使自己的文章可讀性更強(qiáng),而不是刻意地去壓縮、擴(kuò)充自己的代碼。解題的過程,個(gè)人能力差異最小的就是coding在過程,差異最大的是thking和debug的時(shí)間。代碼比別人的長了點(diǎn)兒,coding多花了時(shí)間,但是debug的時(shí)候隊(duì)友可以給自己更多的幫助不是么?
為什么我投入了這么多卻沒有得到回報(bào)?
很多人,包括我自己,都遇到過這類問題。當(dāng)遇到這類問題的時(shí)候,有的人會選擇退卻,有的人會選擇反思,當(dāng)然也有人選擇不管不問,使用以往的方式繼續(xù)下去。遇到這類問題,我們要做的事就是找到問題的根源,我想最大的一個(gè)原因,就是不夠?qū)Wⅰ:沃^專注?專注不是一整天只吃一頓飯,即使逃課也要訓(xùn)練,專注也不是花大量的時(shí)間,只學(xué)了本來一個(gè)小時(shí)就可以學(xué)會的知識。高中的時(shí)候,很多同學(xué)問我為什么做作業(yè)比他們快,其實(shí)高中的時(shí)候效率高的原因僅僅是不在做作業(yè)的時(shí)候聽音樂而已(我發(fā)現(xiàn)自己沒法做到那樣的狀態(tài)了,訓(xùn)練的時(shí)候沒法做到原來那么專注,有點(diǎn)可惜)。在訓(xùn)練的時(shí)候,我習(xí)慣把電腦靜音,拔去散熱器的電源,我不希望散熱底座風(fēng)扇轉(zhuǎn)動的聲音影響自己的思考,雖然我的思維很慢。有的人(有時(shí)候我也有這樣的毛病)喜歡在訓(xùn)練還沒結(jié)束的時(shí)候就在群里得瑟,或者在訓(xùn)練一半的時(shí)候發(fā)現(xiàn)剩下的題目自己肯定沒戲,就放棄了。我覺得這都不是一個(gè)好的習(xí)慣,養(yǎng)成好的習(xí)慣可以讓你有更大的成就的。
談?wù)凙CM的學(xué)習(xí)氛圍
我常見到很多人在群里抱怨題目看不懂,當(dāng)然也不排除這些題目描述真的寫得很渣的原因。如果一套題,特別是好題,你發(fā)現(xiàn)自己很多題都看不懂意思的話,那只能說你有點(diǎn)浮躁了。
雖然不愿意這么說,但這卻是事實(shí),做ACM最需要的是一個(gè)氛圍,一個(gè)平常十分融洽,訓(xùn)練的時(shí)候卻嚴(yán)肅的氛圍。其實(shí)我不喜歡訓(xùn)練的時(shí)候開玩笑,以前不少老隊(duì)員和我說:何老師,你的表情太呆板啦,和我們一樣嘻嘻哈哈的多好。我可能習(xí)慣了,平時(shí)都不會嘻嘻哈哈的,但是我并不反對平時(shí)沒有訓(xùn)練的時(shí)候大家活躍一點(diǎn),畢竟大家是在一個(gè)集體之中,需要更多的溝通交流。我也不反對平時(shí)一起玩游戲、一起聽音樂、殺人、三國殺,娛樂活動是生活不可缺少的一部分,這我還是知道的。但是在訓(xùn)練的時(shí)候得瑟、逛社交網(wǎng)絡(luò)、在QQ空間里瞎逛就不可取了。
凡事都不會是絕對公平的,不管在什么情況下,不公平的事可謂是屢見不鮮了。copy他人的代碼(或者自己以前寫的代碼),太過于樂于助人等等。我想很多人在前期會有想不出來馬上就看題解的習(xí)慣,慢慢演變成了這樣,當(dāng)他意識到事情的嚴(yán)重性的時(shí)候,卻很難改正了。甚至有人并沒有意識到這里面對自己的危害有多深,而到了最后的賽場才后悔莫及。
SCL到底是好是壞?
SCL,大部分人稱其為模板、模塊、標(biāo)程等,對很多人來說,可能是比賽場上必不可少的武器吧?不過我的觀點(diǎn)是能不用就不用,大多數(shù)人使用SCL的原因是其中的代碼并不是他自己實(shí)現(xiàn)的,有可能是google的,或者其他隊(duì)員、學(xué)長實(shí)現(xiàn)的。我并不反對這種行為,但是比賽比的就是代碼實(shí)現(xiàn)能力,至少,你要對這份代碼相當(dāng)熟悉才行。
之所以不推薦用SCL,主要的原因是它會阻礙代碼能力的提升,習(xí)慣用SCL之后,你會發(fā)現(xiàn)自己寫代碼越來越容易寫掛,1Y率大幅度下降,隨著自己學(xué)的東西越來越多,積累的SCL越多,代碼能力就下降的越快。SCL僅僅是為了正式比賽心安的一個(gè)工具,而不是訓(xùn)練的工具。
ACM與大學(xué)生活
作為ACMer,我認(rèn)為ACM給我?guī)碜疃嗟暮锰?#xff0c;那就是充實(shí)了我的大學(xué)生活,讓我喜歡上了看課外書。看書不能囫圇吞棗,否則你可能連原理都掌握不了。此外,最重要的是實(shí)踐,一個(gè)新的算法,要自己試著實(shí)現(xiàn)。當(dāng)然,實(shí)現(xiàn)之前一定要理清步驟,另一方面,我們還需要通過和他人的交流,讓自己對某方面的知識的理解更進(jìn)一步。
還有一個(gè)和我們大學(xué)生活相關(guān)的話題,那就是GPA。很多人因?yàn)锳CM把學(xué)業(yè)扔了而掛了很多科,這可以說他們把時(shí)間全花在ACM上了么?當(dāng)然不能。曾經(jīng)問過學(xué)長類似的問題,得到的答案就是GPA相比ACM來說,公司雖然看中能力,但是更看中基礎(chǔ)課的掌握程度,而GPA就是表現(xiàn)這個(gè)的最方便的方式。GPA說明了一個(gè)人對待學(xué)習(xí)的態(tài)度,也表現(xiàn)了一個(gè)人的學(xué)習(xí)能力。總而言之,我的建議地能不掛科就不掛科,畢竟掛科后要花更多時(shí)間去折騰自己的學(xué)業(yè)。
最后,想提及一下作息時(shí)間的問題,大一大二作息時(shí)間一天比一天混亂,特別是周末或者課少的時(shí)候,本人熟悉的ACMer中,有90%的是夜貓子,每天2、3點(diǎn)睡覺都是常事,而這樣的作息時(shí)間導(dǎo)致了白天精神萎靡的情況。最近一直11點(diǎn)睡7點(diǎn)起,上課沒有犯困過,感覺良好。
不管怎么說,既然要把ACM作為自己大學(xué)生活的全部,那么就認(rèn)真地投入吧,好好享受這個(gè)過程才是最關(guān)鍵的不是么?
總結(jié)
以上是生活随笔為你收集整理的论ACM ICPC_Ruins He的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用mongoose Model.crea
- 下一篇: 女性不孕要做那些检查