最近和同事一起在北京寻找iOS工作,在这静静的北京夜晚很想总结总结
前提
最近因为公司的种种,最终决定从新找工作,新的工作新的起点。本来对于新的机遇充满憧憬,可是和一起离职的同事一个个的面试给我的印象,让我很快决定停止面试,停下来总结。
iOS北京市场
今年以来,北京的移动互联乃至全国的经济处于寒冬的情况下,凤毛菱角的融资成功和公司的倒闭形成的很鲜明的对比。还有很多的徘徊新的项目突破点。今年的北京互联网市场明显没有去年来的猛烈和拼杀的凶猛,更多的是理智和温和。资本取向保守。
在这种情况下,培训机构没有停止培训。
大公司开始缩小招聘,因为没有更紧迫的项目需要开发。
形成
在这样的环境和背景下,北京的ios市场出现最近我和同事目前面试的林林总总,我个人感觉奇怪的现象。
打算以几个篇幅来论述,仅仅代表自己的意见,欢迎探讨。
原来你在这里
这里说的是猎头,猎头手里还是有很多的职位的,开始的时候猎头的电话没有停止,长时间的开发经验,大公司的开发背景,对于这样的猎头猛烈推荐,我以为今年的新闻报道仅仅是个片面的报道,移动互联网还是很火的领域。
电话约了几个体验式的面试,信心满满的自己,开始在没有任何准备的情况下走上了面试之路。。。。。
和同事面试几个不同的公司发现这些公司大部分的问题都是一样的,相识度几乎是90% 一点没有夸张的成分。
试探
“简单的介绍一下自己”
“说说你做的项目里,技术上比较体现能力的地方”
“你在项目中担任的角色”
这些开场白,一般和技术没有太大的关系,其实除了介绍自己,剩下的基本是为了验证你的身份真实性。开始我很奇怪,为啥问这些,后来知道,因为培训的太多,简历造假的比较多,为了更好的验证假的简历,只能这么多问问有的没得了。也不是一个好办法啊。
开始了
和一起离开的同事对了一下,面试基本题是一样的,一样的,一样的,是的,重要的事情说了3边
技术之殇
面试高级开发,面试的面试官如果本身技术的沉淀没有足够面试一个高级开发,baidu的题是最直接的方式,一般面试的人不会反问对方同样的问题或者别原来还要底层的问题,网上的技术博客成了救命稻草,这样问题的深度连带着答案都可以get到。
UI篇
"UIView和CALayer 的区别和联系"
答案:http://www.cocoachina.com/ios/20150828/13244.html
说说UIView 的响应链
答案 :http://blog.csdn.net/chenruizhi/article/details/25319465
imageview 的圆角设置
答案:一种是在layer 设置圆角弧度。
一种是UIBezierPath 曲线的方式。都是layer 上的解决方案
tableView的显示效率问题
这个基本不太问了,因为是个经典问题了。不过还是有问道的。
总体上来说,对于高级的面试,UI是最简单的部分了,也是公司耦合度适中的感觉。
标准答案 5
耦合度 4
难度 1
程序篇
这一部分基本没有人问的。可能他们也相信你有写下来整个app的能力,也相信难不倒你吧
这里还有有2个高概率高耦合度问题
AppDelegate 周期方法(就是开始到最后都走什么方法)
答案:http://www.cocoachina.com/bbs/read.php?tid=209348
UIViewController周期方法(就是开始到最后都走什么方法)
答案: http://blog.csdn.net/huifeidexin_1/article/details/7566226
已经没有问项目中代码的复杂度,代码的质量问题了,这也是我感觉是iOS技术在北京伤感的地方,仅仅靠几个博客的内容和代码的阅读在没有自己独有的感悟和思考的情况下来捏造问题本身也是对技术的不负责。
标准答案 5
耦合度 5
难度 1
第三方库篇
这部分比较喜欢问的是自由发挥
一般都会涉及几个常用的第三方
AFNETWORKING(开源) https://github.com/AFNetworking/AFNetworking
SDWEBIMAGE(开源)https://github.com/rs/SDWebImage
FMDB(开源)https://github.com/ccgus/fmdb
这3个是比较喜欢问的,也是你最容易想到的,因为现在的app中没有几个可以逃脱网络和图片的。
如果猛的一问第三方库里面的具体方法,你可能会范蒙。如果让你说基本逻辑,和里面的具体实现,如果你不是最近研究或者代码摆在你面前,让你去想。基本是蒙蔽的状态。由于源码是公开的,所以研究方向和侧重点看个人爱好了。
这个问题面试的人不可能有准确的答案因为第三方库用的时间往往比研究的时间多。拿别人的写代码当面试题,在理念上和思维上已经输了一步了。
标准答案 3
耦合度 5
难度 3
默写篇
相比2年前,这个好了很多,没有让我们写贪婪算法,c语言的底层结构代码等等。还是有些其他,比如最简单的单利模式,工厂模式等
+(instancetype) shareInstance{
static dispatch_once_t onceToken ;
dispatch_once(&onceToken, ^{
_instance = [[self alloc] init] ; }) ;
return _instance ;
}
工厂模式:http://blog.csdn.net/lishuangzhe7047/article/details/8491269
这里问单利的写法是最多的,不知道为啥,完全get不到点在哪里
下一篇内容:内存篇,runtime(源码),runLoop,GCD,分别论述。
从根源分析为什么会大家问同样的问题,对于iOS开发中是不是没有对于高级更好的问题了?