解 ACM 題的能力真的代表程式設計能力嗎?

時間 2021-05-11 22:54:15

1樓:薛景

或許能解ACM題的同學,程式設計能力都不差吧,但是你能保證自己一定可以在ACM中獲獎嗎?

作為乙個大學計算機老師,我想說的是,參加ACM和能在ACM獲獎是兩碼子事情,去參加ACM的同學大部分都是炮灰,所以自然也不能把參加ACM放在簡歷上。

另一方面,如果做專案的話,不管如何,只要你堅持到專案結題,總會給你乙個證明材料,當然,面試官通過和你的對話也可以基本上知道你在專案中承擔的工作。

所以,從求職應聘的角度來說,除非你對解題特別有把握,或者你有天賦,我一般不建議普通同學去參加ACM等程式設計競賽,而是建議同學們跟著老師的科研團隊踏踏實實做點專案,對於就業應該更有幫助吧。

2樓:

不是因為打ACM而強,而是因為強的才打ACM。

ACM難度很大,訓練時間很長,很多人打到中途基本都退出了,能留下來的絕對不會弱到哪去,本人的大學ACM社團普遍大一招五六十個,到大二基本只剩下不到十個,絕大多數都在中途退出了。。。

3樓:

恕我直言,一般面試前做的演算法題都是測試基礎資料結構與演算法的,與正常acm題(水題與模板題退散)完全不是乙個量級的,類似於畢業考試與奧賽一樣。如果對此有異議,請去參照任意有名比賽資格賽題目(如topcoder或者code jam)與leetcode周賽題目對比。

事實是,除非公司急需乙個專做某項技術的人,否則如同大部分答主所說,他們需要的是更快速準確的找到乙個聰明人。那麼這時候acm獎牌的含金量是可以說明很多問題的。這並不表示專案就毫無競爭力,君不見很多創業者的專案是大學寫出來的?

4樓:Macsnake

乙個現實中的問題的解決方案通常是質量、時間及人力成本綜合平衡後的結果,非常的現實主義。需要長期經驗積累的過程,刷題是刷不出來的。刷題能體現智商,實戰能力則體現智慧型。

層面上不太一樣。

5樓:小豆子范德薩

有過系統認真ACM訓練的,哪怕是沒拿獎,百分之80-90都會有比較好的程式設計基本功但是如果沒有ACM訓練,那麼這一比率可能會降低到百分之50甚至更低

6樓:at餘大叔

ACM好≈聰明,聰明≈程式設計好。所以ACM好≈程式設計好。

大概就是這個邏輯,排除少數,所以用了「≈」。而且ACM好的人大多數比普通人更早接觸程式設計,從中學甚至小學就接觸過程式設計,起跑線上也領先其他人一點。

沒打過ACM的也有很多程式設計高手,但也有很多像我這樣的菜雞 。但是打ACM的人至少都不笨。在頂尖領域,ACMer和非ACMer區別不太大。

中間領域,會做ACM題的人還比其他人厲害一點點的。

——來自沒打過ACM,仰慕ACM大佬的菜雞

7樓:非著名程式設計師

舉個例子吧!

ACM 對於程式設計來講,就像是數學中的奧數一樣。都是側重於對於智力的考驗。

不管是程式設計,還是數學都是乙個龐大的體系,你只會奧數,只會演算法解 ACM 題,那肯定也是不行的,只是其中的一部分。

這就像是如何把自己的智力變為應用的能力。如果做不到這一點,那只會 ACM 肯定不能代表程式設計能力。

但是,話又說回來了,ACM 好的人,智力好,邏輯嚴謹,思路靈活,做其他的肯定也差不了啊!程式設計能力不會差。

而且程式設計能力培養起來,只需要自己多做,多實踐,思考,ACM 好的人,優勢比較大,沒有上限。

通過題主的描述,可以看出來題主是乙個比較認真,比較較真,比較憤世嫉俗(不是貶義詞)的人。看到不合適的社會現象喜歡與之抗衡。

其實社會沒有絕對的公平,企業的招人原則也是經過大量的經驗總結的。

演算法這個東西,在面試中是最能測試出人能力的好的方式,企業之所以喜歡演算法好的人,是因為聰明,這樣的人學習能力快。IT 行業,技術更新迭代太快了。

8樓:嚴駿

這就好比理論和實踐的關係,你說到底是不是,其實是也不是,在於怎麼定義程式設計能力,在區域性上的偏演算法的程式設計上,肯定是更加有利的,可是,程式設計其實是更加傾向於對現實的模擬和對映,這一點,應該算是建模,不過acm強,至少智力應該不弱,普遍上來說,程式設計能力更強也是理所應當的,如果你問的是絕大部分來說,那應該是的,如果你說百分百,那肯定也不是。

