大多iOS开发者现状:
1、开发几年了,都在不停的做项目,自己一直都在忙于应付各种业务需求的讨论、开发、测试、发布、维护升级,再有新的需求的循环开发。都是重复的劳动。
2、工作几年跳槽都是奔着能继续做项目练手学习更多知识,然后工资上也能多涨一点。但是几年的历练下来,回头才发现,确实是积累了很多做项目的经验,但是在大公司严谨的技术面试下暴露了自己很多的不足。没有认真研究过底层知识,对OC的原理了解太少。
3、没有深入研究过第三方源码,对于技术学习的自我驱动力太差等等。总之开发技能大多是能满足当前的业务需求开发,再好一点可能就是能把业务功能的体验做的好一点,bug少一些。说白了,都是业务驱动的开发。业务实现需要用到这块的知识,去谷歌一下学习一下,然后拿过来用。实现功能之后发现没问题就结了。
4、最终造就了现在的结局:项目经验很足,解决问题的能力也nice,但是技术实力却不怎么样。
遇到面试题被虐
前面有位学员给我们技术老师提供了一套很“虐”的面试题,题目大概如下:
1、多线程的应用
2、GCD实现多个请求都完成之后返回结果
3、A、B两个int数组,得到A数组中B数组不包含的元素
4、事件传递链, 页面上一一个按钮,按钮和它的superView有一样的action,为
什么只执行butto的acton
5、runtime的应用
6、aray中加入对象, 对象的retainCount会加1, 如何使得对象自已管理自己的
生命周期
7、bugly的卡顿监控原理
8、如何架构-一个app
9、c中, malloc对象, 传入了size, free只需要指针,这是为什么?
10、如何管理移动端团队,包括帮助大家提高技术
11、数据库选择的原因(Realm、CoreData、 FMDB、Sqlite)
12、数据库做过哪些优化
13、arc情况下, 编译的时候,系统是怎么添加相关内存管理的代码的
14、脚本打包原理
15、app运行过程中, 同时最多有几个线程,怎么实现的高并发。
留下题目:
童鞋们有心中有自己的答案,可以在微信公众号里留言,留下你的答案,下周公众号公布这些面试题由我们技术老师做出来的答案。