大一大二,我是该打ACM还是学技术做项目?
大家好,我是帅地。
这篇文章其实在之前跟大家聊过,今天基于今年最新秋招的情况,做了一些调整,正文如下。
之前星球有一位大一的小伙伴问帅地,他是应该继续刷算法,打 ACM,还是把时间花在做项目上好呢?
他发的字有点长,我就不截图太多,只截图我的概括
打 ACM 的话,大一大二就会少很多时间学习其他知识,但有机会拿到 ACM 奖牌,可以给简历加分;
不打 ACM 的话,就有大把的时间学习计算机基础,刷 leetcode,做项目,然后早点去实习,但又觉得学历一般,没啥亮眼的比赛经历,怕过不了大厂简历面。
所以,ACM 打还是不打?
不知道大家有没有这个疑惑?反正我当时是没有,因为我大一对招聘求职这块还不了解,假如你在大一大二就有这个疑惑,我觉得你已经超越了很多人了,因为很多人在大一大二,根本对求职一无所知。
对于这个问题,帅地先给大家说两个身边读者的真实案例吧。
读者一(没打ACM)
学校是二本,比较差劲,学习氛围也差,他没打过 acm,我让他大一好好刷算法题,在之后刷计算机基础,也就是计算机网络,操作系统这些基础课程。
再之后就是深入去了解一门编程语言,例如Java,Python,C++ 或者 Go,在之后就是学框架做项目,算是 leetcode 刷了几百道,然后计网和操作系统在大二第一学期就刷了,之后做了几个前后端分离的的项目。
读者二(打ACM)
学校也一般,不过学校也有 ACM 队,学校最好的成绩是拿过省牌,忘了金牌还是银牌了。
不过这个同学挺喜欢刷算法题,所以大一大二基本是在 acm 队刷题,最后貌似是拿了个省铜,在之后就开始刷疯狂刷计算机基础知识,然后在随便做一些小项目。
最后是这两个同学都在秋招拿到了美团/网易这些大厂 offer。
这两个同学的共同点就是,准备的早,有扎实的基础,不错的算法能力以及不错的项目经验,区别就是打 ACM 的算法能力更强,而不打 ACM 的项目经验更加丰富。
当然,他们有这么强的学习意识,也算是有我的一份功劳吧,毕竟从大一就一直找我唠叨,问这问那的。
打不打?
通过上面我说的例子(其实还有很多这种,毕竟我十几万读者),如果你准备的早,有扎实的专业知识,不错的算法能力和项目经验,就算你的学历一般,那么你还是有机会拿到大厂 offer 的。
重要的不是打不打,而是你在各个方面学的如何。
帅地之前也问过腾讯和字节的 HR,他们都说简历主要看:学历,靠谱的实习经历,笔试成绩,比赛奖项。
所以学历虽然很重要,但绝对不是唯一。
特别是对于互联网一线大公司,获得面试的机会,还是不难的,例如像腾讯阿里字节跳动这些公司,还是不会卡学历卡的太紧的,因为他们还是比较愿意花成本去寻找人才。
当然,有些公司还是比较卡学历的,例如 ViVO 啊,华为啊,一些国企,独角兽啊,像这些的话,就真的挺卡学历,基本需要 211 或者 985 才行。
不过我说的是开发岗哈,虽然现在开发岗也越来越卷了。
所以呢,打不打不是核心,核心是你这两年的学习。
假如打 ACM,那么你的算法肯定很扎实,到时候算法笔试和算法面试这块不需要准备太多,而对于计算机基础,学校有教,你有一定基础,那么复习起来很快的,项目之类的也可以突击。
假如不打,那么可以多刷 LeetCode,然后学习自己选的技术栈,之后有机会多去实习,有了强大的项目经验和扎实的基础,以后拿个不错的 offer,还是机会很大的。
打不打的一点小建议
不过,关于打不打,我还是有点小建议。
如果你本身不喜欢打 ACM,体会不到那种 beat100% 的乐趣,那么我觉得还是不打了;或者说你的学校连个牌子都没人拿过,又或者学校连个 ACM 集训队都没有,去比赛还是自己自费去,特别麻烦,那么也建议别打了。
不打的话,也要坚持去刷算法题,然后,做项目,找日常实习。核心就是自己算法不能太差,基础得搞扎实,如果自己可以多多折腾一些开源项目就更好了。
反正要想进大公司,要嘛你有强大的算法能力支持,要嘛你有强大的项目经验,就算进不了大公司,也能拿个不错的 offer 吧。
但其实,根据自己学历的不同,后期在学习的侧重点上也是可以 有所不同的,这点后面说。
最后,欢迎大家加入帅地的知识星球,星球里有很多热爱学习的小伙伴,一群人一起学习不孤单。
并且你有任何学习上的疑问,帅地都会指导你应该如何学习,根据你的情况为你量身定制,在星球会提供如下服务: