對於軟體工程的學生來說,acm和商業項目那個更重要?
題主是軟體工程系的一名學生,想過學acm,但又發現身邊的acm大神基本都是生活在發達城市,高中起就搞acm的同學。覺得競爭不過,學acm又很費時間。想做商業項目,卻有人說沒用,不知該何去何從,希望大神們給一些意見,指明一下兩條路的前景。
有機會操練ACM就好好操練ACM吧,以後有的是機會做所謂的商業項目,而ACM的機會就一去不復返了。
嘿嘿嘿。。老娘就是軟工的!軟工搞 ACM 的優勢是:。。。時間比較多!
ACM可以看作一種腦力的鍛煉活動,就像跑步對於體能一樣。
研究會發現田徑運動的大神基本都生活在發達國家,從高中就開始田徑訓練,覺得競爭不過,又浪費時間,那麼還要不要去跑步呢,還是去擺地攤做家教賺點錢養家呢?
我覺得吧,既然要練短跑跨欄什麼的,就要打敗劉翔博爾特,否則就不要練了,浪費時間。
=============好吧,說點正經的。人可以被打死不能被嚇死,你還沒開始ACM怎麼知道自己一定不行,去試試看,努力了之後還發現不行再去做其它的也不遲。那些大神離你很遠,你先搞定自己附近的選手再說。即使成績不好但總能學會點東西的,增長些見識總是好事。練短跑即使打破不了百米記錄也能長點肌肉的。在學校哪有什麼靠譜的商業項目, 能去實驗室幫師兄師姐做做項目就不錯了, 我本科的時候就是去幫師姐寫matlab做模擬, 當時覺得很上流比競賽靠譜啊, 將來可以去華為中興走向人生巔峰.現在腸子都悔青了, 當初應該老老實實在校隊參加暑假集訓的啊.
如果樓主現在有能力去好公司實習, 那就還是好好去實習學點東西混點資料吧, 有個靠譜的人帶, 你會知道該幹嘛的. 不過如果樓主具備這個能力, 似乎就不會問上述問題了, 所以先忽略了這條路.
如果是為了競賽拿成績, 確實有點晚, 除非你天賦很高. ICPC通過刻苦訓練拿個區域賽的銅牌還是很容易的, 但是要進world final啥的, 感覺還是主要靠智商或者神一樣的隊友.
但是么 ,演算法學好了總歸沒有壞處. 面試好公司總歸用得上. 舉個例子, 比如好多字元串有關的面試問題, 解法都是後綴數組, trie, 自動機等被ACMER玩剩下的, 但是好多沒接觸過的人就算之前看過麵筋還是半懂不懂, 下次碰到了還老是記不住, 然後面試漏出破綻啦, 哈哈.所以把, 我覺得無論如何還是有必要進行基本的演算法訓練的, 像leetcode上那一百多道題是可以練練的. 樓主可以用學演算法的心態來自學, 而不是要專門參加比賽訓練來荒廢其它的.
另外樓主可以試試死磕某個開源項目, 做些一手研究, 最好是能提交點代碼.這個也是核心競爭力啊本人軟體工程 大學才接觸計算機並開始學習ACM regional收穫兩銀 現在某軟工作一年 說下自己的一些看法和感想
題主問的是acm和商業項目哪個更重要 不知道題主怎麼給重要性定kpi 我就單從工作方面說一下吧
首先學習ACM對找工作絕壁杠杠的有幫助 校招基本面試大多都是演算法題 對於學習過ACM的同學 對面試官的大多演算法題都可以輕輕揮一揮衣袖 不帶走一片雲彩 所以不妨把ACM看做是畢業有一個比較好的工作平台的一個跳板 不過這隻限於本科畢業生 到研究生突出的部分應該是論文 實驗室工程 或者 ACM金牌 好吧 這點上求輕噴。。。
然後ACM對工作有多少的幫助? 從我工作一年的經驗來看 沒見到對工作內容有多少幫助 甚至有時候會有一些負面影響 因為ACM可能會讓你自覺不自覺的過多focus在代碼上 然而在工程上 我很認同我老大的一個觀點 「代碼是一個工程中最簡單最容易的部分」 不過ACM可以培養一個人自主學習的能力和思考能力 這一點在很多方面的幫助都不可估量 但肯定都是正面影響的
至於商業項目 我實習的時候認識兩個同學 都是做商業項目的 準確說應該是花旗銀行的一個軟體比賽 比賽內容應該主要focus在工程上而非ACM的coding 然後他倆現在的情況是一個剛去某軟總部參觀了一次 另一個現在google工作 由此可見 條條大路通羅馬 就看題主願意走多遠
題主不管選擇哪個方向 只要做決心了 那請一定要堅持下去 做事情是爬山而非平川里競走 只有登上了某個山頭 眼前的景象才會瞬間別有洞天 而不管什麼山頭 半山腰上的景象永遠都是差不太多的都沒用,只是所謂商業項目更沒用。真正有用的東西,是要為人們解決問題創造價值的。
ACM 固然不創造價值,但商業項目能否創造項目更多是由商業決定,其技術價值有限。有限的意思是,你不做的話還有無數的人能做。ACM 稍微好一點的地方在於,你不做的話能做的人有限。我覺得:如果有比較好的想法,還是去把那個項目找一夥同學做出來,然後找投資,去創業吧,大學是一個比較好玩的時間,要想著給自己幹活,別總想著去給別人幹活,等工作以後,每一天給別人幹活,幫別人成功,幫別人獲得掌聲,真他媽的沒勁。找一堆小夥伴,把自己的想法做出來,然後運營起來,不錯的話就去找投資(各種平台,各種宣傳稿等等),bless。
。。。作為一個學軟體工程的acmer。。。
我表示我們隊。。。我高中noip搞得一塌糊塗。。。最短路都不會寫。。。但是身在弱省弱市所以靠暴力就水到省一保送了。。。大一下才進隊開始搞acm。。。一個隊友高一拿了一等後就不搞了。。。另一個隊友跟我一樣是軟院的,大我一屆的學長,高中沒搞過競賽,大二才開始。。。我們三個是同時進的acm隊。。。雖然我們學校acm成績比較弱。。。但每年的保送生中除了我這種渣也還是有不少能手寫各種高端數據結構的巨巨。。。大一暑假打多校賽,我們隊天天被巨巨們吊打成狗。。。大二上打的兩場regional都滾粗了,成績僅高於女隊。。。
結果一年過去了。。。我們隊保持了訓練,做了很多TC/CF的比賽,現在CF都全部黃名了,今年多校賽大部分場都碾了巨巨們。。。成了我校一隊。。。所以「別人高中領先我」這種話吧。。。呵呵1、ACM玩家基本上都是從NOIP這麼弄上來的。
2、這些玩家高一的時候基本上就能徒手5分鐘內擼個快排,10分鐘弄完一道動態規劃或者來個搜索+剪枝。你想想看,你是大幾學會的?3、這些玩家高二的時候就開始擼AVL、紅黑、線段樹、樹狀數組、後綴數組、快速冪,這些名詞你還認識幾個?4、這些玩家高三的時候就開始弄二部圖,流,費用,啟發式。帶花樹、樹鏈剖分、LCA這些名詞你聽說過幾個?5、有些玩家coding效率比你隨便在鍵盤上亂敲都快。6、我見過的還可以做到擼演算法可以關著屏幕來。7、更關鍵的是經驗,有經驗的玩家擼USACO從Chapter1一路擼到了Chapter6,還給admin發信要到了不公開的題庫的帳號。擼URAL擼到XXXX題,Ac Rate在XXXX以上。擼POJ、ZOJ之類的也在top page裡面。擼TopCoder擼到了Offer。你在幹什麼?你又能幹什麼?8、玩家看到題目第一反應:這不是XXX模型/演算法+一個裸的XXXXX么?你看到題目的第一反應是:擦,有單詞不認識。
9、玩家之間的交流方式是這樣的:「(mb)菊苣」。或者是「你連這都沒想到?XXX就是了啊」,然後另外一個就肯定是「我擦,我看錯題了」,甚至是這麼回答的「這道題目,URALXXXX+POJYYYY」——你連聽都聽不懂,除了能確定他們都是中國人之外什麼信息都沒有得到。你覺得你有優勢嗎?非要強行拿著自己的弱點撞人家的長處。精神可嘉,但這毫無意義。---------------------總而言之,想要弄ACM弄出什麼成績你完全沒有可能了,還不如直接弄工程去。同事中,有幾個類型的:
1. ACM出生的,這個比例真不小,有拿金牌也有做的還不錯的。2. 深入研究某個領域的,做的非常深入的3. 做工程的
過了幾年之後,根據這些人的發展情況,大概一個總結
1. ACM,很多都搞工程或者走管理路線去了,但是目前沒發現那個搞工程搞的很好的(沒有說不行)。
2. 走深度路線的,有內核,也有搞什麼機器學習的,以前那些同事都做的很牛了,最近雲比較火,各種總架構師,雲XX總監之類的好幾個,而且都很出名。
3. 做工程的,這塊差別比較大,目前看搞的最好的,就是自己創業開公司的,還有帶十來個人的團隊搞搞東西的。
這幾種類型中,從總的樣本中我大概總結
2 這塊從長期來說職業生涯最好,無論是職業還有收入,都是非常穩定而且很給力的
1和3就真的不好說了,差別比較大不過相對來說2這條路線前期要耐得住寂寞。我的個人總結:搞自己喜歡搞的吧,然後千萬要有深度,不然最多就是一個包工頭。
PS:我是從2到3,然後現在準備繼續走2路線的,尼瑪最寂寞的時候我都熬過了,結果還是跑去做工程了,不過這也有一個好處就是思考的緯度相對就會高一些。
重點是吹牛吹得響。 哪個可以讓你裝b裝得更b一點,就選哪個。
一直很奇怪為啥都瞄準ACM,僅為能拿到大公司的offer?現在還有很多多元化的比賽,為什麼還是盯著ACM呢,演算法是計算機的基礎,但要知道這基礎還真是計算機領域的冰山一角,若從數學領域那更不值一提了。個人感覺對這些基礎作反覆訓練跟技工的反覆技能訓練沒有差別。信息領域的比賽多得是,譬如涉及計算機安全的Pwn2Own大賽,各晶元廠商舉辦的嵌入式開發比賽,RoboCup機器人大賽,谷歌的Android開發者大賽,PASCAL VOC視覺識別比賽等等,都是國際級別的比賽,就不一一列舉了,這些比賽也都有各大互聯網公司贊助,只是普及程度不及ACM,但涉及的知識領域比單純ACM要深入和廣泛,這類比賽甚至與商業項目的工作量相當,甚至能直接用於商業項目。PS: 參加ACM有一個很大的好處應該就是能免費獲得ACM文獻系統閱讀的資格吧。
ACM過程中可以結交真正的、純粹的、志同道和的、一輩子的好基友、好哥們;ACM獲得名次,意味著拿到中國頂尖IT公司的Offer。畢業後一輩子就進入社會大學了,還缺商業項目?!騷年,4年大學時光,該戀愛就戀愛,該ACM就ACM,每個階段都有每個階段該做的事,不要忘了你上大學的初心。
ACM還是挺鍛煉人的,我也搞過一段時間,參加過一些比賽,感覺收穫很多,也開闊了眼界,同時也覺得和大神差距挺大的,不過不能因為人家比你強你就不去弄,那隻會讓差距越來越大,我建議是不要為了獎項去搞ACM,上面也有人說了就像健身一樣,你可以將它生活化,會得到更多。
不知道題主大幾了,大一的話時間那麼多,二者完全不衝突啊!如果是大一大二可以搞ACM,然後大三大四搞科研或者項目,這個就看個人了。雖然大牛都是高中開始就接觸了,但是不能因為牛人存在就不去搞了。我等普通人不要以拿獎作為目標嘛。ACM是我覺得最能鍛煉人的了,認真搞一段時間演算法能力沒的說,而且可以跟大牛接觸很多,眼界真的開拓太多。我接觸那些商業項目回頭想想真是xiang,演算法搞好不會限制你的選擇,只會拓寬,其他的項目和比賽都會或多或少限制住你。個人觀點
看你自己的興趣和智商。
可以玩玩acm啊,這個不錯的
大幾?大二及以上acm沒什麼希望了,玩玩可以,出成績希望不是很大,除非是天才。
為何樓上有那麼多一點都不了解ACM的人卻裝做看透了ACM一樣
我覺得你可以都學學,但是不需要非得拿什麼獎。你去找工作的時候,會的演算法多一點,也是有優勢的。
如果題主在ACM上確實有一點天賦或者是感覺並且還是大一或者大二的情況下還是推薦搞一下ACM,當搞了一陣子ACM發現實在是競爭不過那些大神時果斷還是轉商業項目吧,但是之前ACM的經歷能顯著地提高你的演算法能力,對於開發和找工作來說還是很有幫助的,至少面試的時候那些演算法題還是不成問題的;但是如果題主已經大三(或以上)了還是搞商業項目吧,現在才搞ACM已經有點晚了,特別是對於軟體工程的學生來說
推薦閱讀:
※如何看待 2017 年 1 月 12 日發布的 HTC U Ultra 和 U Play?
※為什麼一眼就可以看出來別人在裝逼?
※同時收到一家小遊戲公司cocos2dx開發和某公司外包C++開發的offer,工資外包略高,不知該怎麼選擇,給點建議?
※對於互聯網公司來說,為什麼用戶體驗如此重要?怎樣才能創造出優秀的用戶體驗?