原文地址:
https://juejin.im/post/58cd1d3ab123db00532ae4f5
1、看了超过60份简历,面试了20位左右工程师。
2、现在招人难吗?我的感觉是:很累,但不难。
3、算来平均一天面5个,连续面了4天,面的我累得要死。有几次刚说到一半,视线的余光看到了下一个已经再等了。
4、可见现在iOS 3年经验左右,中级工程师的人才市场还是有买方市场,公司相对强势,找到满意的人还是比较容易的。
5、所以虽然面试者中有一大半水货,浪费了我不少时间精力,让我这几天时时气恼无奈;但是最后回头看,总体来说还是对面试者心怀愧疚的。才招一个人却约了这么多面试,从某种程度上来说,我也浪费了他们的时间精力。真心抱歉,也祝愿他们都能找到理想的工作。
6、老大他主要看工作年限、经验,事实上他选出也主要是两年偏大、工作年限偏长的,事实证明,这一波有很多明显简历造假的面试者,弄得我非常烦、非常无奈。老大人非常nice,只是不了解现在iOS环境的险恶。
7、后来的面试也证明了硕士未必强于本科、三本未必不如二本
8、每个人都写熟练使用SDWebImage,但我问它是怎么缓存的,几乎说不出,区别只在于有些人坦言知道,有些人凭想象编两句;只要能说出有内存和磁盘两级存储的人,我内心就谢天谢地了。
9、让我最为意外的事,大部分简历都是做过的项目一群,三、五个月一个项目。这点完全颠覆了我的认知,以前在我的思维里一个公司就约等于一个项目,项目黄了公司就倒闭了。我没有想到这么多小公司都三个月一个新产品,打了一枪换一个地方。这种公司对工程师的发展其实很不利,很累不说,尤其是有些架构上的问题是工程大了、时间长了才能感觉出来。
10、招聘结束后再反思筛简历的过程,我发现有一个指标是确定管用、对于筛简历非常有效率的,就是近期项目的质量。
11、weak 和strong有什么区别
哈希表
12、atomic 和nomatomic
atomic是线性安全的——的答案
再问自己重写atomic属性的getter、setter方法,能说出加锁,不管是@synchronized 还是NSLock,已经寥寥无几了。
13、一旦这种情况发生两三次,明显面试者的情绪就变得低落,我作为面试官也很尴尬。
14、想到这里,我决定改变第二天面试的模式。其实从最后的结果来看,优秀级别的那五位面试者面对这类问题时能回答得不错。所以,但就结果而言,如果答不出这种常见的面试题,就直接拒掉,这个策略似乎也不会有什么坏影响。
15、经验性问题
•您在工程中遇到过什么很难的问题?不论是特殊的交互方式、复杂动画、性能、安全问题……最后怎么解决的?
展示您做过最复杂的一个界面/自己封装得比较好的组件,介绍它的结构和为什么这么做;
您在工程中做过哪些重构?做出了哪些改变,最后的效果如何?
平常工程中用到哪些第三方开源库?您读过它们的源码吗?讲讲自己最熟悉的一个开源库的源码结构;
下面给您看的这几张图是我上一期刚开发完的需求,如果让您开发的话,您能给出一个估时吗?其中有什么难点和风险点吗
16、优秀的工程师会有很多来聊,那种回答“没有”、“没什么”的基本可以pass了。
这有一个明显的缺点,就是对我的要求陡然提高:不像知识性问题能简单粗暴地比对标准答案,我必须全神贯注地倾听面试者的回答,尽可能地理解、猜测他讲的技术,同时还要时刻注意寻找能进一步挖掘的点,然后再往身处问下去,还要尽量表达清楚深一层的问题。
这样的面试,我比自己接受一次面试还要累。
17、事实证明,对于比较优秀的那几个面试者,我从来不用多费口舌,轻轻一点就能马上说出我想要的答案,真实十分畅快。这是我第一次意识到,沟通能力低的背后其实可能只是技术能力低。工程师之间的沟通技巧,背后是工程经验、架构水平和技术知识在支撑的。
18、就这几个问题而言,我觉得一个比较有区分度的是“做过哪些重构”,因为得到的回答非常明显的两级分化:一种是“基本没怎么做过,我写的时候就很注意了,不需要重构”,或者说做过,但实际上只是因为前面代码质量太差而推翻重写;另一种是“非常常见,经常会做”。在我看来,后一种工程师水平是比前一种要高一层次的。不是代码写得烂所以总要重构去修改,而是随着时间推移、业务变化,重构是必须的,但只有对技术有追求、对自己有要求的工程师才会发现这个问题、才会冒风险去重构。没做过重构,要么说明他做项目没深度、做一个扔一个,要么说明懒惰或过于忙碌,但无论如何是不可取的。
网友评论