iOS面试招人分享

最近到新公司有些忙,这篇文章一直想写但没时间,今晚也不往后拖了,抽出时间将其写完。

前一阵子换工作,离职前给公司招一个iOS成员来接任,期间面试近10人,有一些东西想和大家分享一下。

下面是我出的面试题

1.下面这种写法有问题吗
#import "ViewController.h"

@interface ViewController ()

@property (nonatomic, strong) UIView *myView; //

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.myView = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
    [self.view addSubview:_myView];
    
    [UIView animateWithDuration:1.0 animations:^{
        self.myView.frame = CGRectMake(100, 100, 200, 200);
    }];

}

@end



2.平时都用了哪些第三方库,用于做什么?


3.你在做项目过程中做过哪些重构?为什么要重构


KVO,KVC


4.block,delegate的运用过程。  weak assign copy   Notification


5.有做过网络缓存吗?怎么做的


6.GCD队列,同步异步,不耗时任务多线程处理,耗时任务多线程处理。


7.layer 绘制图形,layer的锚点,如何确定点击到layer

UIImageView加圆角

view,系统如何寻找到需要响应用户操作的那个Responder


8.一个文字轮播,上下滚动,点击要能输出所显示的文字,你能想出几种办法?实现思路


9.做过SDK开发吗?会swift吗?


有看博客,写博客吗


10.讲下你工作中遇到的一些问题和如何解决它们的,讲下你的优点

公司是做地图的,对图形方面有一些要求,目前已用openGLES技术实现3D效果,但不要求面试人员会openGL技术,以上问题 7 一定会问,是为了了解一下面试者图形方面的知识(2D层面)。

出这些题的原因是,根据咱们公司对人才的需求(和能给出的薪资范围),给出一条主线,面试的时候根据主线来走,期间有可以扩展的问题扩展,可以省掉的问题省掉。主考面试者的逻辑思维能力,想着这一套主线多问些,也够了解面试者的能力了。

不过面试了这么些人,总的来说还是很失望的,我以为这些题目对于面试者来说会很简单,回答起来应该都可以讲到问题的点上,可结果却是只有一两个人能回答得很好。

按时间细数一下面试的情况,面试的时候我们领导会跟我一起,我问面试者答,领导听(领导也懂技术),面完技术之后领导会问其他的。

最开始面试的是一位女生,那个时候我其实也没准备好面试题,就问了两个问题,一个多线程,一个逻辑问题。在我问技术之前她已经跟我们领导谈过,领导叫我面时可能也是我进门时气场给人感觉很压抑,感觉得出来她比较紧张和警惕(?),两个问题回答得都不好,多线程不了解,逻辑问题回答的解决办法不够好,也不够多...问了两个问题从回答其实可以看出水平了,跟公司需求应该是不符的。

每次面试完我都会主动联系领导,告诉领导我这边面试得到的结果,好就是好,不好就是不好,直接告诉我对技术最真切的面试结果,其他的让领导自己权衡,所以这个女生pass了。

随着时间,遇到第一次较满意的,4年iOS开发经验,简历上写了了解OpenGLES,咱们项目了解OpenGLES的话是一个很好的加分项,为了面试他,我专门又出了10道OpenGLES的题,大部分都是基础的。他的面试是在周六,领导和我也专门抽时间周六过来了一趟,面试他的时候,iOS方面的知识答得还不错,多线程方面也还可以,问任务执行的线程时有没答对的地方,不过总体已经很好了。但OpenGLES,虽然简历上写的了解,实际上10道题一道也没答出来,问了下,其实只算是看了看别人OpenGLES的代码,自己没有真正写过一个哪怕最基本的流程代码。
对遇到做iOS还会OpenGLES的工程师可遇不可求,领导也深知这一点,所以我反馈的时候也是突出他iOS方面可以,可以考虑,但OpenGLES这边几乎为0,让领导自己斟酌。 (最后领导估计是想考虑他的,但他住的太远,并且女朋友也在那边上班,换住处不太可能,所以没成)

期间又面试了好些人,男男女女,也将我群里的两位群友推过来面试了,结果都不如意,上面一些基本的题目回答不上,多线程几乎不懂,说会的东西往深一点问还是不会...还是很失望的,对我来讲也是一种意外,没想到这么多的开发者一个个简历上都是 3年 4年,对技术的了解却像是一个1年左右的水平。
这里不是我装逼,也不是我要中伤某些人,从这些面试和我平时的了解,iOS这行水分真的太多,好的iOS工程师比例真的太低,普遍都很拉,大家有时间还是多积累一些知识和技术,平平无奇没有任何竞争力,等着机遇降临不如自己去把握每一次机会。

最后说一下最好的,也是最后一天面试的,5年iOS开发经验,从MRC时代过来,在前3家公司做的都是移动小组负责人,上面的问题问了一些,都答得很好,然后更加深入的问了iOS的runtime、runloop等,也对他的逻辑思维考得更多更深,回答得都很不错。面完后,领导也很满意,和我商量确实不错,本来是想定他的。也和他约定了下周3入职的。

不过后面没有来入职

这次面试经历对我真的非常有用,能与这些人交流,了解和学习不同人的沟通能力,也从这些人身上获取iOS行业的真实信息,知己知彼。受益匪浅,特此也来和大家分享一下。

文章的最后,我们来回顾这些问题吧:

