高端ios面试总结


百度移动云可穿戴部门的面试经历,面试官都非常热情友好,一上来反倒弄的我挺不好意思的。下面记录一下自己的面试过程,因为我真的没啥面试经验,需要总结下。


一面


Objective C runtime library:Objective C的对象模型,block的底层实现结构,消息发送,消息转发,这些都需要背后C一层的描述,内存管理。
Core Data:中多线程中处理大量数据同步时的操作。
Multithreading:什么时候处理多线程,几种方式,优缺点。
Delegate, Notification,KVO, other 优缺点
runtime有一点追问,category,method 的实现机制,class的载入过程。
1面整体感觉不错,40分钟不到,感觉回答的还可以。被通知一会儿二面。


二面


二面的时间非常长,差不多将近3个小时,直接面到快下班了。1面问的主要是知识点。2面问主要考察的是设计解决方案的能力,另外辅助追问的方式,考察深度和广度,回答过程中需要列出适合的具体例子,方案还需要细致到具体的关键的函数名称,方法。另外考察设计模式的理解,最后还考了算法。因为时间太长,这里记录一些重要的问题。


设计一个progress bar解决方案,追问到 Core Graphic、CGPath、maskLayer。
设计一个popup view被追问到 keyWindow、UIWindow的layer、UIView hierarchy。
从设计模式的角度分析Delegate、Notification、KVO的区别。被追问到自己写的library和开源的项目中用到哪些设计模式,为什么使用,有哪些好处和坏处,现在能否改进。
算是问题3的追问,设计一个方案来检测KVO的同步异步问题。willChange和 didChange的不同点,然后被追问到有没有其他地方也有类似情况,被追问到Core Data 中falut object。
这个是问题4的追问,设计一个KVO系统。
Multithreading,什么时候采用Multithreading方案,以及理由。追问到系统还有哪些在后台运行的thread,被追问到view life cycle、iOS6之后的不同以及内存管理。
Multithreading中常常遇到的问题,追问到死锁,优先级翻转,线程池等。
百度有一个亿级别的APP需要统计用户行为的日志系统。不使用数据库,只是使用普通文件,设计一个系统。被追问到内存映射文件。这个问题本来是服务器的问题,我表示从来没做过,回答很瞎。
算法考了2个。一个是如何求2个集合的交集。另一个是百亿数据中查找相同的数字以及出现的次数。


最后还补充了几个小问题


自己对可穿戴设备的感受
自己如果进入这个team,自己准备做那方面的事情
为什么创业,自己未来规划
一会被告知3面,但是因为太晚,约到次日下午3面。


三面


3面的时间和1面差不多40分钟,问了几个问题,主要是考察精神层面的东西。


为什么做Windows Mobile
为什么改iOS
为什么来百度
为什么iPhone 可以成功,那些吸引你
如何看待AppStore 现在的生态圈
后面就是他说的多一些,介绍团队遇到的困难以及14年团队的打算。最后他给了我2句话的评价,我觉得还是蛮对的。


选择的时候都是经过深思熟虑的
有野心,wanna make a difference
有意思的是,他说他也wanna make a difference。


总结


整体还是挺尴尬的,几乎所有的知识点都是1,2年前积累的,13年积累的东西基本上没有,都是一些虚的东西。
2面挺好的,暴露了自己不少问题,设计模式那部分几乎没有概念了。


最后


面试通过,我个人觉得2面我的问题在思考设计模式上面少,另外在window hierarchy 上面有不足。设计 KVO 上面在 didChange上面考虑不足。这些都是被当场戳穿的。
有一点疑虑的是整个面试中并没有问到Core Animation。这个还是我蛮喜欢的部分。Anyway 个人很喜欢追问的方式,很容易考察出来理解的深度和广度。


整个面试收获很大,发现了很多不足。另外1,2面的面试题目个人觉得也不错。这里分享给大家。


 1 赞  收藏
