还是春招投的部门,20号投递,今天面试,面试官说你春招来过,有记录,自我介绍就不用,你直接开始讲最新的进展吧
我:????(自我介绍都不给我?
我:讲了一下最近的科研项目:目前作为主负责人正在参与的一个项目,该项目是为了将机载激光雷达的点云数据做树木的分类处理。
面试官:怼。(10分钟。?不是Java项目也能怼。一直聊到了项目实现的最低层
面试官:那最近就做了这个么?
我:还做了一个基于select网络模型的TCP/IP通信引擎。
面试官:哦?(危险信号)那你讲一下具体怎么实现的。优化到了什么程度
我:讲了主要的客户端和服务器的实现,数据包的定义,粘包和少包问题,第二缓冲区的建立,多线程,生产者消费者模式
面试官:为什么会出现粘包和少包?
面试官:netty的源码看过没有,netty的解决方案有没有了解?
面试官:涉及到了什么数据结构,聊一下Map源码底层实现。
面试官:讲一下C11的特性?(因为项目是用c++写的
面试官:测试并发数据如何?
面试官:为什么使用select网络模型,为什么不使用epoll?
面试官:为什么使用c++,为什么不使用Java?
面试官:有没有涉及一些其他的设计模式?
基本都是在交流,面试官也给我讲了很多不足的地方让我考虑后面的优化。目前考虑看一下netty源码,然后使用Java epoll网络模型,重新搭建一个通信引擎。
(大概记得这些了
有什么问题么?
我:平时负责的是什么内容,主要有哪些工作?(碰巧是做网络方向的
我:因为是淘系部门,所以每年双11,你们主要负责是哪些内容?
面试总结:因为前面面过该部门,所以基础的东西就没再问了。多数是项目相关性的基础和扩展知识。阿里的话问深入就问到了源码和底层实现,推荐无论做什么东西还是多去看看源码。而且不要想混水写一些东西上去,在简历上的东西面试都会被挖到最底层,我聊实验室的点云分类项目被怼到了数学层面。不是说会实现就够了,阿里不需要只会干活的人,可能他们需要有思想的人。
面试官的建议:看一下常用的数据结构源码,以及使用框架的源码。对自己做的东西一定要有自己的思考。为什么要用这个,和另外一个方法对比优势在哪里?不一定你的做法是对的,但你得有自己的思考。