清明节休息了几天,加上呆了两年半的公司正式离职,交接完全部工作,心里还有有点不舍。谈及离职原因主要是个人发展,自己的发展遇到了选择,目前工作内容十分杂乱无章。这无关钱的问题,公司刚提的加薪申请,离职时已经快要批下来了,另一个最主要的原因就是走技术大牛层,想换一个工作环境,刺激自己的学习动力,所以这个时候离开舒适区,或许对自己的未来是一个好的选择。
面试试水
- 2018年三月份求职机会还是挺多的,在boss直聘上,还有拉钩网稍微整理了下简历,就收到了好多面试邀请,清明节之后时间出去试了水,约了5家面试,有创业型的公司,有中型的公司,也有大一点的上市公司。
- 这次试水,充分体验到了企业面试要求的提高和难度的提升,公司不再是需要只会搭建UI的iOS开发工程师,更需要懂一些底层理论知识
- 自我介绍以及和面试官交流的时候,表现的太过紧张,语言不流畅
- 专业方面知识点掌握不全面,不深入,只要问道和ios无关知识内容,无法开口回答(特别是C/C++的基础知识)
- 数据结构和算法基本不会,连简单的排序算法都不知道。
- 第三方框架的源码没有认真研究,比如是如何工作的,如何实现的
同时也有其他方面的收获:
-
公司主流开发语言还是OC,对于我自学swift两年来说这是一个优势,使得我重新弥补OC的面试知识。
-
小公司面试环节一般是三面:
第一轮:HR面试,谈薪资,谈福利,谈户外活动等等
第二轮技术面试,一般是iOS开发组长面试,面试的内容专业问题会比较深入;
第三轮:总监或者领导面试,面试内容会比较广泛,比如离职原因,项目中遇到最到的困难,怎么解决的,以及平时的开发流程,主要负责的工作内容等等,最后就是自己提问有什么疑问
第二面基本是数据结构和算法题目,往后难度依次加深。这一次尽管拿到一个offer,但薪资没有达到预期,以及公司项目还没有完成,工作也没有交接,所以也就没去,总体而言,这次面试最终以失败告终。
再次挑战
- 两周之后再战,自己利用工作休闲之余,主要做了下面四件事情:
- 自己认真复习iOS面试知识点,多线程网络和内存管理重点知识
- 充分准备自我介绍,练习语言表达能力,说的更加清晰和交谈的心态
- 提前了解面试公司的状况并且准备好提问问题
- 总结常见的面试官问的问题:上家公司的项目中遇到的最大的困难是什么?怎么解决的?从这个项目中学到了什么?和团队成员有冲突?怎么解决?为什么跳槽?等等。
- 未能短时间内提升的就是C和C++,操作系统方面的知识,这个靠长时间的积累,但是常用的基本算法必须得懂,并且得会写。这次面试了六家创业型的公司,拿到了三个offer,并且入职了一家游戏技术团队,我也比较看好的公司,最后也祝愿同行ios程序员能找到自己喜欢的工作
要点内容
常问的知识点
- 内存管理方面(ARC、MRC、autorelease、autoreleasepool)
- Runtime方面(消息发送,NSHipster 对象关联,NSHipster 方法交换等等)
- KVO内部实现原理(多家公司有问到)
- Runloop,RunTime,Block(深入理解)
- HTTPS通信过程
- MVC 和 MVVM UITableView的优化手段方法(iOS 保持界面流畅的技巧)
- 多线程方面(GCD、NSOperation居多)
- 第三方框架源码分析
- Swift函数,闭包,以及和oc语法对比
需要了解的知识点
- 内存泄漏检测、crash监控,卡顿监控以及底层的实现原理等等
- 组件化方法,比如 蘑菇街 App 的组件化之路、iOS应用架构谈 组件化方案、在现有工程中实施基于CTMediator的组件化方案、 iOS 组件化方案探索、iOS 组件化–路由设计思路分析
- 持续化集成 Jenkins和fastlane还有Python打包
- Swift,C和C++的基础语法
网友评论