今天面试的是隶属于中央广播电视台下面今年 2 月份刚成立的一家智能汽车网联公司。

前两天他们北京总部的人力资源负责人突然加我微信,问我有没有时间面试,我当时一头雾水,因为我都不记得有投过央企的简历,然后他给我解释了一下说是今年 2 月份刚成立的,在上海金桥,做智能汽车网联相关方面的研发,我当时就比较奇怪,我也不是做汽车方面的工作,为什么还来找我面试,岗位职责肯定不匹配的,也不知道我的简历他们是怎么通过的。

周五早上 10 点如约来到了他们公司,是在上海浦东足球场附近,位置比较偏,公司办公地点在顶楼,估计是刚成立的,办公室里面还没有什么人。

一进门,一位美女就拿给我一张面试表格让我填写,大概花了十来分钟就写好了,然后她去找面试官过来,我等了大概十分钟左右,美女跟我说,面试官出门去了,想先跟我电话沟通一下🤣,然后把我带到了会议室,我打量了一下,一看就是典型的国企风格,柜子桌子上都插着国旗,然后我跟她说没关系,我也不赶时间,等他回来好了,她还坚持先电话沟通一下,不等她说完,一个电话就打过来了,好忧伤,早知道这样还不如就直接线上面试呢,坐地铁都花了一个多小时😂。

电话一接通,首先就是先让我简单的自我介绍一下,我花了几分钟把我的经历说了一遍,之后就开始问我问题,电话沟通从头到尾,基础的八股文一个都没有问,

第一个问题:

首先是根据我的简历,看我做过 sdk 开发,他就问我怎么设计一个 sdk,如何进行架构的,我巴拉巴拉说了一通,他又继续问我还有吗?我说没有了😂,他又继续追着问,还有吗?好无语,整个面试过程,他最喜欢问的就是还有吗。。。

第二个问题:

启动优化怎么做的,最终的优化结果怎么样,提升了多长时间。我回答做过一个启动优化的框架,参照 Google 的 StartUp 框架进行设计的,主要根据任务的属性设计对应的优先级,线程执行调度,前置依赖任务处理等设计对应的接口,接着问关于线程池方面的问题,如何设计线程池,怎么考虑核心线程数以及工作线程数的数量,任务队列如何选取的,以及最终的执行拒绝策略,我又是一顿巴拉巴拉输出,接着又是还有吗?

第三个问题:

网络优化怎么做的,我跟他说过,我做过 HttpDns,然后我把这个整体设计流程说了一遍,着重说了一下 ping ip 的原理以及 ICMP 的协议相关内容,接着又把一个数据报文从应用层,到传输层再到数据链路层怎么构建相应的报文,添加哪些数据的都说了一遍, 然后又是接着问还有吗?

第四个问题:

有没有使用过 Gradle 构建工具,有没有自定义过相关的任务,我回答我目前正在探索资源动态加载,正在研究如何进行 so 资源的加载,这里面就涉及到 gradle 相关的内容,我就简单的把如何通过 gradle 把 so 文件剔除的逻辑说了一遍。然后我跟他说之前做过通过字节码插桩,以及通过 gradle 写了一个插件,按钮防重复点击的小功能,接着又把如何实现这个逻辑,如何进行插桩的的过程说了一遍,不出意外的又是一句,还有吗?

第五个问题:

多进程通信,各种多进程通信的方式的区别 binder 原理以及实际的运用,没有做过实际的跨进程使用,此处省略一百字。。。

第六个问题:

关于 framework 层的问题,AMS WMS PMS 相关的问题,如何通过阅读底层这些源码解决上层问题,给出具体的实际案例,此处省略一百字,没做过😂

第七个问题:

你自己的特长是什么,给出具体的案例说明,自由发挥一百字。。。

第八个问题:

你有什么想要问我的,我在网上找了一些这个公司相关信息,发现没有什么介绍的,我就问他一些团队情况啥的内容。

这就是本次面试的大体内容,很多细的问题记得不是很清楚,主要就这些,前前后后面了一个多小时,面试官给人的感觉好像就是会问,还有什么吗?不像我之前面试字节的时候面试官极其专业,能根据你的回答,问极其专业的问题,一直问到你不会为止。同时针对你不会的地方还会给你做相应的解释。

本次的面试官估计是长期搞 framework 层的开发,不像我大部分是搞应用层的,所以整体不是很匹配,就像我开头说的那样。

所以这次整体面试不是很如意,问的大部分问题都不是我所擅长的,我在面试过程中有意地把面试官往我擅长的应用层方面引导,可是说着说着又回到他擅长的 framework 层,所以也不能发挥我全部的实力。

通过这次面试,发现了我一些问题,接着来需要学习一些 framework 层相关的东西,完善一下我的知识面。