前几天从呆了将近两年的公司正式离职,交接完全部工作,心里还有有点不舍。谈及离职原因主要是个人发展,感觉自己的发展遇到了瓶颈,目前工作内容也感觉没有太大的挑战。这无关钱的问题,公司3月份刚提的加薪申请,离职时已经快要批下来了,另一个最主要的原因就是自己想考研,想换一个工作环境,刺激自己的学习动力,所以这个时候离开舒适区,或许对自己的未来是一个好的选择。
第一次面试试水
金三银四,三月份求职机会还是挺多的,在boss直聘上稍微整理了下简历,就收到了好多面试邀请,3月7号利用休息的半天时间出去试了水,约了5家面试,因为太匆忙了,最后只面试了4家公司,有创业型的公司:蛋壳公寓,有中型的公司:知乎,也有大一点的上市公司:百乘金控集团、完美世界。
这次试水,充分体验到了企业面试要求的提高和难度的提升,公司不再是需要只会搭建UI的iOS开发工程师,更需要懂一些底层理论知识,并且有自己独特见解的开发人员,更是充分的暴露了自己的不足:
自我介绍以及和面试官交流的时候,表现的太过紧张,语言不流畅等;
专业方面知识点掌握不全面,不深入(主要以OC知识点为主);
数据结构和算法基本不会,连简单的快速排序算法忘了。
同时也有其他方面的收获:
市面上公司主流开发语言还是OC,对于我使用swift开发了两年来说这是一个劣势,我得重新弥补OC的面试知识。
小公司面试环节和我们公司一样一般是三面:第一轮技术面试,一般是iOS开发组长或者资深开发者面试,面试的内容专业问题会比较深入;第二轮:总监或者领导面试,面试内容会比较广泛,比如离职原因,项目中遇到最到的困难,怎么解决的,以及平时的开发流程,主要负责的工作内容等等,最后就是自己提问;第三轮:HR面试,谈薪资,谈福利等等;大公司的面试环节就基本要超过四面(当然我也没有通过,基本前两面就被刷了下来),第一面基本是数据结构和算法题目,往后难度依次加深。这一次尽管拿到一个offer,但薪资没有达到预期,以及公司项目还没有完成,工作也没有交接,所以也就没去,总体而言,这次面试最终以失败告终。
有备而来
两周之后再战,自己利用工作休闲之余,主要做了下面四件事情:
自己迅速过一遍iOS面试知识点;
充分准备自我介绍;
提前了解面试公司的状况并且准备好提问问题;
提前总结常见的面试官问的问题:上家公司的项目中遇到的最大的困难是什么?怎么解决的?从这个项目中学到了什么?和团队成员有冲突?怎么解决?为什么跳槽?等等。
未能短时间内提升的就是数据结构和算法,操作系统方面的知识,这个靠长时间的积累,但是常用的排序算法以及相应的时间,空间复杂度必须得懂,并且得会写。这次面试了六家创业型的公司,拿到了三个offer,并且入职了一家技术团队大,我也比较看好的公司最右,主要产品是面向95和00后的社交型app,公司目前也在招人,欢迎大家投递简历给我内推。
iOS面试知识点总结
常问的知识点
内存管理方面(ARC、MRC、autorelease、autoreleasepool)
Runtime方面(消息发送,NSHipster 对象关联,NSHipster 方法交换等等)
KVO内部实现原理(多家公司有问到)
Runloop方面(深入理解RunLoop)
HTTPS通信过程
UITableView的优化手段方法(iOS 保持界面流畅的技巧)
多线程方面(GCD、NSOperation居多)(关于iOS多线程,你看我就够了)
SDWebImage源码分析
事件传递以及响应链(史上最详细的iOS之事件的传递和响应机制)
需要了解的知识点
APM方面(内存泄漏检测、crash监控,卡顿监控以及底层的实现原理等等)
组件化方(蘑菇街 App 的组件化之路、iOS应用架构谈 组件化方案、在现有工程中实施基于CTMediator的组件化方案、iOS 组件化方案探索、iOS 组件化--路由设计思路分析)
持续化集成(我们公司使用的是:Jenkins+fastlane)
其他iOS面试资源
自我介绍
这篇文章挺不错的,重点是要简洁大方,突出自身的优点面试的时候,如何自我介绍?
数据结构和算法
书籍:算法导论
优秀博客推荐
努力向这些大神学习