网上已经有很多针对各种知识点的面试题,面试时有些人未必真正理解也能通过背题看上去很懂。我自己总结了4道面试题,好快速的判断这个人是否是一个合格的工程师,欢迎大家点评。


1.struct和class的区别


在面试之前你觉得所有的计算机专业的学生都应该能答的上来,事实是我面的人里有超过三分一没有答上来。

有时我还会顺便问下swfit里的array是什么类型,在大量复制时会不会有性能问题。


2.介绍一下观察者模式


也许有些人已经觉得设计模式有些过时,没有整本读过。就算如此iOS里常用的几个设计模式我觉得总要了解吧。

这里如果说NSNotificationCenter怎么使用的就直接pass。

这个回答应该包括三个部分:首先这个设计模式为了解决什么问题,其次通过什么方案来解决,最后才是当前体系下的具体实现方案。


3.在一个https连接的网站里,输入账号密码点击登录后,到服务器返回这个请求前,中间经历了什么


这题是在其他看到的,本来题目是登录gmail的时候,但是国内也许有些人不知道Google很早就全站https了,所以这里特别指出是https的连接。

这里面可以谈的东西就很多了,TCP/IP下有非常多的协议。不需要什么都能说的清楚,但是对于整个网络连接模型的理解可以看出基本功。


4.在一个app中间有一个button,在你手触摸屏幕点击后,到这个button收到点击事件,中间发生了什么


runloop和响应链需要说的清楚。

有时还会顺便问问UIResponder、UIControl、UIView的关系。


这4个问题只是为了一上来可以快速筛选掉不合适的程序员,毕竟有的人只需要几分钟就知道他不合适了,好节省时间。

中午吃饭我和一个资深的同事说这些题目,我说,一个15k+的程序员我觉得一定能答的上这四题。他说你也太乐观了,按现在这行情他觉得恐怕要20k的程序员才能答的上来。