回馈牛客, 腾讯+阿里+西山居+滴滴面筋(保持更新中)
😋
从开始准备实习, 已经过了一个多月了, 目前只有一个一月份面的产品Offer, 技术的Offer一个莫得, 不过相信自己会越来越好的, 所以就记录面经和凉经, 就当做回馈牛客 凉后复盘
腾讯WXG微信搜索 深圳 视频一面 C (凉)
第一次的技术面试, 估计也就是挂了. 有一个创行的学姐在腾讯, 所以给我内推了, 面试的部门师兄也是华工的, 所以他说这只是内部实习, 面试要求不会太高, 只要2-3个打杂的, 不会负责核心系统,也没有正式的offer. 连内推的师姐截图给我看他们的聊天记录, 得知只有5-6个人投了简历, 其中还有两个是没法去深圳实习的. 面试官原话: "现在实习生这么不好找吗, 300 一天都没人来? 人聪明肯干活就够了"
我拖了几天, 还是改好了自己的简历第二天投了出去. 觉得还是有机会水过去的...
联系了我面试时间, 考虑到不想拖太久, 我居然脑抽说了第二天晚上! 完全不给自己准备的时间啊, 也太飘了吧!!?
于是复习了一天的C , 开始了一个小时的视频面试. 也是啪啪打脸的开始.
主要问的以下的问题:
- 手写递归累加( 由于网络卡顿和紧张这么简单的代码题前后居然花了半个小时) , 听到面试官小声bb: 没理解透题目, 心中已经凉了
- 你说自己操作系统学得不错. 讲讲调度, Linux 用的是哪种调度? 如果是优先级调度, 哪些进程是比较优先的? 有哪些进程通信方式? 你用过其中的哪些, 我说了信号量和共享内存. 用在了读者和写者问题里面.具体读者要几个mutex, 读者要几个
- 解释一下你项目中频繁出现的DQN算法, 输出是什么? 你做了什么优化
- 解释一下项目中的alpha-beta剪枝, 你有没有想过可以怎么优化, 我说α-β本来就是在minimax剪枝基础上的优化, 所以我说了α-β的值会更新
- 解释一下哪些编程经历让你印象深刻, 你从中得到的感悟.
结果: 面试官人特别nice, 拖了两周才舍得告诉我凉了, 感到温暖
得到的经验:
1. 我太菜:) 课堂知识的经验很不够, 而且很不扎实, 实力才是硬道理啊 2. 我简历里面的所有项目都是课程项目, 没有体现出我因为热爱平时鼓捣各种小项目的经历 对付的方法是: 1. 大量刷题, 从现在开始, 自己做过的东西, 为什么做这个, 做这个的心路历程都要自信的表达出来 2. 补充完善课程项目, 做自己的作品集, 从修改标点符号开始
虽然自己也知道这次凉了, 不过我还蛮享受这种迈出第一步的感觉
腾讯IEG 牛客视频一面 后台开发 4.11
- 编程: 递归和非递归实现二叉树前序遍历
- 编程: 翻转链表
- 编程: 按层遍历满二叉树, 用数组遍历实现
- 智能指针, 编程: 自己实现一个智能指针
-
进程通信方式: 管道, 写管道符: 读取一个文件里面的内容并且执行
-
比较熟悉的进程通信方式 ? 除了课程的时候用过其他地方没有用过?
-
fork 的过程发生了什么, 镜像内存怎么实现的?
-
平时用Linux***什么?
- top , free 命令, top里面看什么? 用户态和内核态的内存占用有什么区别
-
Niginx 源码 有没有读过?
-
Select 和 Epoll
-
海量数据问题
-
四次挥手的过程 , 状态码过多怎么处理( 没有太理解问题, 答了捎带确认)
阿里菜鸟 电话一面 C (凉)
周日的晚上突然打了个电话来问有没有时间面试, 我还能说没有吗? :)
- 自我介绍, 讲讲项目经历
- C#中的 XX 怎么用C 实现? (这题忘了, 当时有点走神, 也没怎么答上来)
- 1000多个模块怎么记录依赖关系(图, 拓扑排序)
- 怎么做SQL优化, 怎样的SQL算好
西山居 (已拿offer)
宣讲会笔试
广州现场 技术面+HR面 游戏开发
- 问了很多Unity相关的, 怎么实现物理碰撞, 怎么做光效渲染, 怎么优化帧数?
- 怎么实现赛车轮胎打滑的效果
- C 的引用和指针的区别
- C 中的STL, list怎么正确地删除一个数
- C++中空类. 衍生类, 字符类型的大小是多少 , 为什么衍生类的大小是8
- 讲讲多态
- Vector底层内存怎么分配
我答预先开辟一段内存,不够用时用realloc函数继续分配内存 - vector申请新内存的话, 原本的内存还能使用吗?
我说还可以用, 可以不连续. 但是另一个面试官立马表示了反对, 后来我想起来的确是连续的可随机访问. 当时不太确定, 所以保持了沉默, 实际上这样的反映不太好, 会降低评价. 正确的做法应该是:"我的描述可能不太准确, 请您不吝赐教", 当然不会还是不会, 欢迎大家讨论.
问完了这些问题以后, HR让我上楼, 进了另一个办公室, 同样是两个男面试官, 不过相对轻松很多
- 家乡, 学校, 专业及为什么做游戏开发
- 平时看什么书, 参加过的哪些项目难度比较大.
- COD这些FPS游戏里面怎么让障碍物挡住敌人的巡逻视野. 提示: 简化成2D, 假设视野是圆锥, 那么只要角度 距离就可以计算是否在可视范围
复盘:
- 对自己的项目经历还是不够熟悉, 尤其是Unity部分
- 项目不够含金量
- C 的基础知识, 尤其是STL底层知识还有漏洞, 面试官建议我看《Effective STL》
滴滴 内部工具 电话面42mins 测试开发
面试题
- 自我介绍
- 开发语言是C++
- 对测试开发岗位的理解以及为什么要投递这个岗位?
- 介绍一下自己的项目(逻辑要清晰)
- 首先介绍项目的背景,为什么要做?要达到什么目标
- 在稿纸上一边画项目流程图一边讲解,让面试官跟着自己思路跑;先讲大流程,再讲小流程,逻辑分明;体现的是你的逻辑和软工素养
- 着重讲自己在这个项目中的亮点,如算法改进,支持扩展等(有数据支撑最好)
- 进程, 线程, 协程的区别? Python和C++的线程有什么区别? 换句话说, Python里面的线程机制, 是真的线程吗? Python 线程可以并行吗? 为什么
- Python里的迭代器, 装饰器是什么
- SQLite和MySQL区别是啥? 虽然都是关系型数据库, 轻量化和企业级的应用场景是最主要的区别. SQLIte 在 Python里面有较好的支持
- MySQL里面有哪几种表示字符串的类型? 他们的区别是什么?
- MySQL怎么删除一个表
- Linux命令行用过哪些?
- 要在Linux里面做XXX要用什么命令行, 分别问了我ps, sed, find, awk, cut, ls | more等命令行
- 算法题(只用讲思路): 给定两个不同顺序的字符串, 怎么判断它们是否相等
- 还算比较简单, 说清楚边界条件: 两个字符串长度不相等, 字符串不为空.
- 算法题(只用讲思路): 用你习惯的语言怎么实现任意类型的数组去除重复元素? 我说在C++里面排序后取第一个不同的. 追问: 用Python还有其他实现方式? 我没回答上来...
- 惯用语言是什么?
反问环节:
- 你对我的评价? 他建议我补好Linux和MySQL
- 部门是做什么的?
- 如果有幸加入贵司, 除了你刚才说的Linux和MySQL以外, 还有什么是我可以做的以尽快融入你公司? 他说了解公司业务, 然后是需求. 一脸懵逼, 我都还没进去怎么了解😑
- 什么时候有后续通知?
复盘:
- 自我介绍可以练得更顺畅一点, 包括简单介绍一下自己没写在简历的个人经历,爱好; 最好是自己对互联网的热爱, 最好最好能跟应聘企业沾边
- 项目上要提到自己的算法改进
- 恶补Linux命令行和MySQL, QAQ, 知道错了
二面+组长面, 两个都是电话面.
主要聊项目, 也问了一个最长不重复字符串的问题, 在提示下空间复杂度从O(N^2)改进到O(1). 此外就是关于Python和C++的区别的问题.