9樓:十六

oi無論是noip還是acm(jb)還是其他的什麼都好,本身就是一種以鍛鍊解決問題的能力為主的運動(運動...)。演算法板子誰學不會啊,就算會默寫一百個板子到場上該爆0還是爆0。

所以啊,我自己學習以及言傳身教的時候總說,發現問題,分析問題,解決問題的能力是最重要的,大於演算法模板本身。

只不過程式設計是最相關的事情,體現的尤為明顯。

10樓:

我覺得oi才是真考驗程式設計能力。ACM三人組隊,可以抱別人大腿,oi只能單打獨鬥。ACM可以帶模板進場,複雜的資料結構大不了現炒現賣,而oi就只能全憑腦子記憶。

ACM編完可以直接提交結果,錯了還能回來改, oi是賽後測試一錘子買賣。ACM一年還有好幾場可以比,機會多, NOI一年只有一次。

11樓:

ACM搞的好的人學你會的工程上的東西都是分分鐘的事(只要他們願意),而且實現會更加efficient。(是的,就是因為他們聰明)

12樓:

- 花了8個月時間積累資料.

- 最後的研究結果 How to be extremely efficient in Emacs : emacs

真實世界的問題很複雜,要考慮到很多細節,所以需要花大量的時間.快速的反應遠不如耐心重要.

13樓:張三

沒有聯絡,有幸面試過一批acmer,應該都有拿過牌,最差應該也有區域賽拿牌吧,好幾個對「寫乙個多叉樹的資料結構」毫無概念。不是那種寫的不好,是完全不會。

14樓:盧磊

原因有很多,比如面試官的喜好就是乙個原因。但大多數原因在於通常ACM拿獎的同學學習能力大多都比較強,而且這個獎還相對權威,很容易獲得認可;而工程經驗豐富的同學學習能力也強,但是可辨識度不高。很多時候招聘講究效率,短時間內對乙個人了了解的資訊有限,這時候ACM拿獎的就有優勢了。

有些普通本科的同學覺得自己能力比北大畢業的同學強,但是去面試沒有北大的有優勢,這是乙個道理。

15樓:

這個問題就好像「高考真能說明乙個人的能力嗎」一樣,答案是不能。

幾乎所有和「競賽」,「考試」,「培訓」相關的東西都無一例外的要被拉出來批鬥的。

我見過有搞了好多年演算法競賽的同學分不清「編譯器」和「編輯器」的區別(注:這個人是數學專業),也見過做了好久專案的同學寫不出乙個快排。但是木匠不會解微積分不妨礙他打出好家具。

16樓:樊裔風

acm說到底是聰明人的遊戲,能把這個玩的很轉的人,必定智商很高,甚至是天才,在這個領域見到天才的機會遠大於其他領域,你會經常看到那些從小就各種競賽過來的神童,他們成長軌跡一定會讓你第一次覺得同樣是個人傳說中的差距原來真的有這麼大.但在其他工程領域,你見到的那些高智商的人的幾乎要小的多得多.因為這個競賽的最終舉辦目的就是要挑選出世界上最好最聰明的一波程式設計師,與演算法無關,與語言無關,只與是否聰明有關,演算法也只是一種手段和方式.

這波人,大多數都會走向科研的道路,從事某個方向的研究,真的是為人類的技術發展作出突出的貢獻的.所以,我從心裡很感激這部分對技術痴迷並努力的人們.

還有一大波人,並沒有取得什麼成績,但參加過,又因為這個比賽,不管你承認不承認,它的確被冠著高智商遊戲的帽子,按照常人的邏輯,參加過高智商的遊戲的人,能取得成績的自然智商高不必說,沒取得成績的也至少能說明我智商不比他人差.所以也會有一波人,利用競賽這個帽子會有一些潛在意識當中的高智商的優越感.

單就樓主題目而言,acm肯定是不能和程式設計能力化等號的,程式設計能力包括的範圍很廣很廣,另外上面也對acm的目的做了詳細說明,從來沒有人以acm為職業的,只是通過acm去挑選出那些更聰明,更靠譜的程式設計師,他們往往在接下來的工作中,更能輕易成為某個行業中程式設計能力強的代名詞,因為相對與普通人未接受過訓練的人,他們的素養往往更為專業.acmer最終的很多人還是要從事相關的系統開發,有過acm經歷的只會是加分項,但絕對不是必需項.

17樓:高可攀

當然能。

我感覺題主其實更多的想問,ACM獎項在求職過程中能不能作為一項評價人才的指標。其實說實話也不見得每個公司都看的很重吧,但是既然有公司這麼做的,是不是說明這麼做有些道理?

