38

面试时究竟在问些什么 (完)

 5 years ago
source link: http://blog.zhaiyifan.cn/2019/01/25/when-i-talk-about-interview/?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

想当初还在学校的时候,参加面试,往往表现紧张,事前会背常见问题的面经,反复想自我介绍怎么说,却摸不上头脑一些问题到底想听到什么答案。

现如今也算是做了 3 年多的面试官,初入职场已经是14年初时候的事了,后来到了腾讯,再以后的面试几乎都是从未做过准备,临场发挥了,却几乎没有失败过(或许能把几乎去掉)。

现在再经历面试,却全都是坐在了面试官的角度,面对面前又或是电话那头的面试者反复提问,但往往遇到的面试者却鲜有能表现得好的。偶尔有一些我觉得潜力不错,再三给机会的,却依然没能 GET 到点上。

写下这篇,也是希望大家去参加面试的时候,或者准备面试时,知道对方究竟在问什么,希望听到什么,自己又该说什么。

自我介绍

会邀请做自我介绍,往往是为了这么几点

  • 缓解一下开始的冷场
  • 没有仔细看过你的简历,让面试者一边介绍自己,一边也方便自己再看一遍简历
  • 简历上没有看到足够的亮点,希望自我介绍能展示更多的东西

那么其实在这里,需要的就是能比较清晰地讲明白自己是谁,最近几年的工作经验,工作内容。作为开场,之后的问题环节也会从这里切入。

问题环节

问问题的时候,通常有这么几块

  • 计算机基础
  • 岗位技术基础
  • 简历中提到的各种工作内容相关问题
  • 进阶性的一些问题,比如优化和重构,比较高级的岗位,那么会上升到方法论,架构
  • 自己的学习进步方式

计算机基础

其实不外乎 “操作系统”,“算法”,“数据结构”,“计算机网络” 这种 CS 专业的大学课程,具体的问题像是:

  • 多进程
  • 多线程
  • TCP / UDP 区别
  • HTTP2 / HTTP 区别
  • 新协议的了解比如 QUIC
  • 一些基本数据结构的实现比如 HashMap、LinkedList 的实现方式
  • 常见算法的实现比如快排、最大堆等

考验的是个人在计算机上的素养,实际如果在日常工作中有自己的思考,业务上有一定深度,其实都是会有涉及的。

针对技术问题,通常用的提问套路就是逐渐深入,比如多线程问题,那我会从线程调度开始,聊到线程的内存区域,常见的线程内存闪退场景,应用内的线程管理方法,常见的线程池类型,进阶一点到实践的,会问到优化中什么时候用多线程,什么时候不用多线程,以及实际因为使用多线程导致性能下降的场景,又或是因为多线程导致的死锁例子。

岗位技术基础

也就是面试的岗位实际使用的技术的基础。比如面试 Android 客户端岗位,那可能会问:

  • Android 中如何保存数据
    • 有哪几种方式?
    • SP 的实现原理和性能问题。
    • 如果想实现跨应用之间的数据操作,怎么实现
    • 如果需要跨进程读写呢?
  • 广播有哪些类型?
    • 本地广播的实现原理
    • EventBus 类的广播的实现
  • 描述下 Looper, Handler, HandlerThread
  • 什么是ANR,如何避免?
  • 内存泄漏通常是怎么发生的?讲讲自己碰到过的内存泄漏和如何解决。
  • Android 性能调优的几种手段?
  • Android 应用下的类 ClassLoader 是哪个?什么时候初始化?
  • 开源项目的了解以及源码、原理认识?尤其是在自己实践中用到过的开源库,比如 LeakCanary 是如何检测内存泄漏的?
  • Android 中什么情况下 app 会需要用到多进程?多进程模式下开发需要注意的点?进程间怎么实现隔离的?

比如前端岗位,那可能会问:

  • CSS 弹层居中的方案
  • 对于 viewport 的理解程度,1px 实现的几种方法,对于移动端浏览器H5网页宽度生成机制的了解(如果有实际踩到一些时机的坑会更好)
  • 箭头函数和匿名函数的区别
  • currentTarget 和 target的区别
  • 怎么优化页面滚动时候的性能,是否了解 Chrome 对页面滚动的行为有过什么改进
  • JS 实现模块的方式

其中每个问题也会做逐渐深入的讨论,如果你觉得问题都答上来了,却没有通过面试,不妨想一想自己真的回答到了点上了吗?往往一些答歪了的,会让对方丧失进一步讨论的兴趣。

工作内容

简历上的工作内容可以说是最重要的一部分了,可以快速帮助面试官了解你的过往经历和与职位的匹配程度,以及做针对性的提问。

这里不妨看一下你的简历中,工作内容是否能描述清楚你的工作亮点或突破性的业务贡献,而不只是一些对能力的描述。另外,如果写了什么,那务必要确定自己了解清楚,而不要一问就被问倒了,或者只是知道一些皮毛,毕竟面试官是有耐性的,只会挑选一些内容来问,每一个点务必要确定自己真的做过,对内部原理深刻理解。

学习方式

如果前面的环节,让面试官觉得你虽然能力和岗位期望的有一些偏差,但是还是有一点潜力的,那这里可能会问一下你日常工作外的学习方式,来考察你的主动性。所以大家平时如果工作外还有闲暇时间,不放想想除了工作上交给你的内容,自己还有什么进步空间,无论是深度还是广度上。

你有什么问题

面对这个问题,一方面是给面试者一个机会来对自己对面试岗位提出疑问,另一方面,更重要的则是表现自己对岗位的兴趣,其中可能会考察是否对公司业务有足够了解,以及对这个岗位有多感兴趣。而如果直接回答说没什么问题,那直接体现出来的就是是否根本不知道自己面试的是什么职位,究竟想不想入职。

对这个 section,大家其实在面试前,仔细了解清楚岗位内容就可以了,自然会有自己对岗位的疑问,另外也可以试想如果自己可以拿到 offer,那对自己是否入职,有什么需要考虑的,不妨也在这里提出。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK