本文来自一名通过鹅厂面试的同学的投稿,以下是原文。
大家好,先自我介绍一下,硕士二年级,之前有过一次算法实习经历,后来看牛客网包括各种公众号以及认真思考了一下,觉得可能自己也不是很适合算法。去年9月份开始学Java,2月份投递鹅厂的暑期实习,最后拿到了PCG事业群后台开发岗的Offer。
1.WXG面试
wxg一面
投pcg,结果被wxg捞起来狠狠的锤了一顿。主要给了5道算法题以及聊项目最后问了点基础。算法题5道大概做出来了4道,最后的lru我刚开始使用的LinkHashMap,最后被告知不能使用库来写。然后心态就有点不太好了,之前没有看过不用库的写法,只能现场临时想,最后写的还算凑合。
然后聊了一下项目,被面试官怼我上一段实习经历里面的项目里面架构有问题 。以及针对我项目中一个未做优化的点让我想一个优化策略,说实话,当时我如果能想出来我在上段实习的时候就改了,我也是觉得那个地方有点问题,不过还是临场连蒙带猜的来讲。最后好歹还是能自圆其说了,面试官说 :”可以是可以,就是有点怪怪的。“没办法,现场临时想,也只能这样了。
算法题目主要有以下:
- 合并有序链表
- 判断括号是否有效
- 判断一棵树是否存在路径和等于给定值
- Three sum
- 手写lru不能用库
一些基础问题,比如:
1. Tcp三次握手 四次挥手
2. 大量Fin wait原因?如何设计线程?
3. 进程线程协程之间的区别
4. 多线程如何保证数据一致
5. Kafka如何保证不重复消费,如何保证高可用。
大概就是这些。最后面试等了8天没结果,凉了。。。过了大概1周,简历被PCG捞起来,开始PCG的面试。
2.PCG面试
1.pcg一面
一面面试官很和蔼,上来也没给整算法题,而是给了一个场景题,设计一辆小车,有四个方向,东西南北,给小车传入一个组指令,让小车完成对应的功能。主要看代码风格。感觉主要就是看变量名字命名规范、函数命名规范、以及注释之类的东西。最后问了forEach 跟for循环的区别。
之后就是简历各种问。我简历写了Kafka和redis,就问这两个多一些。然后问到了简历里面的超分辨图像重建算法。最后面试官问我有什么问题问他吗。我就问了一下 觉得我面试表现如何。面试官说:“觉得挺好的,代码风格也很好。就是告诉我别紧张,放轻松。” 之后5分钟状态从初试变复试。
2 .pcg二面
当时接到电话的时候又是自我介绍,然后我在上一段算法实习的时候做过视频鉴黄项目。里面使用到了resnet。面试官就顺着项目,问到了resnet的原理,为什么用resnet分类而不用别的。为什么网络不是越深越好。以及最后我赶紧打住了,因为我好久没复习了,我主要还是投递后端,再问下去感觉就完犊子了。
然后问了项目里面的难点。我之前做过鉴黄,还稍微讨论了一下关于鉴黄的东西。给面试官详细讲了我们鉴黄的流程,从人工鉴黄到机器鉴黄的变迁。包括人工标注等等。
然后出了两道算法
有一个求编辑距离,应该是用dp。
另外一个比较easy ,给定一个固定的数组,然后给两个下标,返回这两个下标之间的数的和。
中间聊到微服务,聊到了SpringCloud,就问远程调用的时候的熔断和降级策略。以及如果出现该如何应对。
秒杀系统里面扣减库存操作。
etcd里面的raft协议,以及如何一致性。最后面试官问我给自己打多少分(不要脸给自己打70分)。问了去实习希望学到什么,最看重什么。
嗯嗯,就是这么多啦,拿到offer后和闺蜜一起美美的吃了一顿火锅。
也祝大家面试一切顺利。
最后,也欢迎大家关注我们的公众号:校招巴士。方便获取更多的内推资源和面经笔经干货!
原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2020/03/24/%e3%80%90%e9%b9%85%e5%8e%82%e9%9d%a2%e7%bb%8f%e3%80%91%e6%9c%80%e6%96%b0%e8%85%be%e8%ae%af%e6%9a%91%e6%9c%9f%e5%ae%9e%e4%b9%a0%e5%b2%97%e9%9d%a2%e7%bb%8f%e5%88%86%e4%ba%ab%ef%bc%88%e5%b7%b2%e6%8b%bfof/