本人先前一直都在搞演算法競賽,也思考過題主所描述的問題,甚至還產生過「搞ACM這種沒啥用的東西是不是虛度人生」的想法。

但最近接觸了一些工程、專案,我發現乙個道理:搞工程搞專案所能獲得的東西,大部分計算機系的學生只要願意,就可以靠「時間堆砌」來獲得,但搞演算法競賽所獲得的,以及考演算法題所證明擁有的,就沒那麼簡單了。

18樓:韓雨

睡前忍不住來答這個問題,總結一下,答題的多數都是ACMer或者是OIer,雖然大家並不是一味的捧ACM,但是都表述出的乙個思想就是:搞ACM的學東西學的快。

我雖然現在也在做ACM,日常刷OJ,打bc,但是還處在其他大牛的水題階段,所以更不敢稱自己是ACMer。而不得不捧的是,那些真正熱愛ACM的人,都是有著足夠學習能力的人。這份能力短期看來是學習演算法,會刷題,但是長期的話,想要涉略其他知識也只是時間問題。

面試以此刷人,有點以偏概全卻可以收到一批有強大思維能力的員工。

有些問題的答案其實很殘酷,點到為止,做好自己就好。

19樓:

我覺得,能夠在acm競賽中獲獎的同學,不管其本人水平如何,他們最少都有很強的意志力和執行力。而這兩種可貴的精神品質,使得他們在工作中,能夠有更大的概率發現和解決問題,持續優化產品。我想,這種能力是公司最看重的吧。

20樓:財主刀刀

我們招聘看到ACM校隊或者喜歡研究ACM的都還會多看幾眼,因為比較一下,簡歷會更有亮點

題主糾結和疑問的原因是自己寫了那麼多專案,但做筆試題卻各種挫敗感,以至於無法進入面試環節吧?

與其在知乎發帖求答案,不如買本ACM的書或者到leetcode topcoder zol jol pol做做題,兩個月時間專注做好常見題,筆試得高分就好了

畢竟工作中最看重的是你解決問題的能力如果程式設計能力強,那麼做筆試題也不在話下啊

21樓:jun zheng

我就說一點。

ACM/ICPC是一群精英出題,另一群"精英"解的遊戲,而工程實踐不是。

程式設計師在工程中需要面對各種需求,有嚴謹的,有奇葩的,有反覆折騰的。

如果工程中的需求和ACM題目一樣,不僅要考察程式設計師的程式設計能力,也要考察產品經理的出題能力,需求設計必須像ACM的競賽題目一樣嚴謹。這樣才公平!

再補充一點。

ACM的問題都是找唯一最優解的問題,這和現實工程有很大不同。工程中的問題大部分是求較優解的問題,未必能明確定義最優解,包括提出需求的人也未必知道最優解是什麼。

這一侷限來自於ACM/ICPC的評判方式,用黑盒測試進行結果比對去評判對錯,因而只能有唯一最優解。

這也導致了大部分人工智慧領域中,通過找更優解去不斷逼近最優解的演算法,帶有隨機性的演算法,很難在ACM競賽中排上用場。

成績的好壞真的能代表未來的發展好壞嗎?

夾克 成績的好壞並不能代表未來的發展好壞,你學習好,有個好的文憑只能說你比那些沒有的人,多了一把鑰匙,但是主要還是看你自身的能力,你能做什麼,能做好什麼,想做什麼,這才是關鍵 山上無風 成績的好壞與未來發展的好壞不能等價,但這並不是說成績的好壞與未來的發展並沒有關係,乙個學生如果在學習方面成績好,說...

DOTA水平能代表乙個人的什麼品質或能力?

心理學老於 說的簡單點智力,手速技術可以慢慢練但是對局勢的判斷和對對手的判斷就要看選手的智力了。不怕不會玩不會放技能就怕你不知道什麼時候該去哪 送給愛玩遊戲又玩不好還總說別人玩的不好的小那啥們 小學生頭目 刀塔比一些moba類遊戲要稍微難上手一些,其中乙個原因就是這個遊戲注意的細節比較多。這個遊戲十...

學生的成績一般真的能代表他不聰明或不努力嗎?

竹九九 這個問題特別蠢。我朋友成績倒數,但是混的最好。處理人際關係的能力一級棒,能應付許多領導都頭疼的問題。不瞞你說,我覺得他以後一定能成為乙個不錯的領導。他現在開了自己的公司,雖然不大,但是比起同齡人,還有他那些仍然在讀大學的同學來說,已經強太多。其他人還在擔心期末考試能不能拿800塊的獎學金的時...