那些年我拿到阿里巴巴Offer所参加的面试

2017 年尾第一次经历了转岗,离开了 YunOS/AliOS 事业部,虽然新部门还是在阿里,但这种感觉其实就是换了份工作。想当初加入阿里踌躇满志,期待在 OS 领域大干一场,然而时隔一年多,我已转型为风马牛不相及的 Web 前端开发,曾经的 OS 梦随着前事业部的战略失败也逐渐凋零。2018 年的第一篇博客,就来纪念一下这段狗血历程的开端吧。

回想研究生时期的我还在嵌入式领域里游荡,尽管会写一点网页和脚本,也懂点机器学习的皮毛,但我一直认为我会去一家电子公司,比如传统的半导体厂商 Intel, NXP,最不济也是 MTK (笑)。老牌名校的明星院系,实习、神人导师的各种摔打,以及自身对嵌入式的热爱,想不出有什么理由会使我去互联网公司。

然而,命运有时候就是这么神奇。

2015 年初夏,机缘巧合认识的学弟妹在团队缺人的情况下,拖我去台北参加了阿里百川举办的黑客松比赛,随后结识了若远师兄。在 16 年春天开始找工作时,我咨询了若远:1. 阿里有没有搞系统底层的职位?2. BAT 的官网都只招实习生了,阿里还有校招吗?在得到肯定答复后,自然而然获得了他的内推帮助。

简历通过评估后,无需笔试,即将开始漫长的面试之旅。我总共经历了 7 场面试,之所以会有这么多场的原因,总结有三:

  1. 16 年互联网寒冬已经到来,BAT 在三月春招时只招实习生,而我在前三轮面的不错的情况下想“强行上位”,需要多多考察(某位面试官原话);
  2. 其中一场面试面砸了,听到有正式 offer 机会的当下心态失衡;
  3. 当时人在台南,边写论文边面试,时间紧任务重,拒绝了回杭州终面,所以还是需要多多考察,毕竟学校名字听起来太野鸡?

讲完八卦,是时候上干货了 = =+。以下是 7 次面试的重点记录:

一面

  • 电话
  • 根据线上简历(主要是简历上的开放式问题)进行提问

二面

  • 电话 + 笔试
  • strcpy() 越界
  • 链表节点的插入
  • size of array pointer

三面

  • 电话,内容广度爆炸… Orz
  • ld.so,VIVT / VIPT / PIPT,cache flush / clean
  • 加解密算法
  • TLB 作用
  • 宏内核 vs 微内核
  • IRQ vs FIQ
  • ARMv7-M vs ARMv7-A
  • ARMv8-M,Trustzone
  • MPU 用途,和 MMU 区别
  • 动态链接函数库,那些数据共享,哪些数据独有
  • Run-time 时期 Bss Section 数据的行为

四面

  • 电话 + 笔试,搞砸的那次
  • 指针的数组,数组的指针,sizeof() ?
  • 同二面第一题,刨根问底是什么情况
  • 写出 linux kernel 双向链表的删除操作,但问的时候未说明是双向链表…

五面

  • 电话
  • 首先,解释四面表现为何如此之差(心塞…)
  • 一个智能灯系统,有 WiFi,如何做到低功耗
  • Hypervisor 原理,若上面同时跑两个 RTOS,整个架构是怎么样的

六面

  • 电话
  • 详细自我介绍,项目经验
  • mutex vs spin lock
  • 有序数列查找元素效率最高的算法?时间复杂度?
  • RB Tree VS AVL Tree
  • 过往的笔试题
  • TCP 四次挥手过程,端口号什么时候结束使用的

七面

  • 电话,HR 终面
  • 来实习的话可能面临的挑战?
  • 来实习的工作内容?
  • 自己最大的优势是什么?

整个面试的过程还是不错的,面试官都很专业,上来直接询问技术相关的问题,并且会有意识的引导,态度也都比较和善,是我个人认可的面试方式。面试完后,阿里校招系统上的信息更新也非常及时,不得不夸一下这个招聘系统很专业,大大提升了面试者对这家公司的信心与好感度。当时唯一觉得不爽的就是不知道面试电话什么时候会来,除了一位面试官提前电邮与我预约时间外,其他面试都是时间未知,我只好抱着海外漫游的电信手机一直等,度过了难熬的一个多月时光。

现在站在上帝视角,再看看当初的想法,也是有许多感慨。我以为四面后就彻底结束了,没想到还有第五面;我以为这么多次面试是一个连续的过程,其实在第四面之后我已经被淘汰回了简历池;我以为我拿的是校招 offer,其实最终花费了团队一个社招 offer;我以为我来了做的是面试里聊得 ARM trustzone 等安全领域的活,没想到入职后就拥抱变化做了 Web 前端开发。

面对难以预知的未来,唯一能做的就是把握现在,不断地努力。如果没有在研究生时期疯狂饿补计算机体系知识,面试时期常常刷面经、leetcode 到三四点,我一定过不了面试。如果没有放平心态学习 Web 以及前端相关的新技术、思考技术需求与方向,我不会在想转岗时,谈一个 offer 拿一个 offer,不愁没下家。如果没有危机感和对技术的执着,我不会从一个石油专业院校走到一家知名的互联网公司,想想从光电跨越到电子再到计算机领域的“艰辛”,其实也没什么,毕竟整个过程是非常充实且富有成就感的。

最后,面试这一路走来也真的是非常幸运,结识了一些师长和同事并得到他们的帮助。例如带我进入计算机领域的前联发科技技术顾问、后来做我硕论导师的开源大神 Jserv;实习时只要有空便与我分享技术心得、劝我对自身技术发展不要设限的 Richard 大哥;给了我加入阿里机会并让我仰望的峰哥和超级 nice 的 HR 姐姐珈夜;以及内推我进阿里、在转岗时给我许多建议、现在成为一个部门同事的高富帅若远。感恩!

Learn from yesterday, live for today, hope for tomorrow. Let’s cheer up!