2022年金三银四iOS面试经历聊聊

1,087 阅读8分钟

前言

很久没有更文了,现在找到工作了,就来和大家聊聊面试的心得,聊一下iOS现在的行情如何,反正是想到什么就写什么,也会聊下对iOS未来的个人看法,或者职业规划等等。

裸辞

今年过完年,就和公司提出辞职,没有找到下一家,也没有准备好简历,就这样就提出了离职了。这种做法不太好,但有时候我就想逼一下自己,等什么都准备好了,再去做正常是把握更大,但我想着有1个月的时间,把手头的工作进行收尾,做一下交接工作,然后在准备一下面试知识点,写写简历就差不多了。

后面发现时间还是很紧迫,基本每天晚上都差不多看到1点,总觉得不是那里不足就是另外一处不足,简历也是改了又改,知识点是捋了一遍又一遍,我老大说我太紧迫了,没有好好规划好,其实呢,我也是有初步规划的,但是规划往往跟不上实际的变化,准备了20天好后,感觉也差不多,就放手去面了。

面试

我直接上boss上投简历的,写好简历后,就发现了很多人开始和我聊了,说发简历看看,其中某软某发某中,反正这类的都很多,有的人说这些工资高,待遇也不错,有的人说这些比较一般,这里我就不好评价,我只是想找一家有自家产品的公司,就没有去这些公司面试。

初试

第一家去面试的时候,印象比较深刻的问题是有个年轻的小伙子问多线程的问题,在串行队列中10条数据,是有顺序的,然后每条数据需要处理3秒,那请问怎么优化呢?怎样才能快速的下载下来,并按顺序展示出来。

本来想找个简单的先练练手,这问题我也没想到好的解决方案。

然后我问下可以说下思路,他说并发获取,本地数组做缓存,然后每一条数据请求后插入数据,检测全部下载后就展示即可。

image.png

接着

出师不利后,后面就开始顺风起来了,面了3家,有2家给offer,其中1家面了2个小时,没有拿下,感觉有点可惜,那个点没有答后,我也知道没有后面事情了。

2轮面试官问的是问题是在全国各区域,想要统计App那些请求接口的时间,请问有啥好的方案,知道哪些用户请求快慢,从而实现优化。

我的思路是在需要请求统计的接口中,提供定位,个人信息,和请求接口时间,上传到服务器,让服务器做统计。

面试官对我的回答不太满意,也许是我没有理解好面试官的问题。

image.png

这里笔试有有个有趣的推理题,我分享一下出来:

男人在星期一、三、五说谎,在其它日子说真话;女人在星期二、四、六说谎,其它日子说真话.某日二人说了以下对话:
男:“昨天是我说谎的日子.”
女:“昨天是我说谎的日子.”
那么,二人说话的这一天是星期几?

加分

我在简历上把我的掘金地址写上去了,还把2篇点赞比较多都写上去了。本来我是不太想写的,毕竟水平有限,让大神看到了,自己都觉得汗颜。这里还是感谢我老大,是他鼓励我写上去,他说写的好和不好是一方面,自己写的东西不是为了取悦谁,连自己都没有勇气把自己的东西放出来,那你还能做些什么。

这个真的是要感谢一下掘金,起码有HR上面,或者面试官上面,不论我写的如何,起码也能反映我是一直在学习努力,是有一颗进步的心的。

src=http___img.mp.itc.cn_upload_20160704_2fa8a9620e304405abae8f33b01107a8_th.jpg&refer=http___img.mp.itc.webp

其中有个面试官调侃的问我:这就是你认为写的最自豪的文章是吗,哈哈哈。

这时候要是你,你会怎么回复面试官呢?这里我就不写了。

大佬

在面试一家有发展情况的小型公司的时候,二面是一个大厂出来的大佬,在面试的时候,就啥都聊,可以说是互相交流,和他聊天后,感觉自己的感悟很多,在这里再次感谢这位大佬。

聊的内容有点多,这些就把重点说下,聊到iOS国内环境,他说现在的iOS开发者,很多都不思进取,Swift 出来那么久,很多人依然是继续用 Objective-c ,包括新项目也是。不知道你们是对此事怎么看呢?

