ACMer渣铜的秋招总结与经验分享

背景

2019年11月8日,在寄出三方后收到鹅厂的应届毕业生录用函,我的秋招尘埃落定。
感谢这些年老师的培养以及灵活的上课方式,感谢牛客前辈以及同学们的帮助和鼓励,感谢每一个可以努力的日子,秋招结果远超我的意料。写此贴以作纪念,并想分享一些个人踩过的坑以及秋招经验,仅供参考。


我是中国矿业大学(北京)计算机科学与技术专业的本科生,面试岗位基本都是C/C++后台开发工程师。从7月19日的第一场面试,到10月12日,我一共参加了5场笔试37场面试,一共面了8家公司,收到6家offer,大多为ssp offer:

字节跳动(offer) 腾讯(offer) 猿辅导(offer) 百度(offer) 
盛趣游戏(offer) 作业帮(offer) 阿里巴巴(hr面挂) 网易雷火(hr面挂)

选择入坑

从小以来,或许是受影视作品的影响,我一直以为IT工程师是一个很酷的职业,西装配大人模样的头发,创造人工智能改变世界。怀着这么幼稚的想法,阴差阳错的就读了计算机专业。费了些精力进来了,我才然大悟,什么帅气模样都是骗人的,唯有无休止的加班和黑眼圈才是永恒。时至今日,虽然我能预料到自己工作后的样子,虽说我以后从事的不是高深的算法,这依然不影响我觉得写程序是一件很酷的事。在公司,即使我只是一颗螺丝,但通过代码服务全球十亿人甚至更多,也挺有成就感呢。


学习历程

直至去年,我还没想到我会毕业即工作。
一年级那会儿 在就业办看到了计算机系17届毕业生的去向,保研的无强校,工作的没有大厂,其中最好的去处我也很不满意。Ps:不同人追求的方向不同无任何恶意
保研都不行还能咋办,考呗。大一硬着头皮刷了两本考研数学,结果有几节高数课忘去了,最后成绩不到平均分,特心塞。
第一年比较庆幸的就是参加了ACM集训队,因为之前学校没有这个比赛,也可以说创建了集训队,平时刷一刷题挺有趣。
印象中大一的学习还蛮充实呢,除了学校课程安排,刷了两本考研高数,看了大半本《深入理解计算机系统》,做了挺多的ACM题目,顺便参加蓝桥杯拿了个一等奖,遗憾的是第一场ACM邀请赛打铁了。记得忙碌时曾经有两三个月都凌晨两点才回宿舍,早知如此高三就该努力些。


