硬杠到底:二本渣渣的辛酸面试之路,从外包到知名大厂,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就直接问我,期望薪资是多少(一般技术面试官直接问你这个问题了,也就代表这份offer已经稳了)我说:25K。leader笑着说了句:好,说下周会给我答复。

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

大型公司(5000人以上)

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

面试复习笔记:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: 在美团的Java外包面试中,面试官可能会问到一些关于待遇、加班情况、项目经验以及部门情况的问题。他们可能会询问你在项目中做了什么,使用了哪些技术和架构。他们还可能问你所面试的部门是什么,并且会让你保持电话畅通。\[1\] 此外,面试中可能会涉及到接口的概念。接口是一组规范,定义了一些方法的规则,但没有具体的方法实现。它可以用来约束类的行为,实现类需要实现接口中定义的方法。在Java中,可以使用关键字"interface"来定义接口,类可以通过实现接口来实现接口中定义的方法。\[2\] 在面试中,还可能会涉及到Lambda表达式的概念。Lambda表达式是一种简化匿名内部类的写法,可以用来实现函数式接口中的抽象方法。Lambda表达式可以简化代码,使代码更加简洁易读。\[3\] 希望这些信息对你有帮助,祝你面试顺利! #### 引用[.reference_title] - *1* [Java外包开发3,4面终揽下美团,含泪拿到22koffer](https://blog.csdn.net/bieber007/article/details/111402943)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [2022美团秋招java面试流程,技术面题解析 看完吊打面试官](https://blog.csdn.net/Cr1556648487/article/details/126191196)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值