成都ios培训
达内成都高升桥中心

15023458194

热门课程

写给广大非科班iOS开发者的一篇面试总结

  • 时间:2017-12-05 10:59
  • 发布:达内
  • 来源:代码湾

先介绍一下面试中觉得比较吃力的问题:  

如果让你实现属性的weak,如何实现的?  

如果让你来实现属性的atomic,如何实现?  

KVO为什么要创建一个子类来实现?  

类结构体的组成,isa指针指向了什么?(这里应该将元类和根元类也说一下)  

RunLoop有几种事件源?有几种模式?  

方法列表的数据结构是什么?  

分类是如何实现的?它为什么会覆盖掉原来的方法?  

另外值得一提的就是问了我自己写的博客里的东西(JSONModel的解析,EOC的笔记)等等。。  

这次面试让我深刻意识到了两点:  

对于每个设计,不能只停留在“会用”而已,应该理解它的实现机制,而且几乎每个设计都是与数据结构息息相关的,理解了数据结构和指针会有助于理解这些设计。  

了解设计的原理之后,还要知其所以然:为什么这么设计?最好还要知道这个设计存在什么缺陷,这个缺陷是哪个解决类似问题的设计所没有的?  

第一点是“how”的问题,第二点是“why”的问题,然而我相信有不少人只停留在“what”和“using”上。  

在面试的时候,我强烈感受到了面试官的功力之深:给我的感觉,对他而言,几乎所有的设计都可以用某种数据结构解释出来(有的时候也会结合指针),对知识点理解得非常透彻:即便是很简单知识点,也能说出很多深层次的东西来。而我自己只是刚开始学数据结构不久,在面对提到数据结构的问题几乎是没有思路的。  

我想说的:  

所以我觉得对于广大非科班的iOS开发来说,如果想在iOS开发上走远,就必须尽快补充数据结构,算法,指针等计算机基础知识,不然会对知识的理解形成很大的阻力。因为只有知道了这些基础知识,才能更深入得理解每一个技术点,而且以后如果学习其他的语言,也会更高效一些。  

简单来说就一句话:先是程序员,然后才是iOS程序员。只有这样思考,路才能越走越宽,越走越快,越走越远。  

现在iOS开发形势这么不好,市场要过滤掉那些计算机基础知识薄弱的人也是情有可原的。  

所谓的现在的“不好”,只是相对于之前“不正常的好”的不好。现在这个行业变得“不好”,其实是因为这个行业正在变得好,应该值得我们高兴才是。  

所以对于我们这群人(非科班的iOS开发者),应该提高忧患意识,未雨绸缪,更何况,雨已经来过了。

上一篇:百度ios面试总结!
下一篇:2017百度的IOS面试题!
选择城市和中心
贵州省

广西省

海南省