还聊到一点声明式UI SwiftUI ,他说国内的基本很少人用,但是国外的就已经很多人用了,遇到问题,国内基本没有几篇可以参考的技术文章,都是靠翻。

很多人会说 SwiftUI 要 iOS13 才支持,但是 iOS13 已经有超过 96% 的设备在使用了,和安卓的 Jetpack Compose ,都是未来主要使用方向,包括现在都可以进行使用。 而对于Flutter,虽然说一直说优化,提升了多少性能,但目前来说,还远远不够。

对于大佬的一些看法,你们是怎么看呢?不管怎么样,他的项目就已经开始使用 SwiftUI 了。

image.png

聊的过头了,说回技术的问题,大佬的问题有一个是这样的,对于数组和链表的看法,还有说如果叫我去设计一个缓存表,会怎么设计?用什么方式进行存储?基于什么策略。

这个问题我当时答的一般,后面回来自己研究一下 YYCache ,也找到了自己想要的答案了。

大公司

大公司面了有4家,给我的感觉是真的很 nice ,面试官们给我感觉就是很友好, 他们不会高人一等,包括技术面试官和更高一级的面试官,都让人感觉都平等,答的不好的时候,会主动给提示,给引导我去答他想要听到的点。每次面完后,到我提问的时候都很耐心的给我解答,包括技术问题,不会说自己回去百度这种,哈哈。

其中有个面试官说:不管我们最后有没有录用你,都不要否定自己,觉得自己做的不要,有时候面试这种东西,是看缘分的,是看觉得你是否符合我们公司,符合就录取,不符合也不代表你技术不行。

image.png

听完后,我觉得是很有道理的,起码我们要相信自己。

技术

面了10多家,这里也把经常问到的方向总结下,大家也可以借鉴一下。

  1. Swift 与 OC 区别,动态语言,类和结构体等等。
  2. block,weak,循环引用等等。
  3. RunTime,这个的重点是交换方法,说下实际项目用法。
  4. RunLoop原理,如何使用。
  5. 多线程,如多线程有哪些,用法如何,锁怎么用。
  6. 设计模式,MVC,MVP,MVVP,Viper,或者其他模式。
  7. 数据结构,数组和链表,哈希表。
  8. 组件化,怎么做
  9. 优化列表,优化图片等。
  10. 闪退处理,闪退优化,启动优化。
  11. HTTPS,TCP,Socket,WebSocket有关知识点。
  12. 用过第三方库。原理,如何扩展等等。
  13. 项目难点,或者说遇到什么问题,怎么去解决的。

差不多都是这方面的知识点,主要还是看个人简历怎么写,一般都会问简历提到的知识点。

未来

接下来这阶段,我主要是想学习音视频直播方面的知识点。后面如果有更文主要是这方面的知识点,或者是项目遇到的问题,也会写出来和大家分享,我也希望各位老佬,也能把自己项目遇到的问题都写出来,分享一下是怎么解决的,一起学习。

对于个人职业规划方面,我感觉现在是一个新的起点。上半年主要是熟悉公司业务为主,学习音视频。下半年的学习内容还没定,但有计划去考一下证。对于更长远的就不说了,但无非也是几个方向,继续深造,π子型人才,或者转产品,转管理等等,每个人的想法也不一样。上一家公司,有个做安卓开发的,40多岁,他就是喜欢写代码,能力很强,和他聊天,感觉是学到不少东西,这不扯了,不然又要说半天了。

那到底未来要怎么做呢,如果我们真的是想继续深造,那就继续学习,自己制定计划,来实现。想转产品,转管理的,也有有意识学习这方面的知识,不然真的出现机会了,也把握不住。当然,这只是我个人看法,也期待和大家一起进步。

image.png

最后

iOS工作好找吗,今年其实环境还是可以的,基本只要你想1天2面,是没有问题的。个人建议还是好好准备,好好规划之后,再做打算。今天就聊到这里了,也欢迎有不同想法的留意。