大二一直碌碌无为,唯一的收获就是拿了块ACM区域赛铜,顺带认真学了学C++,读完《算法导论》(真痛苦


大三上的主要精力还是ACM,无奈水平太菜加之无前辈提携,铜牌+2。搞完大创的玩具,学了下操作系统内核。
大三上很快结束,考研的热情逐渐退去,当时想找一个实习体验体验。本着自己几乎没有开发经验的事实,以及自认为很扎实的算法功底,投递了N家公司的算法工程师岗位,结果除了京东全挂。京东offer下来,岗位怎么是软件开发工程师?,怒拒。天真如我,拼命学了三个月的吴恩达,希望春招找一个算法的实习。
接下来就该春招,我才知道了牛客网这个网站,才知道了算法工程师的要求,才知道了还有后台开发这个岗位,没有办法硬着头皮投呗。四月份开始在一家创业公司实习,mentor很好,做了三个月cv的demo,方了解到自己的知识储备完全不恩感胜任算法工程师的岗位。


7月份左右回到学校,尝试着继续搞托福,后突然发现我更适合就业,就开始秋招了。
秋招准备较为轻松,得益于之前研究过源码,我用一个月重新实现了一个早期版本的unix,用一周时间刷了两百道leetcode。匆忙开始面试。


感想

牛客上有大佬总结过,想要拿ssp这三点必不可少:大厂实习、顶会论文、比赛Top。
我可谓是无实习,无顶会,无比赛top,我甚至连个人博客都没有,比起各位大佬,我唯一的优势可能就是基础好。秋招前根本没想到过这个结果,四个月前,***目标还是京东(并无恶意 京东是家很优秀的企业 东哥是位杰出的企业家)。
秋招有幸拿到自己满意的offer,主要凭借以下几点:(私以为我的路线适合大多数人


算法基础/ACM经历

就大企业而言,校招和社招不一样,社招主要考察一个人的项目经历。而校招生,大部门都没有成熟的项目经验,那又该如何评价这个***呢?一般而言,校招倾向于挑选有潜力的***,什么样的***最有潜力,聪明+勤奋。那又该如何判断一个人是否聪明,做题!
就现在的面试流程而言,算法与数据结构功底,在外企的校招面试流程中至少占有80%的比重,在国内企业也有超过50%的比重。现在很多企业为了减少面试成本,会通过简历筛选出一部分***,再通过笔试筛选一部门。笔试呢,大部分或者全部内容都是算法题。过了笔试就是面试呢,面试考什么,手撕代码+基础知识+项目经验+巴拉巴拉,其中最重要的仍然是手撕代码。就现在行情而言,只要所有的算法题都能回答出来,即使基础知识答的不太好,面试也能通过。反而即使知识积累相当丰富,算法题大都答不上来,面试依旧挂。
对于没有ACM基础的同学,推荐刷一刷 leetcode top200题+《剑指offer》,要做到举一反三,真的很好用。这些题目我大概用了一周时间刷完的,其实就算0基础1个月也能刷完,之后面试很会轻松。

大学以来我可谓一直在迷茫,从一年级的高数线代到后面的离散数学操作系统,我刚开始始终不知道这些知识有什么用处,写代码用得着这么抽象的理论吗?于是我将时间大都奉献给了ACM。当初参加这个比赛,并没有感觉到它和其他竞赛有什么不同,以我校的重视程度,ACM world final 的奖励甚至不如北京市电子设计竞赛。如ACM大群所言 ”升官发财请往他处,贪生怕死勿入斯门“,参加这个竞赛纯属用爱发电,性价比并不高。
现在看来,正是这个性价比不高的比赛,带给我了一手满意的offer,当初侥幸上了一条对的船,又侥幸坚持到了最后。秋招历经三十多轮面试,算法题几乎都做出来了,之前的努力太值了。

曾经用了几个月时间看完了《算法导论》,私认为这本书写的非常好,讲了很多实用的算法和数据结构,系统的学习完这本书的收益至少是 年薪+10W,有精力的话强烈建议读一下。


基础知识

对于项目平平的人而言,面试中除了算法,最重要的就是基础知识了。基础知识主要分为:语言,操作系统,计算机网络,数据库。计算机体系知识都是相通的,要学会融会贯通,操作系统 数据库 网络 数据结构中都有其余的影子。


语言

语言因人而异,开发岗的话 国内的校招就业岗位主要为C++或者java。学好c++和Java都可以,c++主要是大公司在用,所以学c++进大厂更容易一些,Java 大公司小公司都用,相对而言学习Java进大厂困难一些,然儿java的去向更广。
掌握python/golang等语言是加分项,注意,是加分项⚠️

我是c++技术栈的,学习c++的话推荐几本书。
《C++ primer》 必读书
《Effective C++》进阶 选读
《深入剖析STL》加分项


数据库

后台开发岗数据库一般问的不会太深,课堂知识学扎实,mysql会用并且能够用好即可。
《高性能mysql》讲得比较深,选读


计算机网络

现在所有程序员都要会网络编程,所以网络是面试中非常重要的一项。
原理性知识:《计算机网络》或者《TCP/IP详解卷》
网络编程:注意一些linux网络接口的使用,最好自己实现一个mini服务器,深入理解可以看《Unix网络编程》


操作系统

操作系统是重中之重,diss一下 一定不要看 清华出版社的那本紫皮书
先推荐几本好书:
《深入理解计算机系统》不多解释,神书,不过这本书是讲计算机的而不是操作系统
《现代操作系统》 必读,讲了很多操作系统原理性知识
《鸟哥的Linux私房菜》进阶,熟练使用linux是很大的加分项


私以为,学习计算机知识就像庖丁解牛,要理解它的每一部分。
举一个很简单的例子
计算机运行printf(“%d\n”, a + 1);这条指令,计算机做了什么?
从语言层面,这条c语言语句的可变参数是怎么实现的,函数调用时发生了什么?
从编译器层面,怎样找到printf这个函数的
再往下 printf封装了哪个系统调用
系统调用发生了什么
驱动层的接口长什么样子
系统调用/中断/异常是怎么实现的
知其然知其所以然嘛


项目经验

一般校招而言,项目经验并不是那么重要,很多朋友都本末倒置,大学期间基础知识没好好学,反倒一直在做开发经验。
在面试期间和很多面试官交谈过,大厂面试官普遍认为我们做的项目大都只是玩具,很多时候我们自己摸索做了三个月的demo,他们带着做的话半个月就能完成了,反倒质量会更好。大学时间时间充裕,就该做一些非crud(增删查改)的技术型项目为简历加分。

仿nginx服务器
跟着虎书实现一个编译器
仿unix操作系统
做个小分布式系统
……

以上等都是很好的选择
反倒那些什么电商平台,图书管理系统界面都做不好看的crud应用就别写简历上丢分了

附个人的简历内容

2019.*-2019.* 类 UNIX 操作系统 xv6 独立开发

通过阅读 UNIX 系统源码,了解操作系统工作流程。借鉴 JOS 等 Unix 系统的部分文 件,基于 x86 多核处理器硬件,实现 多任务操作系统 xv6。 
主要内容: 1)开机引导(内核加载) 2)内存管理(二级页表,链式页面管理,虚拟内存) 3)进程管理(上下 文切换,时间片轮转调度) 4)陷入,中断,系统调用 5)锁(自旋锁,条件变量) 6)文件系统(IDE 驱动, buffer 缓冲,恢复日志,无名文件,目录层,层次文件名,文件描述符抽象) 7) Shell,fork,exec,pipe 等。 