1.下面这种写法有问题吗
#import "ViewController.h"

@interface ViewController ()

@property (nonatomic, strong) UIView *myView; //

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.myView = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
    [self.view addSubview:_myView];
    
    [UIView animateWithDuration:1.0 animations:^{
        self.myView.frame = CGRectMake(100, 100, 200, 200);
    }];

}

@end



2.平时都用了哪些第三方库,用于做什么?


3.你在做项目过程中做过哪些重构?为什么要重构


KVO,KVC


4.block,delegate的运用过程。  weak assign copy   Notification


5.有做过网络缓存吗?怎么做的


6.GCD队列,同步异步,不耗时任务多线程处理,耗时任务多线程处理。


7.layer 绘制图形,layer的锚点,如何确定点击到layer

UIImageView加圆角

view,系统如何寻找到需要响应用户操作的那个Responder


8.一个文字轮播,上下滚动,点击要能输出所显示的文字,你能想出几种办法?实现思路


9.做过SDK开发吗?会swift吗?


有看博客,写博客吗


10.讲下你工作中遇到的一些问题和如何解决它们的,讲下你的优点

1.第一题其实是没有任何问题的,这道题考的其实是开发者对代码的掌控程度,信心。 面试中这个可能是一道坑,除了那个4年5年的说这个没问题外,其他人都会说这有问题或者长时间沉默直到我问那个动画会不会产生循环引用。
除了那个5年的,所有人都说会产生循环引用,这里其实不会,循环引用是双向的,这里只是单向的。 朋友们不理解的请自行 www

2.问平时用过什么库,了解他做项目的广度,再选其中几个细细问问,主要问AFN的常驻线程和SDWebImage的异步和缓存

3.第三和第8题都是看了 仓鼠(简书搜 戴仓薯) 的博客觉得问题还可以,借鉴来的,第三题考开发者对项目的整体架构设计和对项目的负责程度。

4.在问第四题的时候我会选择性的去问一下KVO和KVC,没必要的就不会问,问KVC主要想知道用于做什么,KVO用于做什么,回调方法是什么...面试者若说没怎么用或者没用过,我便不会问。
第四题问block,delegate的运用过程,要求面试者理理思想,讲一下block,delegate从创建到使用的过程和保持安全的办法,我会跟着他们的思维不会让面试者漏下每一步。 也会顺便提到weak assign copy,还有一对多的Notification (可惜,想不通的是大部分连这道题都过不去...)

5.有做过网络缓存吗?怎么做的 这道题问出来几乎没人说做过,我也就当给大家提供新知识了,告诉他们系统的NSURLCache可以做GET的网络缓存。当然,前提是也会让他们想想若要他们做该如何去做。

6.GCD队列,同步异步,这道题除了5年那人答得很好外,其他人都答得很不好,几乎不懂稍微深一点的用法。 问的时候都说会用,用得最多GCD,问到GCD的同步异步和队列组合用法,不会;问到GCD中的group、queue、semaphore、barrier等,几乎都不会,说知道的,问得细一点,还是不会。问到任务执行顺序和任务执行的线程的时候,不会;还有,除了5年的,其他人全认为下面代码会死锁:

- (void)viewDidLoad {
    [super viewDidLoad];
    
    dispatch_queue_t ser_queue = dispatch_queue_create("Ser", DISPATCH_QUEUE_SERIAL);
    dispatch_sync(ser_queue, ^{
        NSLog(@"1");
    });
    
    NSLog(@"2");
}

说是主线程同步死锁,怕是大家都是看博客看资料被误导或者没看明白,主线程同步死锁是在主队列里才会死锁。希望大家不明白的自己查查。

7.第7题完全属于我们公司特有考核的问题了, 主考layer的无响应能力和多边形被拾取事件的判定,会考面试者这方面的逻辑。
UIImageView加圆角是为了性能,因为如果用layer来做,触发离屏渲染,图形少性能可能看不出差别,但图形一多,性能差别就出来了,关于UIImageView加圆角提升性能不懂可以查查..

8.第8题其实很简单,不要求办法的难度和高端程度,尽可能想出多个方法,然后比较这些方法的差别,找出最优的办法,不过这道题也难住了大部分人,也是意料之外......

9.无要求,了解下

10.给面试者展示自我的机会。
第10几乎没有面试者能把握这个机会...可能也是技术能力摆在那里,也可能沟通能力有些欠缺,我觉得这个机会如果有,大家把握不住那可真是遗憾...希望大家可以自省

结语:通过自己的经历跟大家分享心得,希望大家能一起进步。

我的博客已搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=esdwr228r1pf

新的文章在简书,在腾讯云+社区也能看到

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,121评论 29 470
  • 史上最全的iOS面试题及答案 iOS面试小贴士———————————————回答好下面的足够了----------...
    Style_伟阅读 2,345评论 0 35
  • iOS面试小贴士 ———————————————回答好下面的足够了------------------------...
    不言不爱阅读 1,960评论 0 7
  • 多线程、特别是NSOperation 和 GCD 的内部原理。运行时机制的原理和运用场景。SDWebImage的原...
    LZM轮回阅读 2,003评论 0 12
  • (一)七年---似乎只是个眨眼的时间 风冷飕飕的吹过,即使春天来了,寒风仍然霸道的占领着自己统治的最后日子。或...
    公子白洛阅读 660评论 4 2