1. 程式人生 > >一個ACM渣渣關於找工作的胡扯

一個ACM渣渣關於找工作的胡扯

       先做個自我介紹。本人開學大四,從大一下開始玩acm,無奈能力有限,智商拙計,打鐵無數,最好成績也不過爛銅一個。傷心之餘,大三開始一腳踩入網際網路企業的浪潮之中,開始翹課奔波於各種面試,實習,專案,工作之間。從實習到校招先後面了百度,騰訊,阿里,360搜尋,知乎,敦煌網等n多家公司,最終拿到百度複合搜尋部與騰訊即通平臺校招等幾個offer。至於最後是去哪家企業,還是說選擇保研,目前還沒有完全做決定。。。。。說實話本人的無論是能力還是經歷在無數amcer中屬於平凡至極,更不用說與同一個時代的kuangbin,xiaodao,chenlijie,適牛等神犇相比。。本來也沒資格談什麼acmer找工作的話題。然則最近經常聽到小夥伴們提出的關於“acm有沒有用?”“搞acm的目的是什麼?”“acmer適合投啥崗位”等問題,以及國內某些公司與acmer間的一些爭論,結合自身所見所聞所感,最終決定厚著臉皮胡扯一番。。。。。本人見識淺薄,如有不對之處,還望海涵。

       首先是第一個也是最重要的一個問題,“搞acm有沒有用?”。答案很肯定,搞acm是有用的,而且非常有用。做個不恰當的比喻,問這個問題就像問讀《論語》之類的經典有沒有用一般。從賺錢的角度看,讀經典可能還不如種地或者養豬來得實在,但在你讀經典的同時,它們卻會潛移默化的影響著你,不知不覺中發生質變。搞acm也是一樣,真正在實際工程中無論是研發工程師還是演算法工程師(演算法工程師一般是做機器學習那種,偏數學的東西)可能並不能接觸到什麼複雜的acm演算法,但是當你在搞acm或者被acm搞的過程中所培養的那種演算法思想和程式設計能力等東西卻是無價的,並且會影響一個未來的工程師的潛力和自身素質。具體一點,假如有兩個人,一個人是acmer,一個人是專門做網站的碼農,相比之下純粹的acmer可能連個最簡單的網頁都不會寫,但是當網站發展到一定的規模需要去對程式碼效能上進行優化,或者是需要自己去實現一些演算法比如AC自動機,一致性hash,遺傳演算法之類的,普通的碼農往往會兩眼一抹黑,而acmer往往卻能夠在較短的時間內完成任務。

更直觀一點,可以看看BAT和FLAG這種大公司中年紀輕輕就當了高階rd的人群中acmer所佔的比重,便足以說明問題。

         既然”acm如此有用,我可不可以大學四年只搞acm,其他的都不學?”,說實話並不推薦這麼做,因為電腦科學不當當是演算法一門,其他的如資料庫原理,計算機網路等等也是屬於碼農內功的重要組成部分,單練一招不排除走火入魔的巨大可能。。。但是如果換種說法,”我認真學習那些計算機的基礎知識,但課餘時間我就想做acm,不想做那些工程性的東西,這個可以嗎?” 這點理論上講是可以的,但是結合天朝獨特的網際網路環境,我們需要分兩種情況的來看待問題。。。。

        首先如果你的目標是做研究,上完本科,上研究生,然後讀博出國,專心致力於類似機器學習或者某種演算法這樣的話,本科4年專心做acm,心無旁騖學習演算法與程式設計技巧,這是一件非常有意義的事情,因為你的時間跟那些本科就出去找工作的同學相比是較為充裕的。而且你的目標是科研的話,通過對acm所涉及的一些演算法進行學習以及刷題過程中進行的思維鍛鍊,對科研來講是挺有好處的。此外結合天朝網際網路行業的演算法和資料探勘等相關科研崗位的實際情況來講,比如某度的廣告部門,很多專心科研的人並不擅長coding和常規演算法,因此同等條件下acm對你來講會是一個比較大的優勢。

       反之,如果你的目標就是想當一名樸實的程式設計師,本科出來就想工作。個人推薦在本科高年級或者找工作前的時候抽時間開始研究些實際的工程上的東西。為什麼,原因很簡單,首先中國的網際網路企業為啥要招你進去?是因為你很牛逼? No,本質上講是因為你能給他幹活,能給他帶來收益。簡單點說就是,人家招你進來是要你幫他賺錢的,而不是因為你的智商有多高。一個純粹的acmer在他們的眼中,很可能就如同lol裡面一個藍很高,屬性也很高,但卻暫時沒有輸出的角色。。。而且實際的業務內容,剛入手的話也不需要如此高的屬性。所以如果企業願意招這樣的你進去很大程度上是因為他們願意培養你,認為你的潛能能夠給他們回本。這同樣也帶一個問題,他們如果找這樣的你進去,就需要培養你,因此成本就加大了,而且還不一定能回本。。所以對你的要求自然也就更加嚴苛,個人感覺這也是為什麼有些企業對那種純粹的acmer的要求是區域銀牌以上的原因之一。網上有種說法,應屆的acmer在天朝網際網路企業眼中的排序是這樣的:

ACM區域銀以上 + 專案 >  ACM區域銀以上 >  ACM銅及以下 + 專案 >=  ACM銀 > 專案  >  ACM銅及以下

acmer都是學習能力較強的人,因此在這種情況下,花些時間研究些工程方面,是件價效比較高的事情。

         那麼ACMer適合投哪種崗位呢?研發還是演算法? 答案是研發,特別對於本科生。一般來講網際網路企業的演算法崗都是做些機器學習之類的,跟acm演算法差距還是較大,如果對機器學習有一定了解可以試看看。那麼本科生一定不能投演算法崗嗎?答案是不一定。親身經歷表明本科生也可以投演算法崗,不過跟那些專業研究機器學習的研究生和博士相比,可能會做起來比較吃力,理論知識也不那麼紮實(雖然後天可補),通過觀察,本科做演算法崗能做得比較牛掰的,可能更偏向於對業務自身的較為深刻的理解,比如傳說中跟戴神同一時代的百度鳳巢本科調參帝。

         最後ACMer找工作的途徑有哪些呢?躺在床上,等工作上門可不可以? 除非你實在是牛逼得逆天了。。否則答案是no。。。。。  找工作而已最靠譜的方式是內推!內推!內推!重要的話說三遍。。。。最優的選擇當然是找親戚,朋友,學長,老師直接內推到部門leader那邊然後直接面試。此次便是各種線下宣講,接受現場投簡歷和麵試那種。接下來就是到什麼北郵人論壇,來去實習,實習之家等等找最新的招聘資訊進行海投。。。。最後才是自己官網海投簡歷。。。。

         扯了這麼多,也是倦了。。。。最後再扯一句吧 “找工作的時候,要多想想對方憑什麼要招你進來?“  恩,就這樣了。。。祝大家都能拿到滿意的offer。。。