后记

秋招是一个漫长的过程,期间不仅仅要准备面试,还要漫长的等待,几个月下来,过程并不比考研轻松。
参加秋招,建议先拿意向不高的公司适应一下面试环境。同时建议多面几家公司,即使拿到了满意的offer,也不要停止秋招,多拿些其他公司的offer,多拿些offer,身价就上来了。住朋友们有时间能够提前准备,面试突击太南了。

下个月参加最后一场ACM,希望有一个满意的结果,渣铜太惨了。

Ps:明日我矿110周年校庆,祝我矿辉煌。

#腾讯##阿里巴巴##字节跳动##校招##C++工程师##面经##学习路径#
全部评论
太强了,一周两百道leetcode!不敢想
2 回复 分享
发布于 2019-11-09 23:58
本科50w,我TM真是个臭酸🐔
2 回复 分享
发布于 2019-11-10 03:04
1 回复 分享
发布于 2019-11-09 23:23
同 渣铜,不过去年就退役了~~今年秋招太惨了,呜呜呜~
1 回复 分享
发布于 2019-11-11 11:56
天下项目一大抄,抄6.828实现操作系统,抄6.824实现分布式系统,抄CMU1445实现关系型数据库,抄muduo实现web服务器,抄tinystl实现stl,抄虎书实现编译器。要说自己从零写一个,呵呵,那非下苦功不可得。
12 回复 分享
发布于 2019-11-10 11:48
甄dalao~
点赞 回复 分享
发布于 2019-11-09 22:57
大佬
点赞 回复 分享
发布于 2019-11-09 23:06
隔壁学校的大佬,膜一波。
点赞 回复 分享
发布于 2019-11-09 23:13
大佬,大创的玩具是啥?😂😂
点赞 回复 分享
发布于 2019-11-10 01:55
个人觉得ACM重想法,数据结构偏少,训练思维
点赞 回复 分享
发布于 2019-11-10 01:56
真的佩服楼主,在搞ACM的同时,计算机底层也花了这么多功夫,两者兼顾,佩服佩服。我们acm队里大多都是搞acm却忽视底层知识。
点赞 回复 分享
发布于 2019-11-10 02:02
来自亲兄弟院校的赞!
点赞 回复 分享
发布于 2019-11-10 02:05
牛客网上看到矿大真的不容易。
点赞 回复 分享
发布于 2019-11-10 02:06
楼主太强辣😁,退役赛加油
点赞 回复 分享
发布于 2019-11-10 04:50
楼主最后去哪了?
点赞 回复 分享
发布于 2019-11-10 08:08
巨佬,可以加你吗
点赞 回复 分享
发布于 2019-11-10 08:42
这个强....
点赞 回复 分享
发布于 2019-11-10 09:04
上周刚去你们学校打的区域赛
点赞 回复 分享
发布于 2019-11-10 09:40
%%%%%%
点赞 回复 分享
发布于 2019-11-10 10:16
你是把mit6.828给做完了吧?...萌新上来可以先看看邹恒明那本操作系统,挺适合培养兴趣和入门的....另请教一下代码能力弱怎么练?一道middle题能玩两个小时,刷完之后总结什么?具体点不是光刷题什么的
点赞 回复 分享
发布于 2019-11-10 10:52

相关推荐

点赞 评论 收藏
分享
82 432 评论
分享
牛客网
牛客企业服务