如何写好ios工程师简历
首先需要声明的是,大部分受访者都有1~3年的iOS开发经验,不需要找一个真正的大牛,所以我觉得大部分准备的题目都是比较基础的,可以看出这个层次的人的水平。如果你也是有3年左右开发经验的从业者,不妨一试。
面试开始会要求面试官选择一个自己最熟悉的项目并介绍其技术架构,以及面试官参与的模块和具体工作。事实上,很多开发者并不理解所提到的“架构”的具体含义。有的人讲了很多产品功能,有的人讲的很笼统(比如遵循MVC架构等。).通常这个时候会打断他们,直接让他们告诉他们这个APP的层次结构或者核心模块。
之后,会问两个问题:
1.讲讲这个APP里的一个时间,用户触发了一个事件,引起了一个服务请求,然后得到了服务器的返回,更新了前端接口。请具体一点,比如数据处理过哪些类,每次传输的格式是什么?
2.参与的APP如何处理多个服务同时发起?然后让面试官讲一下APP的界面架构,比较随意。
问完项目,开始基础知识题~
模型层:
有哪些数据持久存储方案?
沙盒的目录结构是怎样的?一般用于什么场合?
SQL语句问题:inner join,left join,right join有什么区别?
sqlite的优化
你在网络交流中用过哪些方法(100%人说AFNetworking...)
如何处理多个网络请求并发的情况
如何提高网络请求的性能
如何确保网络请求的安全性
语言和基础知识:
内存中栈和堆有什么区别?哪些数据在堆栈上,哪些在堆上?
#define和const定义的变量有什么区别?
什么情况下会出现循环引用内存?
是否需要随时添加区块中的弱自我?
GCD的队列和主队列中执行的代码一定在主线程中?
使用NSOperationQueue的方法有哪些?
NSThread中Runloop的功能,怎么用?
中的变量。h文件可以直接从外部访问吗?(注意,它是变量,不是属性)
先说运行时的概念。如果message send找不到对应的对象,后面会怎么处理?
TCP和UDP有什么区别?
MD5和Base64有什么区别,各自的场景是什么?
二叉查找树概念的时间复杂度是多少?
架构:(我们不招架构师,所以这方面的问题问的不多,可以从APP之前的架构介绍中听课提问)
哪些类不适合单例模式?即使它们在循环中只出现一次。
通知的使用场景是怎样的?同步还是异步?
简要介绍KVC和KVO,它们可以应用在哪些场景中?
应用相关:
如何在项目中添加自定义字体
如何做一个静态库/动态库,它们的区别是什么?
debug和release在配置上有什么区别?
简要介绍发送系统消息的机制(APNS)。
用户界面:
系统如何找到需要响应用户操作的响应者?
适应多屏幕尺寸
UIButton的父类是什么?尤拉贝尔在哪里
推视图控制器和当前视图控制器的区别
描述tableview单元格的重用机制。
UIView的框架和边界有什么区别?
最后,还有几个场景题,也是最喜欢的题:
如何发送10网络请求,收到所有响应后再进行后续操作?
实现一个可以随时出现在app界面顶部的第三方控件。
实现最简单的点击拖动功能。
除了上面的阻力,如果你松开手的时候需要按照速度向前滑动呢?
如何减小应用程序的大小?
如何提高一档性节目的表现?
不同版本的APP,数据库结构发生了变化,如何应对?
平心而论,这些题目并不是特别难。他们不说黑科技,也不说ACM算法。它们是iOS的基本概念,也是容易遇到的场景。也可能是因为招聘的对象只是一个能完成3年左右业务拓展的人,所以大部分面试官并不满意,只有不到四分之一的人能以清晰的思路和积极的态度回答一半以上的问题。...
还有一个感觉就是这个行业可能真的很浮躁。很多面试官连几个简单的场景问题都回答不了,基础知识更是一般。他们只用几个第三方库,所以要求年薪25~30w,有种无所谓的感觉。有的人,在原公司,自称是技术负责人,但连APP的基本架构,包括哪些主要模块都不清楚,有的人甚至讲了半天产品功能和亮点,只好一次次打断,继续面试。
学习iOS,做的事情越多,感觉要学的东西越多,离大牛的标准就越远。无论深度还是广度,iOS开发都是一个值得探索的技术领域。由于苹果产品的火热,市场上iOS的开发一直供不应求,但真正有能力、高质量的产品可能没有那么多。