Preface

本文是后端组谢心斌的小米面经。已offer。


10.17看到内推军上有小米的补招,当即投了简历,10.20号(周五)晚上7点收到hr面试电话,问我什么时候方便去现场面试,我说随便都行(作死),然后就约了下周一(10.23)下午两点。

周末疯狂准备了两天,周日晚上火车卧铺,第二天中午吃了兰州拉面的番茄炒蛋盖浇饭(别的吃不起),然后去小米总参开始面试。先到前台签到,然后上楼等HR。
期间看到其他同学在面试,还有正在跟阿三小哥视频交流的同学,全程英文6得飞起,还有要开会的几个同学,请我去别的地方坐,然后我再也找不到座了,就靠在楼梯口前的台球桌上。又过了大概十分钟,HR终于来了,看没座位了就带我上三楼,指了个座位让我先坐下等会儿。


一面(55min)

一面是个很友好的小哥,好几次让我不用紧张,说我都答对了,问的都很基础,基础得全靠即兴发挥

  • 你还没毕业是吗(嗯哼)
  • 学过计算机网络吗?能大概说下OSI七层模型吗?
  • 还有个五层的知道是什么吗?
  • ping用过吗,是在哪一层的
  • ARP协议是什么,在哪一层
  • 学过编译原理吗?能说下编译的大概过程吗?
  • 学过数据结构吗?能说下栈和队列的区别吗?
  • 学过算法吗?能说下深搜和广搜的区别吗?深搜用栈还是队列来实现,为什么
  • 说下你知道的排序算法。他们的时间复杂度分别是多少
  • 咱们来做道题放松一下(给出一个32位整数,将其二进制位逆序,求出逆序后的二进制表示的数)
  • 你现在还在学校上课吗?都有什么课呢?linux系统用过吗?主要是用来干嘛?
  • 并发和并行的区别?
  • apache和nginx与PHP是什么关系?
  • nginx和php-fpm是怎么交互的,要怎么配置
  • 了解哪些常见的web漏洞?sql注入怎么处理?
  • PHP的zval结构
  • PCB(程序控制块)是什么,里面有什么
  • 你实习的公司后端的整个架构大概是怎么样的?能说下整个后端的大概处理流程吗?
  • 项目经验挺丰富的,这些都是你自己做的吗?数据库也都是自己设计的吗?
  • 时间还挺多,我们再来做道题吧
    • 停车场数据库设计,需要实现以下需求:
    • 1、能管理车位,比如显示车位状态、可用数量;
    • 2、能得到停车场的经营状况,如某个时段的车位使用情况,收入情况
    • 停车费与时长的关系写死不用考虑
  • 没给我提问的机会,让我坐着等会儿

二面(50min)

二面貌似是考察逻辑推理能力,全程不带一句废话,一题接一题,而且都不是算法套路,还好我小学混过奥数,多解的问题至少也能也出一个笨拙的解法,勉强及格吧

  • 你还没毕业是吗(excuse me?)
  • 给一个rand()函数,返回值为0到正无穷的整数,请实现一个带参的rand(min,max)
    • 需要代码实现吗
    • 之前写了两题了,不用,我们抓紧时间,你先说下思路…………还有别的解法吗?
    • 没有o(╥﹏╥)o
  • 好,我们继续。栈和队列用过吧?现在给你栈的两个方法,push(),pop(),如何实现队列的push(),pop()(简单说就是用两个栈实现队列),
    • 接着给了几组数据,让描述运行过程给出结果
  • 只能对一个数加一、减一、乘二,现在给你两个数,使一个数经过计算得到另一个数,怎么算能使计算次数最少
    • 如6=4+1+1,6=4*2-1-1,第一个式子只算了两次,怎么得到这个结果
    • 用了DFS解决,面试官貌似不满意,说这不是算法套路题,这样搜索太慢了,让我换个思路(没想出来,思维被碾压了吗)
  • PHP的垃圾回收机制
  • 进程调度有哪几种方法?优先级调度的机制是什么?
  • 数据库事务用过吗?事务有哪几种隔离机制?MySQL事务默认是哪个级别的?
    • 接着给出一组数据,问我在默认级别下的输出结果
  • MVCC(多版本并发控制)是什么?有什么好处?
  • 没给我提问的机会,让我坐着等会儿

三面(40min)

三面貌似是考察架构能力,前两面写满了一张A4纸,这回带了本笔记本过来,此时我的心情是沉重的。果不其然,全程被碾压,只好保持尴尬而不失礼貌的微笑,并偶尔发出自嘲的笑声缓解气氛,看起来开心得像个两百斤的孩子

  • 你还没毕业是吗(我是不是来错地方了  ̄□ ̄||)
  • 介绍下你实习做的项目吧
    • 原来如此,那要是…………怎么办
    • (这里和个人项目有关,不具有参考意义,主要是问题太杂已经想不起来了,反正自己做的就不用慌)
  • 数据库查询优化怎么做?
  • 多线程编程(PHP屌丝表示不会)
  • 算法题:给出一个不定长数组,元素只有0和1,如何对数组进行排序
    • 先给出了计数排序,面试官不满意,说太复杂
    • 接着改用头尾双指针调换元素位置,面试官还是不满意,说用PHP的话不用这么麻烦(大哥,说好的用我想用的语言)
  • 还有啥想不起来了,最后面试官说了一句,没事,还年轻嘛。然后让我等会儿

四面(35min)

四面貌似是总监,一开始以为是HR面,还在想,HR的问题怎么还涉及技术了。总监毕竟是总监,聊的过程中也能慢慢感受到不一样的气质,根本不是一个层次的人。

  • 你还没毕业是吗(what?快被问到怀疑人生了)
  • 住在哪里?(火车上),这次是专程来面试的啊(嗯)
  • 你能大概说一下大学这几年吗
  • 都参加过哪些社团、活动
  • 你有什么收获
  • 大概说一下实习情况吧
  • 做PHP有多久了,在学校都是怎么学习的
  • 什么机缘让你选择做PHP
  • 为什么不读研
  • 未来几年有什么规划
  • 期望薪资是多少
  • 有什么想问的吗

五面(30min)

HR一来就说她这边没问题,主要看那边结合技术评价和期望薪资给结果,让我不知所措

  • 会在这住几天吗?(所以只有HR知道我还没毕业是吗,说好的校招呢)
  • 一下午连续面试感觉怎么样
  • 为什么选择来小米
  • 目前有几个offer
  • 为什么不留在厦门
  • 对未来的规划是怎样的
  • 期望薪资是多少
  • 接着给我介绍了小米的工作环境、比较低的薪资待遇以及美好的发展平台

整体来看,面试难度中等,我参考各种面经准备的东西基本没问到,更多的是考验综合素养,而不是死记硬背的能力,五轮的面试体验不错,没啥挑的。最后带着早上办理的北京一通卡走了,要是来不了,就当留个念想吧。



未经授权,禁止转载