硬杠到底:二本渣渣的辛酸面试之路,从外包到知名大厂,4年小iOS开发的心路历程

笔者16年于广东一个普通二本,毕业后去了满地都是机会的深圳。第一份工作是一家外包公司,主要业务是电商和电子支付信息安全方面的。至今已工作4年。大家都知道,对于跟我一样没有名校背景,也没有大厂出身的程序员来说,面试唯一的加分项就只有某一方面的技术深度了。所以我也建议各位小伙伴也跟我一样,选择一个自己感兴趣的,或者比较自信的方向,不断的钻研深入。

众所周知,2020年的冬天非常煎熬,疫情肆虐,大批的互联网公司都在裁员甚至倒闭。年后的金三银四跳槽季竞争愈发激烈,岗位需求急剧减少,求职者一面难求,能找到心仪offer的人就更少了。所以我并没有在疫情的风波中着急去跳槽找工作,而是一边观望,一边收集面试素材和面试真题,沉淀自己,提高自己的核心竞争力。

在刚过去的金九银十跳槽季,国内疫情已基本 稳定,经济复苏后,面试压力也就不那么大了,我开始投简历。我投递简历的顺序是按小公司—>大公司的套路来的,深圳的小公司非常多,中大型公司比较少,因此,在这一个多月的面试历程中,我估算了一下,大概面了6家小公司,2家中型公司和1家大公司。一般我去面比较大的公司之前,我都会先面一两家小公司预热一下。

以下是面试中被问到的一些问题

1、说一下OC的反射机制;
2、block的实质是什么?有几种block?分别是怎样产生的?
3、__block修饰的变量为什么能在block里面能改变其值?
4、说一下线程之间的通信。
5、你们应用的崩溃率是多少?
6、说一下hash算法。
7、NSDictionary的实现原理是什么?
8、你们的App是如何处理本地数据安全的(比如用户名的密码)?
9、遇到过BAD_ACCESS的错误吗?你是怎样调试的?
10、什么是指针常量和常量指针?
11、不借用第三个变量,如何交换两个变量的值?要求手动写出交换过程。
12、若你去设计一个通知中心,你会怎样设计?
13、如何去设计一个方案去应对后端频繁更改的字段接口?
14、KVO、KVC的实现原理
15、用递归算法求1到n的和
16、category为什么不能添加属性?
17、说一下runloop和线程的关系。
18、说一下autoreleasePool的实现原理。
19、说一下简单工厂模式,工厂模式以及抽象工厂模式?
20、如何设计一个网络请求库?
21、说一下多线程,你平常是怎么用的?
22、说一下UITableViewCell的卡顿你是怎么优化的?
23、看过哪些三方库?说一下实现原理以及好在哪里?
24、说一下HTTP协议以及经常使用的code码的含义。
25、设计一套缓存策略。
26、设计一个检测主线和卡顿的方案。
27、说一下runtime,工作是如何使用的?看过runtime源码吗?
28、说几个你在工作中使用到的线程安全的例子。
29、用过哪些锁?哪些锁的性能比较高?
30、说一下HTTP和HTTPs的请求过程?
31、说一下TCP和UDP
32、说一下静态库和动态库之间的区别
33、load和initialize方法分别在什么时候调用的?
34、NSNotificationCenter是在哪个线程发送的通知?
35、用过swift吗?如果没有,平常有学习吗?
36、说一下你对架构的理解?
37、为什么一定要在主线程里面更新UI?

面试题集和答案在文末
下面我来结合我的面试经历来谈谈不同公司级别的面试难度。

小公司(0-200人)

一般只要你收到这类型公司的面试邀请,只要你能把自己做过的项目架构,项目重难点说清楚,还有一些Android基础知识稍微扎实一点,然后你稍微准备一两个深一点的技术点,什么多线程、基本的性能优化原理说说,offer妥妥的,个别公司可能会考一些简单的算法题和智力题,比如冒泡、查找等等。在深圳这类型的公司三年iOS的价位一般在15-25这个区间,个别有钱的可能上限可以到25,一般都是18左右。至于面试题太常规,这里我就不多说了,想要看面试题和详细答案的可以直接看总结部分。

中型公司(200-1000人)

这类公司我面的其实也不是很多,深圳面试那家BL,做外汇金融的(ps:金融业务相关的公司都比较有钱,如果面试过程中面试官表现出对你有兴趣,聊薪资的时候你就可以大胆要)我去面试的时候,公司应该是在扩招阶段,面试的人很多。问的问题比较广泛,Flutter、iOS、算法、三方框架都有涉及到,虽然问的都比较有难度一点,但是我回答的都会比他问的更深入一点,也许是对我比较有好感,聊了半个多小时后,他叫我稍等一下,然后去叫来了他们的Team Leader。然后问了一些优化原理和跨平台的原理问题,还问了一些的UIButton频繁点击问题,我....基本上能答出来,然后leader就直接问我,期望薪资是多少·4(一般技术面试官直接问你这个问题了,也就代表这份offer已经稳了)我说:25K。leader笑着说了句:好,说下周会给我答复。

后来也确实收到了答复,但是答复说25k给不了,22k能不能来入职,然后....就没有然后了。

大型公司(5000人以上)

腾讯
一面之后就没有音讯了,所以没有什么发言权...
面试问的跟其他小公司一样从基础问起,但面试官会一步一步往深的问,直到你答不出来为止,然后下一个点 ,框架、原理性问题和性能优化方面的工作经验是比较注重的。也不觉得是自己答的太烂,只能说面试者中优秀的人太多,自己不够亮眼吧

面试复习笔记:

这份资料我从春招开始,就会将各博客、论坛。网站上等优质的iOS开发中高级面试题收集起来,然后全网寻找最优的解答方案。每一道面试题都是百分百的大厂面经真题+最优解答。包知识脉络 + 诸多细节。
节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

你可能感兴趣的:(硬杠到底:二本渣渣的辛酸面试之路,从外包到知名大厂,4年小iOS开发的心路历程)