本人12年毕业,一直使用.NET,但去年9月份转iOS开发,4月份入职现在的公司接手产品的iOS端开发。近期被外借隔壁公司(两公司就我一iOS...),既两边开发也帮隔壁公司面试新同事。幸亏人事安排的人基本是1至2年iOS开发经验,所以打着学习的主意,也勉强应付。陆陆续续面了十来个后,对自己产生了些怀疑,同时也怕自己的表现影响求职者对公司的印象。这里写出来,也希望求教下相关经验。
面试时基本问以下方面:
1、请描述下最近做的项目或产品的组织结构(想了解他对整个产品的把握以及用到的技术点);
2、针对HTTP请求,你是怎么处理的?(拓展到iOS网络处理的相关API);
3、iOS有哪几种技术管理多线程?GCD有几种队列?
4、ViewController的生命周期;
5、ViewController之间有哪些传值方式?
6、习惯用代码写界面还是XIB或storyboard?是否有自定义开发的控件?
以上问题都会跟面试者交流,在过程中也会涉及其他技术(比如当前自己遇到的问题)。但面试过程中我发现大部分人对一些基本的iOS原生API不了解或仅仅有个印象,比如HTTP请求都用AFNetworking,但要求不用AFNetworking,能否用iOS原生的API来处理时,好几个就不知道,即使简历上他已经有一两个上线的app。另外还有一个缓存的问题,也就是用NSCache来做缓存,基本没人知道,其他的也不再赘述。
不过有个插曲,一同学来面试,人事不在老板让我直接招呼,那同学所在的公司融资了,需要去北京办公,他不想去,所以出来找工作。随便跟他聊下,就私下建议他如果有期权就不要走,能融资的公司还是不错的。后来忘记通知老板面试就让他走了,老板问起来被白眼了。
其实我到现在没上线一个完整的app(目前接手的项目版本更新过两次不算吧),一直认为基础很重要。这里有个矛盾,基础不好(这里讨论的均指2年以下开发经验),熟练完成项目开发也不是没有人,因为开发中有足够多、足够好的第三方开源框架可用。但也由于基础不好,可能会给项目后续扩展维护带来不可预知的问题。
这里不知大家是怎么处理的呢?