小米武研 web 后端开发面试杂记

引子

2018/03/20 多云
小米武研 web 后端开发面试杂记_第1张图片
我参加了小米武汉研发中心的面试, 岗位是 web 后端开发
当中还有一个小插曲, 在当天的上午接到人事电话, 约好当天下午 3 点现场面试
电话结束前说好了以电邮的形式告知详细信息, 然后一直到当天下午 2 点都没收到电邮
可能是被拒了我也没在意, 直到当天下午 3 点一刻的时候, 人事打来电话询问到哪了
我回复没有收到电邮, 没有准备动身… 最后还是定好当天下午 6~7 点进行现场面试

整体感受

小米武研中心场地并不大, 加上金山办公一起两家公司不到 100 人
办公室是那种孵化器式的全开放的, 包括前台, 会客室等等都在一个大厅里
小米武研 web 后端开发面试杂记_第2张图片
粗略估计了一下, 男女比例 8:2, 对于一个 R&D Center 来说已经很给力了

面试

流程

首先是到场前台签到, 这里有个题外话, 小米武研坐落于武汉金融港园区
我在进单元楼的时候被要求进行访客登记, 在得知我是面试者之后还查阅当日面试名单
可以说是非常负责的物业了
前台签到完成之后就拿到人事刚刚打印的两道笔试题, 都是传统的 oj 题, 详见下文
完成笔试题之后就是正儿八经的技术面, 过程大概用时 45 分钟
然后就是一些老生常谈的套话环节 (薪资待遇, 上班时间, 等等…..)
趁机了解了一下原来小米武研是双休的, 难怪对我的期望薪资犯嘀咕 :P
技术面结束后面试官走掉, 人事过来提醒说可以走了, 于是马上开溜

技术细节

起手的两道面试题的难度在 leetcode 里一道简单一道中等
简单题(下称205): https://leetcode.com/problems/isomorphic-strings/description/
中等题(下称402): https://leetcode.com/problems/remove-k-digits/description/

因为从来没做过 oj 相关的题型, 掏手机什么的又觉得太没有面子, 所以只能硬着头皮上
205 这道题很简单, 在纯 ASCII 的情况下直接做差即可判断是否同构
402 这道题当时难住我了, 后来想了个答案交卷之后发现不是通解
这里贴上我当时的解答, 让各位欣赏一下我丑陋的手写体 xD
小米武研 web 后端开发面试杂记_第3张图片
技术面阶段面试官首先指出 402 这道题的问题, 并给出足够的时间让我 fix
我当时因为紧张也没想到 fix 的方案, 面试官遂开始浏览我的简历进行提问
打头就问了我以前的实习经历, 项目经验, 等等…..
遇到这种问题我是最不怕的, 真金白银的回应之
面试官发现占不到便宜, 遂开始问一些准备好的问题:
* MySQL 索引机制 (聚簇/非聚簇)
* php7 新特性 (jit, 新的 zval 结构, zend 核心排序 hybrid sort)
* 爬虫相关 (死循环问题, 返回结果解析) (部分答上)
* Python 多线程 (GIL) (没答上)
* …….
最后面试官在白纸上手写了一道算法题, 也是给了足够时间和耐心提示, 没答上

# 一个数经过几次加一和乘二运算变成另一个数
# 求最少次数
# 举例
(2 + 1) * 2 == 6 # (两次, 最优解)
2 * 2 + 1 + 1 == 6 # (三次)

面试官提示说可以用二叉树来表示两种运算方式, 遍历出目标数, 得到最少次数
也可以用数学方法, 可惜当时没答上, 面试就这样结束了

后记

跟小公司不同, 这种巨型公司更注重对算法的把握, 对开发经验方面并不看中
而小公司反而问你一些工程上的问题, 有的时候甚至直接把开发遇到的难题拿来面试
我以前去小公司面试, 直接去他们主站溜达一圈, 找几个技术上不规范的地方记录好
面试之前准备两张纸, 一张给面试官, 称为简历, 一张留给自己, 称为 countermeasures
当面试走向向对方倒去的时候, 马上掏出货来, 一一对应, 挽回尊严…
而对于巨型公司来讲, 这些都不顶用了, 只能老老实实做题, 就像考研一样 :-)

你可能感兴趣的:(Interview)