老乡拿下了ACM金牌!
The following article is from 编程熊 Author 编程熊
大家好,我是二哥呀!
今天给大家分享一个老乡拿到 ACM 金牌的故事,太励志了。
五年前的我进入双非院校,曾经觉得自己的一辈子就和普通大学一样,注定普通。
五年后我拿到ACM金牌、字节跳动、旷视科技等大厂offer,保研985。
大家好,我是编程熊,今天和大家分享我是如何从双非,拿到ACM金牌,再拿到字节跳动、旷视科技等大厂offer,保研985的经历。
坎坷的大学
我本科是一所双非院校,专业是软件工程,高考失利,进入到了一所不想去的大学,曾经觉得自己的一辈子就和普通大学一样,注定普通,无法像重点大学的同学实现人生理想。
但我后面的故事告诉我,高考是结束,也是开始,我的人生并没有完蛋。
大学开始
大一上学期我和刚入学同学一样,平常偶尔上课划划水,但我对写代码很感兴趣,从 “Hello World”
到 A+B
问题,我觉得写代码很爽。
一次偶然的机会我知道学院有算法实验室,简单的从网上了解了一下ACM比赛,当时还不知道这么难,就勇敢的找算法实验室的学长询问如何学习算法、参加竞赛。
学长耐心的告诉我如何入门: 可以先学习C++基本语法、然后去算法平台刷简单的基础题(HDUOJ第11页),其次学习算法与数据结构知识,再刷题巩固。
就这样踏上了算法竞赛的"不归路",从入门到秃头,有时候一道题要花一天的时间。
就这样一边学习一边刷题,我通过了算法实验室的选拔,成为了ACM队员,也找到了最开始的队友。
努力是一切的开始
很多同学上了大学都开始无所事事,过上了神仙生活,我身边也有很多这样的同学。
但我却保持自律,每天坚持学习算法与数据结构和刷题,甚至逃了很多课,只为了去实验室多刷两道题,每次看到题目通过Accepted
,我都开心的像个孩子一样。
现在回想起来,与其说我是上大学去了,不如说: 我去学习算法,顺便读了个大学。
前期碰壁
努力学习的时光度过的很快,我很快到了大二,去参加了我算法竞赛生涯的第一场比赛,虽说可以预料到过可能拿不到铜奖,但当成绩出来的时候,失望和难过的心情,却没有因此而减退。
如果努力还不够,就更努力
初站失利后,我回去更加的努力训练刷题,了解ACM竞赛的同学应该知道,每场比赛都有很多难题。
我的策略是: 先搞定铜牌题(ACM基础题),就这样刷了很多题,大三上我又参加了一次ACM邀请赛,又一次落榜!
说实话,这次真的打击到我了,我开始怀疑: 我是不是不是这块料、脑子不行、双非学校是不是不应该选择打ACM竞赛...
坚持是成功的秘诀
在连续经历了两次失利后,虽然有过自我怀疑和否定,但内心的不甘和不服输的决心很快的将自我怀疑驱逐,我选择了坚持!
这次我将所有ACM考点根据专题分了类,去学习每个专题的对应的算法与数据结构,然后刷对应的题目进行巩固和加深理解。
曾经一度找到一个空的房间,整天除了吃饭都在空荡荡房间里训练刷题,是的你没听错,是除了吃饭,因为晚上是在实验室睡的。
雨后终有彩虹
终于在大三下的ACM区域赛,拿到了我人生的第一块ACM奖牌,虽然是一块铜牌,但对那时的我意义非凡。
我依旧记得比赛结束的那天,太阳正好、天也很蓝。
旷视我人生第一份工作
大三上的期末拿到ACM铜牌后,在朋友的内推下投递了旷视科技的算法实习生,因为是算法组,面试主要考察了算法与数据结构,第一次面试很紧张,好在题目都做出来了,有惊无险的通过了面试、拿到了Offer,后面约定好入职时间,寒假就去实习了。
遇到了人生中重要的人
我所在的是旷视科技的算法组,组内全是大神,大多数同事都是高中保送都是 上交ACM班的,Leader是ACM亚洲区域赛的冠军,还有本科中顶会的、Kaggle竞赛大神、还有项目大佬、数学大神..., 一开始知道大家这么厉害,弱鸡的我还不太敢说话,后面一起吃饭、团建,慢慢和大家熟悉了起来,发现大家人也很nice、很好相处。
就这样我遇到了我人生第一批同事,后面也成为了我人生很重要的朋友。
实习工作
在进入旷视之前,我在学校没有做过任何大项目,只写过大作业,都还很水。
旷视的工作氛围整体很友好,给了我这个小白入门的时间和空间,比如常见的git协作开发、项目的框架、编译工具、业务的场景、代码... ,了解了基本的东西后,就给了我一个简单的任务,可以看出是为了锻炼我的,可能并不会真实上线的。
现在我还记得,写完代码提交后,mentor给了我很多中肯的建议,有抽象上面的、有代码风格上面的,并给我修改建议,学到了很多在学校接触不到的东西,现在想到这些心中还很感动。
后面逐渐熟悉了后,开始承担一些复杂的开发需求,但还是有mentor一起带着的,在这个过程中也收获了很多东西。
再战一年
大三下拿到ACM铜牌后,我的两个队友就退役了,我就去旷视实习了,我也考虑要不要退役,还是和下一届的学弟再战一年,再战一年的话意味着我没有时间准备秋招,如果没有拿到更好的成绩可能找不到工作。
就在我犹豫的时期,我的Leader,也是我的好朋友hanyuan
鼓励我再战一年,向更好的成绩发起冲击,突破自己。
因为好朋友的鼓励,加上自己内心也确实不甘心算法竞赛以铜牌结束。
我选择和两个学弟再战一年,因此我平常实习下班就会继续刷题,学习新的知识。
秋招上岸
意外也是努力的结果
我是拿的字节跳动秋招提前批的offer, 七月份一次意外的水群,了解到字节跳动秋招提前批开始了,之前知道字节跳动主要考察算法与数据结构能力,自己对这块还是有点信心的,就投递了。
宇宙条果然效率奇高,第二天就约了我面试时间,因为我想暑假回学校和学习一起为了下半年的ACM亚洲区域赛做准备训练,所以就立马面试了,当时是现场面试,从上午十一点开始,一共三轮技术面+一轮hr面。
上午面了一轮技术面,主要问的是算法题,中午在hr小姐姐的带领下,在头条食堂吃了午饭,真的不错!
下午面了两轮技术面+一轮hr面,二面是交叉面,问了基础知识,就回答了一些知道的东西,面试官可能看出我主要打竞赛,没有准备过八股文,后面就问了两道算法题,有惊无险的都答上来了。
三面是技术Leader面,主要问了之前在旷视做的项目,还有算法题。
可以看出字节跳动面算法题还是非常多的,所以想去字节的读者们,一定要好好刷题呀!
最后一面就是hr面,简单聊了聊常见的问题,女朋友在不在异地、意向的薪资.... 一天就全部走完了所有流程,宇宙条的效率YYDS。
7月12号,我不出意外的拿到了字节跳动秋招提前批的意向offer,我上岸了!
人生第一个竞赛冠军
字节面完试,我就从旷视请假回学校训练,准备大四也是我最后一年的比赛,这是我参加算法竞赛的最后一年了。
还记得暑假很热、学校人也不多,所以我早上起的很早,吃完早饭就去实验室刷题,那段时间我的竞赛状态也很好,一般能想到的题目,都能通过。
当时正好江西省举办第一届CCPC省赛,正好是我大四那一年,我和学弟一起组队报名了,因为我大三下主要在外面实习,还比较担心团队合作的问题,但好在大家都自己刷了不少题。
比赛那天也很顺利,基本上是看一道题,有思路了,上去写,写完就能通过,我们距离比赛最后一小时的时候已经是省内第一名,此时比赛已经过去了四个小时,剩下的题目有些难度,学弟开始吃点东西,考虑要不要不做了,感觉省内冠军可能性已经很大了,我鼓励了学弟继续做,我选择了一道题,我们三个合力思考、讨论、商量解法。
最终最后十分钟的时候通过了!冠军稳了!
我拿到了冠军,三年来的坚持在那一刻觉得很值得。
保研985
省赛夺冠后,我们对下半年的ACM亚洲区域赛充满信心,我们相信一起努力训练,一定可以创造学校的历史。
暑假刷题的时间匆匆,转眼就到了九月开学,年级群发了推免的通知,我想了想我要不要也试一试呢,我平时成绩还行+竞赛获奖的加分,也有机会试一试。
正好暑假拿到了华东师范大学的夏令营优秀营员(后面会发文讲讲这个经历),我就提交了材料,进入候选了。
期间知道专业只能保两个人的时候,觉得自己无望了,后面发了公示的时候,看了下自己加完分正好第二,复试表现还行,最终的保研名额也是第二,成功拿到了保研资格!
后面我毕设老师,介绍了他的好朋友,在电子科技大学,因为之前去过华东师范大学,也算有点了解,加上自己想去大城市,所以后面就表示了婉拒和感谢。
最终保研了华东师范大学,我神奇的有研究生读了。
说实话,自己也不是很兴奋,因为我刚进大学的时候,就没太想读研,因为我平时也不太喜欢上课,并不喜欢学校的束缚,当时相比之下,更加喜欢工作,此时因为我已经有了字节秋招offer,我当时更加倾向于毕业了直接进大厂。
ACM金牌
保研后,已经快10月,我们选择了两个ACM赛区,就开始了认真准备比赛,那段时间每周都要一起组队训练好几次,赛后补题。
十月我们踏上了比赛的征途,这次我们拿到了意想不到的成绩,ACM亚洲区域赛金牌(金牌最后几名、赛区相对容易,有运气成分),这是我们学校、也是 江西省的第一块ACM亚洲区域赛金牌,我真正的创造了历史!
字节工作经历
入职
打完比赛,我就回老东家旷视办了离职,和朋友们告了别,就去字节跳动提前实习了,去办理入职的时候,发的是最新款的MacBook Pro,并且很多一起入职的人,可以看出字节真的发展很快,
上午办理完入职,吃完午饭,下午就去工位了,有一个入门要学习的文档,按着文档一步步来就行。
快节奏
字节跳动整体上工作节奏要快很多。我大概熟悉一周后,就开始接手一些简单的需求了,字节的基础架构做的很好,业务方的后端开发,不需要考虑框架的问题,公司都有现成的轮子,整体上开发的速度要快很多。
同时公司的文化也是坦诚清晰,一般有问题会拉个群,群里@一直对方,一般都会得到对方的解答。
因为我之前在旷视是算法实习生,工程上的经验比较少,在字节是后端开发,因此很多东西都是从0开始学习的,比如: golang、框架、工具、字节云....
后面随着工作需要,慢慢的也得心应手了。
人生重要选择
实习期间,我也考虑过我到底是要在互联网大厂工作,还是去读研,这个问题真的纠结了很久,我一开始是更倾向于工作的,我不是很看重学历,自己也更想做比较接地气的事情,在公司的成长速度比较快的。
但不可回避的是,在互联网大厂工作确实也很累,每天10点半左右上班,晚上十点左右下班。
到了家洗个澡,整理下家里,就快十二点了,却也总想找一些娱乐去对抗忙碌的生活,因此一刷手机就刷到了一两点,早上九点多起床,吃个早饭就去上班了,开启了打工人新的一天。
期间父母也无数轮劝说,自己也开始动摇了,在互联网大厂一直工作下去,放弃读研以后会不会后悔,最终我选择了读研。
总结
五年的经历给了我许多感悟,我总结了以下几点,分享给大家,希望能帮助大家少走弯路。
多和上进的人同行
如果你身处的环境不好,身边大多数人都不学习,那我建议你去认识一些上进努力的同学、朋友,比如加入学校的实验室,不管是做开发、还是学习算法... 选择一个自己感兴趣的,多向上进的人学习,一段时间过后,你可能已经悄悄惊艳所有人。
勇敢
罗翔老师把勇敢称为最高级的词汇。
勇敢帮助我从普通迈向不凡的第一步,没有勇敢的参加实验室,没有勇敢的向学长请教,没有勇敢的参加实验室选拔,可能所有后续的故事都不会发生。
所以请勇敢迈出第一步吧,迈出第一步的你也许会发现,一切也没有自己想象的那么困难。
坚持
坚持是成功的秘诀。刚进入一个新的领域,肯定会四处碰壁和遇到困难,这是很正常的。如果你认为自己在正确的路上,那么遇到困难,不要停下来。
雨后彩虹可能很快就会到来。
收集信息
如果是去工作,多去了解哪些公司的哪些部门正在招人,不要小看消息,选择一个hc多、缺人的部门,可以大大增加你面试通过的概率。
如果是去读研,多向读研的学长学姐请教,问问他们有什么东西要准备。早点开始准备,学好专业课,选好目标院校,看看专业课考哪几门,可以重点复习,同时多去问问复试考察的哪些内容,可以增加上岸的几率。
多利用身边的资源
现在网上的资料很多,学习什么方向,可以在知乎搜到很多攻略、学习资料,大家一定要好好利用这些学习资源,可以帮助你少走很多弯路。
有了学习资料,要坚持学习,才能不断提高,看到更远的地方。
多尝试
人在面临选择时,常常会陷入迷茫。
如果当前阶段,还没有想清楚入海还是读研深造、工作岗位选择算法、还是后端、还是前端...,我建议都去了解了解,都去尝试一下,看看自己对那个更感兴趣,更加擅长什么方向。
尝试过后,选择一个最适合自己的方向,然后朝着这个方向努力。
结尾
五年过去了,老乡从本科双非,到拿到字节跳动、旷视科技等大厂offer,到ACM金牌,再到985研究生,完成了一系列不可思议的成长与蜕变。