关于作者:studentdeng




(新浪微博:@邓宇光)(Github: studentdeng )(个人博客: 不会开机的男孩 )
 个人主页 ·  我的文章




相关文章


这些 iOS 面试基础题,你会么?
iOS 面试大全从简单到复杂(简单篇)
objc系列译文(9.2):玩转字符串
iOS半月刊——创刊号
iOS热点回顾第一期
iOS半月刊——第二期
手把手五分钟教你制作自己的podspec文件
iOS代码实践总结
忘掉阅读,现在你可以听热门网站上的文章了
objc系列译文(6.3):Mach-O 可执行文件
可能感兴趣的话题


说一说除了技术书籍,大家还看什么书? ·  46
解题:设置0矩阵[难度中]
解题:旋转排列好数组找最小值2[难度难]
解题:旋转排列好数组找最小值[难度中]
双十一的背后 ·  2
压力大或心情不好时,你通过什么缓解(释... ·  19
面试中关于Python的参数传递 ·  1
办公室程序猿喝咖啡多,还是喝茶多? ·  56
日子过的三点一线,需要调剂一下,有没有... ·  7
双11买什么好,想买速溶咖啡,求推荐 ·  38
« Brett Terpstra 的 2014 年度最佳 Mac 软件推荐
发表评论 ( 以 @ㄣ蒗蹟忝涯︶ 身份评论 )
 


提交评论  






iOS小组话题 更多话题 »


 
App Store 查询关键词热度的外国...
奶油蛋糕123 发起 • 1 回复
 
当 Controller 膨胀至上千行,混...
iOS_Dev 发起 • 16 回复
 
Swift是花拳绣腿吗?说说你眼中的Swi...
iOS_Dev 发起 • 7 回复
 
如果你去面试iOS工程师,你会问什...
iOS_Dev 发起
 
你一般用 Instruments 来做什么?
iOS_Dev 发起
 
GitHub上面(关于iOS开发)有哪...
iOS_Dev 发起




本月热门文章
年度热门文章
热门标签
04个你需要知道的 Asset Catalog 的...
130天从零开始学习Swift
2为什么说,你纯看代码而没有碰到这个场景...
3百度 iOS 面试总结
4寒哥细谈之 AutoLayout 全解
5Xcode7中你一定要知道的炸裂调试神技
6iOS 精益编程
7RACSignal 的 Subscription 深入...
817 条 Swift 最佳实践规范
9彩色 TabBar 切换动画实现




iOS工具资源 更多资源 »




Masonry:使用纯代码进行iOS应用的autolayout自适应布局
iOS


AwesomeMenu:高仿 Path 主菜单的菜单库
iOS


MBProgressHUD:一个不错的进度提示工具
iOS


DACircularProgressView:仿 Facebook 照片加载的...
iOS


iCarousel :一个支持显示任意视图的旋转木马组件
iOS




最新评论




Re: 4个你需要知道的 Asset Catalog...
产品往往不知道自己要什么,体现程序能力的时刻到了


Re: 4个你需要知道的 Asset Catalog...
赞!


Re: 4个你需要知道的 Asset Catalog...
赞!很不错的文章!


Re: Objective-C 与 Runtime
那样就不能使用initWithXXX方法了!个人理解,欢迎交流指正


Re: Objective-C 与 Runtime
能解释一下为什么会先需要alloc再init吗?为什么不写到一块呢?用New代替


Re: 招聘一个靠谱的 iOS
决定要不要一个人基本上聊 5 分钟就可以确定了,喜欢水到渠成的感觉,看对眼了挡都挡不住。这句话非常认...


Re: 学习iOS开发前应该知道的(1)
看了你的文章,我躲在被窝里笑


Re: 有了Auto Layout,为什么还怕写UITa...
自动布局用过xib,一旦需求一改,各种麻烦.





你可能感兴趣的:(技术成长日志)