天天看點

普通學校,我是該打ACM還是做項目?

大家好,我是帥地。

之前星球有一位大一的小夥伴問帥地,因為學校一般,他是應該繼續刷算法,打 ACM,還是把時間花在做項目上好呢?

他發的字有點長,我就不截圖太多,隻截圖我的概括

普通學校,我是該打ACM還是做項目?

打 ACM 的話,大一大二就會少很多時間學習其他知識,但有機會拿到 ACM 獎牌,可以給履歷加分;不打 ACM 的話,就有大把的時間學習計算機基礎,刷 leetcode,做項目,然後早點去實習,但又覺得學曆一般,怕過不了大廠履歷面。

是以,對于普通學曆的人來說,ACM 打還是不打?

不知道大家有沒有這個疑惑?反正我當時是沒有,因為我大一對招聘求職這塊還不了解,假如你在大一大二就有這個疑惑,我覺得你已經超越了很多人了,因為很多人在大一大二,根本對求職一無所知。

對于這個問題,帥地先給大家說兩個身邊讀者的真實案例吧。

讀者一(沒打ACM)

學校是二本,比較差勁,學習氛圍也差,他沒打過 acm,我讓他大一好好刷算法題,在之後刷計算機基礎,也就是計算機網絡,作業系統這些基礎課程。

再之後就是深入去了解一門程式設計語言,例如Java,Python,C++ 或者 Go,在之後就是學架構做項目,算是 leetcode 刷了幾百道,然後計網和作業系統在大二第一學期就刷了,之後做了幾個前後端分離的的項目。

這個小夥伴在今年春招拿了騰訊阿裡的實習 offer。

讀者二(打ACM)

也是二本,學校也一般,不過學校也有 ACM 隊,學校最好的成績是拿過省牌,忘了金牌還是銀牌了,不過這個同學挺喜歡刷算法題,是以大一大二基本是在 acm 隊刷題,最後貌似是拿了個省銅,在之後就開始刷瘋狂刷計算機基礎知識,然後在随便做一些小項目。

結果是這個同學在今年拿到了網易和騰訊的實習 offer。

這兩個同學的共同點就是,準備的早,有紮實的基礎,不錯的算法能力以及不錯的項目經驗,差別就是打 ACM 的算法能力更強,而不打 ACM 的項目經驗更加豐富。

當然,他們有這麼強的學習意識,也算是有我的一份功勞吧,畢竟從大一就一直找我唠叨,問這問那的。

打不打?

通過上面我說的例子(其實還有很多這種,畢竟我十幾萬讀者),如果你準備的早,有紮實的專業知識,不錯的算法能力和項目經驗,就算你的學曆一般,那麼你還是有機會拿到大廠 offer 的。

重要的不是打不打,而是你在各個方面學的如何。

帥地之前也問過騰訊和位元組的 HR,他們都說履歷主要看:學曆,靠譜的實習經曆,筆試成績,比賽獎項。

是以學曆雖然很重要,但絕對不是唯一。

特别是對于網際網路一線大公司,獲得面試的機會,還是不難的,例如像騰訊阿裡位元組跳動這些公司,還是不會卡學曆卡的太緊的,因為他們還是比較願意花成本去尋找人才。

當然,有些公司還是比較卡學曆的,例如 ViVO 啊,華為啊,一些國企啊,像這些的話,就真的挺卡學曆,基本需要 211 或者 985 才行。

不過我說的是開發崗哈,雖然現在開發崗也越來越卷了。

是以呢,打不打不是核心,核心是你這兩年的學習。

假如打 ACM,那麼你的算法肯定很紮實,到時候算法筆試和算法面試這塊不需要準備太多,而對于計算機基礎,學校有教,你有一定基礎,那麼複習起來很快的,項目之類的也可以突擊。

假如不打,那麼可以多刷 LeetCode,然後學習自己選的技術棧,之後有機會多去實習,有了強大的項目經驗和紮實的基礎,以後拿個不錯的 offer,還是機會很大的。

如果你是小白,并且不打ACM,也可以看看我寫的學習路線:

1. 後端通用學習路線

2. 适合普通大學生的 Java 後端開發學習路線

3. 适合普通大學生的前端開發學習路線

打不打的一點小建議

不過,關于打不打,我還是有點小建議。

如果你本身不喜歡打 ACM,體會不到那種 beat100% 的樂趣,那麼我覺得還是不打了;或者說你的學校連個牌子都沒人拿過,又或者學校連個 ACM 集訓隊都沒有,去比賽還是自己自費去,特别麻煩,那麼也建議别打了。

不打的話,也要堅持去刷算法題,然後,做項目,找日常實習。 核心就是自己算法不能太差,基礎得搞紮實,如果自己可以多多折騰一些開源項目就更好了。

反正要想進大公司,要嘛你有強大的算法能力支援,要嘛你有強大的項目經驗,就算進不了大公司,也能拿個不錯的 offer 吧。

另外,無論打不打,該看的書還是得看,至于看啥書,帥地這裡都總結了:少走彎路,必讀計算機經典書籍推薦