回馈牛客, 秋招经验分享
非常感谢牛客平台及各位牛油!
本人情况:本科211,第一年考研失败,二战继续失败,但调剂到现在所在研究所读研,自然也不是什么211985了,所以学历上相比来说还是比较差的。
没有论文,没有实习,简历上写的项目也只是所里导师给自己安排的深度学习相关,具体点说就是涉及深度学习进行卫星图像处理,偏实践,不重理论,所以选择开发放弃算法。
方向是C++,但项目都是深度学习,其实挺尴尬的。
目前投递及offer情况:
公司 | 岗位 | 状态 |
---|---|---|
网易互娱 | 游戏研发工程师 | offer |
农业银行 | 软件开发 | 差额体检 |
拼多多 | 客户端研发 | oc |
网易雷火 | 游戏客户端研发 | 二面挂 |
网易云音乐 | 算法平台工程师 | 笔试挂 |
滴滴 | 软件研发 | 笔试挂 |
阿里 | C++研发 | 笔试挂 |
腾讯 | ieg游戏客户端研发 | 一面挂 |
字节 | C++研发 | 简历挂 |
美团点评 | 后台研发 | hr面结束 |
浦发银行 | 什么平台研发 | 简历挂 |
招行信用卡中心 | 可能是软件研发 | 在线写简历时找不到我学校 |
海康威视 | C++研发 | 简历挂 |
bilibili | 游戏客户端研发 | 笔试后没结果 |
虎牙 | C++研发 | 一面挂 |
小米 | C++研发 | 笔试挂 |
吉比特 | 游戏研发工程师 | 笔试挂 |
百度 | C++研发 | 简历挂 |
商汤 | C++研发 | 目前笔试结束 |
看下来目前给了面试机会的也就互娱、雷火、拼多多、美团、腾讯、虎牙、农行这几家。
按照面试时间顺序写吧:
雷火
雷火是在8月14日杭州现场面的,上午所有人都进行了两面,过了的话进入下午终面。
一面(50min):
- 自我介绍,讲讲项目
- 做几道题吧,给了张卷子,上面5、6道非常简单的题:
- 给你几个球,红色和黑色,问取3次没取到红球几率是多少(类似这种)
- 给了一个公式,类似
f(n) = f(n - 1) + 2f(n - 2)
这种,求复杂度,结果这道题印刷有问题,考官也记不得本来公式上写的啥了,就不做了 - 给了两段代码,问输出结果,代码好像是这样的,问你最后a的值和cd的值:
void add1(int *a, int *b){ *a = *a + *b; } void swap1(char *c, char *d){ char *tmp = c; c = d; d = tmp; } int main(){ int a = 2, b = 3; char *c = "abc"; char *d = "cba"; add1(&a, &b); swap1(c, d); }
- 然后给了一个有向图,问你bfs和dfs怎么走
- 说几个排序算法和他们的时间复杂度
- 然后就开始你有没有什么问我的
一面简单到不敢相信
二面(30+min):
- 自我介绍,聊聊项目
- 有一个以你为中心的圆形持续性aoe技能,地图上很多小怪,你和小怪都在走,怎么判断技能打到了谁
- 刚刚你的方法的复杂度是多少
- 怎么优化
- 怎么判断小怪进出aoe范围,进还是出怎么判断,不考虑闪烁进来
- 加入地图上很多小怪都不动,坐标已知,我随机往地图上扔圆形aoe,怎么判断炸到了谁
- 复杂度多少,怎么优化
- 写道算法题吧,输入一个01序列,输出每个点离最近的1的距离
然后就没了,中午去体验了猪场伙食,回到面试地点等待,下午喊了3个人名,别的都可以回去了(那天客户端+服务端30多个人吧)。
13号晚上到的杭州,14号下午挂了赶紧往上海赶,晚上拼多多一面。
拼多多
拼多多是在牛客上看到的学霸批就投啦,找了半天没找到C++的岗,看到客户端研发里有会C++的优先就投了。
一面(1h):
- 自我介绍,会的语言
- 面向对象三大特性,详细介绍一下
- 多态怎么实现
- 析构函数能是虚函数吗,为什么
- 手写单例模式
- 排序算法及复杂度
- 非比较的排序算法及复杂度
- 子类能使用被重写了的父类方法吗,怎么写
- 内存管理,堆栈区别
- 还有一些年代久远记不得了,只记得都是很基础的C++问题,牛客上的C++面经里基本都有
- 算法题:翻转数字,如123变成321,-123变成-321,210变成12这种,很简单
第二天也就是15号上午就打电话来约二面,晚上就二面了
二面(1h):
- 自我介绍,聊聊项目
- 项目里用的深度学习模型你说要往嵌入式上移,用过tensorflow-lite吗
- 你觉得移植到嵌入式设备上需要哪些要注意的点
- 假如我现在有个手机app要用到深度学习模型,你觉得使用这种模型需要考虑到哪些点,比如但不限于手机内存、cpu等等,我这个答得很垃圾
- 假如我这个深度学习模型在后台跑着,你怎么根据用户的输入实时改变我app的反馈,并让模型进行训练
上面估计在评估思维模式
- new和malloc区别,能说多深说多深
- placement new
- new失败了会怎么样
- 报异常了程序会怎么样,你怎么处理异常
- 用过no throw吗,说说
- 判断大端小端
- 一些简单的基础
- 我要问你一个安卓问题了啊(不会)一点都不会吗(只自己做过个小app玩)页面总写过吧(不会)那为啥投客户端(因为看到了C++)行吧
- 写个算法题:两个有序数组的合并,a数组足够大,能放下a和b两个数组里的数字。
其实我感觉我二面要挂了,思维模式那一块答得不好,后面还不会安卓。
hr面
第一次hr给我打电话的时候我还有40s就要开始美团的笔试了,就跟她说另约时间,于是8月28日hr面
- 怎么看待开发
- 知道我们上班时间吗,能接受吗
- 期望薪资
- 家里哪人,有女朋友吗
- 家里人对你在上海工作有什么看法吗
- 还投了哪些
- 怎么看待拼多多
- 有要问我的吗
9月4号?记不清了, oc
其实拼多多hr面那天下午我要去美团面试。
美团
在一个酒店里,去了坐着等叫号就行,签到的时候看到那天就4个后台研发。
一面
- 自我介绍,聊下项目,用C++啊,没事语言都是相通的
- 用过百度吧,思考一下我搜索“中国”,后台会经过哪些过程
- 然后我要你实现一个搜索的功能,把所有搜索的地方抽象成一个个文件,假如我搜索“中国”,你要返回哪些文件里的哪些行的第几位是“中国”,你怎么做。
这一题直接给我整蒙了
- 提示一下,你刚刚说了把文件存起来,可以理解为你预处理了一遍,只允许你遍历这一遍,你怎么存这些文件,文件可以有类别
- 我在扯字典树,他让我说说字典树
- 哈希,哈希冲突,解决方法,链地址法改进
- 红黑树说下,没让手撕插入删除
- 内存泄漏说下,怎么排查
- 假如现在有个接口,你输入一个值他返回一个结果,都假设是数字,如果这个结果等于一个值你就丢弃这个结果,怎么做
- 把那个值存下来比较就行了啊
- 如果不是一个值了,是只要之前出现的结果都丢弃怎么做
- 把所有结果都存下来hash然后看在不在里面啊
- 如果这个结果是0-100亿,内存只有XXG,你怎么存
- 脑子抽了一下没想出来,想的是分成小文件然后hash
- 提示一下,int是几位
- 哦bitmap
- 再假如bitmap都存不下,但是可以允许有误差,怎么做
- 布隆过滤器,我听过,没仔细了解过
- 嗯没用过可能确实接触不到,行吧做个题
- 给你个二叉树后序遍历你能反序列成一棵树吗(不行)
- 那要什么条件
- 给个前、中序遍历就行
- 如果只允许你后序遍历的时候存一个东西,让你利用这个反序列化一个树,你会存什么
- 父节点
- 这个不给存,你再想个
- 深度
- 那你写代码吧,假设你已经存了每个点的深度和一个后续遍历序列
- kuakuakua写完了
- C++里面那个虚方法你说下
二面
几个人都在等二面面试官,他似乎跟前面一个面试者聊了很久了,我等了得有近2个小时。
- 自我介绍,聊聊项目
- 除雾算法跟我说说,怎么除的
- 做个题吧:给你n个人,身高未知,给你m个条件,条件是a > b 或 a < b 这种,问你能不能排出身高序
- 偏序用拓扑呀
- (听完了思路)写吧
- kuakuakua写完了
- (听完代码讲解)你在项目过程中遇到的最大困难是什么
- 怎么解决的
- 还有一两个像是hr才会问的问题,给忘了
- 有什么要问我的吗
- 知道我是什么部门的吗(不知道。。)
hr面
hr似乎也要排队
- 面试下来感觉怎么样
- 自我评价一下,优缺点
- 根据说的缺点问你几个问题,XX情况你会怎么做
- 投了哪些企业
- 那你对995也是没意见啦(双休已满足)
- 希望部门领导是个什么样的人
- 有什么要问我的吗
- 培训机制讲解
- 消息得3-4个周才能知道(现在已经快一个月了)
农业银行
面试地点真的偏啊,过去3小时,先来先面试
首先带到个地方写道简单的题,半个小时,估计5min就写完了
我那道是最长连续子序列的和
然后面试10个人一组,进一个大会议室,6、7个考官,两边的是技术面试官,中间的只做介绍
先所有人依次起立自我介绍,全部结束之后点到谁谁回答问题
我就说说我记得的情况吧
- 各位谁是保研的举下手
- 3号,(翻了翻我的简历)你有什么开发经历吗
- 我说了下项目
- 用什么语言比较多
- C++
- 64位系统中int最大值是多少
- (玩了下电脑)C++多态怎么实现的
- (听完静态多态终于听到虚函数了就打断我了)会算法吗,动态规划说说
- 动态规划用的思想是什么
- 分治
- 嗯?
- 。。。
我的就没了,给明年的小伙伴们提个醒,农行自己的简历系统里面没有项目经历,只有工作经历,不往里写项目投递之后往里添也来不及了,一定要记得写,问的问题都是针对每个人的简历上的东西,我是实在没东西问就问了点基础,别人还问了很多场景题,就是他们实习中用到的东西如果遇到XXX怎么办,前后端交互用的啥,java基础,数据库和后端交互语句啥的。
虎牙
一面
- 自我介绍,项目,这个除雾算法描述一下
- 啥是岭回归正则化,有啥用
- 模型是什么意思
- 哦你用啥语言,C++啊,你看哪些书,觉得C++这门语言怎么样
- 堆栈描述一下
- 为啥栈比堆快
- 内存碎片啥意思,会出现在堆、栈里吗,多大算内存碎片
- 怎么利用内存碎片,怎么减少内存碎片产生
- 你说你看过stl源码解析,那stl里的内存分配怎么弄的
- 你觉得stl这个内存分配方法怎么样,怎么改进
- 说说内存池
- 数据库会吗,啥叫乐观锁悲观锁
- 怎么实现乐观锁
- ABA问题怎么解决
- C++11新特性知道多少
- 右值引用是啥意思,有啥用
- weak_ptr干啥的
- weak_ptr怎么知道自己指向的东西还在不在
- 提示下:weak_ptr和shared_ptr有共享的东西吗
- 设计个礼物排行榜的接口,用户可以知道自己排在礼物榜多少名和礼物榜前几名是谁,怎么设计礼物榜数据结构
没两天就感谢信了
腾讯
一面
没找到游戏服务端研发,只能报游戏客户端研发岗了
- 自我介绍,为啥想来做游戏
- 给你一个链表,怎么判断有没有环
- 给你一个链表,怎么返回倒数第k个节点
- 你是学算法的啊(我用C++比较多)
- 哦对C++,然后问了一些简单的C++基础
- 网络会吗,说说为啥四次挥手
- 长连接短连接,哪些应用场景是长连接哪些是短连接
后面的都是unity和图形学相关?我都不会
- unity里的camera怎么用的
- 投影有几个方法
- unity怎么判定碰撞
- 图形学的某个问题
- 你有什么要问我的吗
- 怎么学习游戏相关
- 打开unity看help,官方教程和api,搞懂这些你就中阶了,然后之后再看看图形学,理论和实现,就高阶了
过两天就灰了
网易互娱
人在上海报的杭州岗,8月4日模拟笔试,很水的题,AK没几天准备正式笔试的时候收到了直通面试通知,一直等到9月2号才远程一面
一面
- 写个环形缓冲区,实现pop,push,popAll接口(我忘记size要+1了,不然判空和判满是一样的,别的逻辑没啥问题,写得也挺快,就是被逮到这一点,结果判满的时候老出错,还好是小问题)
- 自我介绍,聊聊项目
- 为啥环形缓冲区里用的malloc,不用new(char* 习惯了),说下new和malloc区别
- 进程线程
- 多线程会吗(没涉及过)
- 多态,写个例子给我看
- 类的sizeof,给了段代码,A是基类,B继承A,C继承B,A有virtual函数和虚析构函数,两个int,B有两个int和一个虚析构函数,C有一个重写函数,一个自己定义的virtual函数,两个int,问C大小。
- 虚函数表位置在哪
- 虚函数表什么时候确定的
- 多态实现原理
- 知道lib和dll的区别吗
- 哪个快,为什么,lib有几份,dll有几份
- TCP UDP
- 觉得游戏是TCP还是UDP
- 写道题吧:给你一个字符串,能在任意位置增加字符,问最少添加几个能让其变成回文串
- 有啥要问我的
二面
二面是20号在上海现场,上来面试官就说,时间紧张,遇到卡壳卡了会的我们就下一题,有什么问题都可以问我,题目没听清或者理解问题都可以问。
- 自我介绍,聊项目
- 除雾算法介绍一下,阿尔法值怎么确定的
- 有遇到什么困难吗,怎么解决的
- 怎么确定阈值的,真的是这样吗,画面如果都暗下去了你这样还对吗
- 写道题吧:给了个Person类,里面
int id, int name, string name, string data
,写两个函数char *ser(Person &p)
和Person des(char *a)
,序列化和反序列化- 讲思路吧
- 不行,你就写,写完再顺着代码跟我讲
- kuakuakua写完了
- 你用'+'当分隔符,万一这两个string里面有'+'怎么办,换分隔符永远无法解决这个问题
- 计算一下name的长度,放到id之前,用'+'分隔,记录就行
- 给你个二维数组,代表地形高度,你滑雪只能上下左右走,且只能滑严格小于地形高度的位置,问最长递减序列长度
- 用个dp存下每个点所需长度,然后dfs的时候只要比较就行
- 那你起始点怎么选,选的不好跟dfs没啥区别啊
- (思考)那就从最矮的点开始算,这样每次后面的滑到矮的点就不用计算了
- 复杂度是多少
- 给你一个坐标轴,上面很多车,方向和速度都给你了,怎么判断最先碰撞的是什么车
- 假如撞上会消失,怎么快速判断最后剩下什么车,不能每次撞完就遍历(胡答了几种,最后还是没答上来)
- 假如不能去杭州你选哪个,上海还是广州
- 期望薪资(数字)
- 为啥想做游戏,因为喜欢吗
- 有要问我的吗
第二天醒来10点多了,打了会游戏收到了面试通过短信,昨天(22号)去现场聊offer。
说下我的准备过程吧:
- 因为特殊原因,所里没有网络,2月份开始我陆陆续续刷了200左右leetcode,被小论文打断,然后大论文开题,4月底开始看《C++ Primer》,看了一个月摘抄了几十页A4纸笔记,基本没人考这个,但通读下来可以说入门了。随后继续刷刷题,看牛客,那时候一心想去写游戏开始照着视频教程做unity的小游戏,但完全没有系统学习过unity,如果有想去游戏公司的同学可以学学。
- 6月底买了牛客的C++面经,开始背,说实话这个面经可以普及一下入门知识,问这个的还是不多的,买来背入门绝对不亏,甚至血赚。
- 随后的3个月就是无尽的刷牛客,看面经,查漏补缺,笔试面试。买了《Effective C++》《STL源码剖析》《UNP》《深入探索C++对象模型》《APUE》,都没看完,挑了些看的,来不及了。都是好书,21届的小伙伴可以早点看,对提高自己的技能水平很有帮助的。
- 还有一点看法就是C++这东西很看重底层,内存方面被问到很多,我同学面雷火问了很多汇编层面的东西,希望不要浮于表面,有时间尽量能多挖深一些。
- 我还搜集了一些关于游戏面试的问题,但准备的一个都没用上,如果有人看我之后再整理一下,也不多,只是游戏行业可能报的人不是很多。
- 很多题目我都没写我的回答,因为如果我答得不对就坏事了,如果有同学有想知道的就评论里问下啦,我看到我尽量回答,只是不保证正确
最后再次感谢下牛客平台和各位牛油的帮助!
祝大家都能心想事成,拿到满意的offer!