一、前言
本人就读广州某三本,真渣渣一枚。3月份开始投大厂简历,大大小小也面了十几家,一路过关斩将收到了美团和腾讯的offer。这段时间复习在网上认识了很多牛逼的人,让我在春招的路上并不孤独。
我从寒假开始陆陆续续准备算法计网的东西,三月份开学后专门花了半个月复习iOS的知识点。现将这一路上心得体会和面试经历分享给大家,希望这篇面经能对各位准备面试有所帮助。(本人文笔极差,看官多担待)
二、面试经历
阿里一面电话面试(通过)。阿里是在牛客上看到有人内推简历,就随便投了一下。阿里本来春招是需要做笔试的,听闻阿里的笔试都是给科学家做的,我怕做的太差没去(内推免笔试)。半个月后被发起面试。捞起来我简历的是杭州的新零售事业部。
1.自我介绍。
2.介绍一下项目中影响最深的点。
3.分别介绍一下block、delegate、notification、kvo。
4.说说它们之间的区别和使用时注意的点。
5.说一下关联对象的本质。
6.算法题:10亿个数里面怎么取前1000个数。
7.算法题:一个数组怎么输出前K大的值、时间复杂度。
8.runtime的消息转发流程。
9.说一下了解的多线程。
10.GCD和NSOperation的区别。
11.多线程题:ABC三个任务,怎么在执行完这个三个任务后执行D任务。
12.naviationbar在AB两个界面切换的时候发生了什么,里面的生命周期方法是怎么调用的。
13.http和https的区别。
14.一次https连接是怎样建立的。
15.讲一下TCP的拥塞控制和滑动窗口。
16.了解什么加密算法。
17 .平时怎么做技术积累。
18.对最近的很火的996有什么看法。
19.你有什么想问我的。
阿里二面视频笔试(挂)。一面过了一个小时,面试官打给我说想考察我的iOS编程功底,约了第二天在线笔试(终究还是逃不过笔试啊。。。)
三道题:
1.用GCD或信号量实现两个方法分别对同一个资源进行读和写的操作,要求体现出读写锁机制。
2.实现简单的一套图片缓存系统,考虑磁盘和内存两级。
3.绘制一个视图,提供可复用的组件,可定制文字内容和最大展示行数,超过部分省略号,视图右下角折角要求可以改变大小和角度(可以是直角三角形也可以配置成非直角三角形);
百度地图电话面试(通过)在牛客上看到有人发帖,组内直招,投了简历第二天就被发起面试。
1.自我介绍。
2.介绍一下项目。
3.OC的多态是怎么样的。
4.OC和C++的区别有哪些。
5.tableview的重用机制是怎样的。
6.tableview的性能优化有做哪些。
7.UIView和CAplayer区别有什么。
8.图像显示原理是怎样的。
9.Notification是怎样实现的,和KVO有什么区别。
10.一次完整的https是怎样建立的。
11.OSI七层模型是什么,每一层知道什么协议。
12.weak指针的原理是怎么样的。
13.看过哪些第三方开源库的源代码。
14.讲一下SDWebImage的实现原理。
15.平时写UI是用故事板还是用纯代码。
16.关联对象的本质是什么。
17.Extension和Category的区别是什么。
18.Category能不能添加属性,怎么加的。
19.iOS多线程了解吗,讲一下GCD。
20.多线程题:ABC三个任务,怎么在执行完这个三个任务后执行D任务。(这道题很常考)
21.最近有在研究什么技术。
22.你有什么想问我的。
百度地图这个是日常实习,内推人说转正几率很低,但表现相当优秀也有机会另外也要看HC情况。一面还算顺利通过,约了第二周的周一晚上总监面试。但是到那天下午的时候内推人联系我说,有个研究生实力跟我差不多,但是他学历比我好很多也能比我早入职(当时才4月底,我要7月考完试才能去实习),很可惜最后部门总监要了他。然后我就GG了。
字节跳动视频面试(一面凉)宇宙条的内推是做项目时认识的一个头条工程师帮忙推的。字节的面试效率早有听闻很高,投简历第二天被安排当周日笔试(内推也必须做)。三道算法题,巨难。。。3分最终只拿了1.8分。从后面的面试中也能发现字节很看重算法能力。
1.自我介绍。
2.问了下项目技术难点。
3.写个单例模式。
4.三次握手和四次挥手。为什么挥手是四次。
5.在网址栏输入网址按下回车发生什么。
6.TCP和UDP的区别。
7.为什么TCP比较慢,另外怎么保证可靠性。
8.算法题:求数组中第K大的值。
9.算法题:树的路径和。
10.写一个归并排序。
11.讲一下LRU算法原理。
12.你有什么想问我的。
宇宙条果然不一样,一面竟然一个iOS的题目都没有。面的问题中除了LRU算法和算法写的不是很好,其他全答上了。但是面完5分钟后收到短信通知凉了。去牛客上看很多人也是这样,算法写的不好或者答的不好基本都秒挂。不免联想到很多人吐槽的宇宙条面试手写红黑树什么的,手撕算法撕的不溜基本面不过,不过罢了,还是自己太菜2333。
美团的内推也是在牛客找的,劳动节放假结束就回来面试了,
美团电话一面(通过)面试官好像很赶的样子,很多细节都没问,就知道个大概意思就跳了下一个问题。
1.自我介绍。
2.app的启动系统后台发生了什么。
3.viewcontroller的生命周期。
4.tableview必须实现的方法和代理是什么。
5.算法题:怎么验证链表是否有环。
6.算法题:怎么取出数组的前K大的值。
7.iOS常见关键字有什么。
8.weak和strong的区别。
9.ARC和MRC有什么区别。
10.深复制和浅复制的区别。
11.iOS触碰屏幕事件响应机制。
12.死锁的概念和必要条件。
13.循环引用问题有遇到过吗。
14.滑动TableView的时候定时器还会生效吗,怎么解决。
15.runloop的事件循环机制是怎样的。
16.突然画风一转怼项目,各种细节各种问。
17.问着项目又引出Autorelesspool,问实现原理底层机制,能不能嵌套使用。
18.最后问下我还有没有准备好的特长没展示出来。
19.有什么想问我的。
美团二面(通过)二面是总监面,很简单的一次面试。
1.自我介绍。
2.一上来怼项目,一个真正从苹果商店下载我app来细问的面试官。
3.平时学习遇到过什么难点。
4.说一下GCD。
5.你有什么想问我的。
美团HR面
1.为什么学iOS。
2.在学校工作室的组织是怎样的。
3.有考研的打算吗。
4.来上海工作有什么特别的想法吗。
5.有女朋友吗,异地感情怎么样。
6.职业规划路线是怎样的。
7.用美团的产品有什么觉得不好的用户体验。
8.什么时候能够上班。
9.你有什么想问我的。
面完hr后,我以为就稳了的。谁知道人事一直不给我发offer,等了将近一个月,一直当备胎。打电话过去问也是说在走流程,太过分了,后来接了腾讯的offer这也就不考虑了(主要是工作地点在上海,离家也太远了=.=)
猫眼电影电话一面(通过)
1.自我介绍。
2.项目中遇到最难的点是什么。怎么解决的。
3.学习iOS多久了,怎么学习的。
4.算法题:反转二叉树。
5.算法题:两个有序数组,怎么合并成一个有序数组。
6.算法题:反转链表。
7.算法题:写一个堆排序。讲一下heapify的具体过程。
8.写一个最小栈。
9.给出二叉树的中序遍历和后序遍历,推出前序遍历。
10.代理是怎么实现的。
11.runtime了解吗?
12.说一下runtime的消息转发流程?
13.说一下SDwebimage的图片显示原理。
14.讲一下三次握手和四次挥手。
15.讲一下TCP的拥塞控制。
16.viewcontroller的生命周期是怎样的。
17.程序启动原理。
18.数据库五大范式大概说一下。
19.git的rebase是怎样。
20.你还有什么想问我的
一面面试官人很好,完全是聊天一样的面试,问的也全都很基础,有卡壳的时候也不为难我还会给我提示。后来猫眼二面因为当时已经通过腾讯的面试,拒了,面试本来就是一个双向选择的过程嘛。
腾讯电话一面(通过)
1.自我介绍
2.怼项目。
3.一个超级简单的算法题:计算一个字符串里面有多少个单词。
4.viewcontroller的生命周期。
5.TCP和UDP的区别。
6.讲一下滑动窗口协议和拥塞避免算法。
7.讲一下三次握手和四次挥手。
8.在网址栏输入网址按下回车发生什么。
9.操作系统中进程和线程的区别。
10.操作系统中堆和栈的区别。
11.问了个数据库的题目,具体是什么忘了=.=
12.OC中的多态是怎样的。
13.OC的多态和C++的多态有什么不一样。
14.OC的代理是怎样的。
15.关联对象的本质什么。
16.Category能不能添加属性,怎么加。
17.触摸屏幕的事件传递是怎样的。
18.tableView的性能优化知道有哪些。
19.tableView重用机制是怎样的。
20.什么是KVO,底层原理是怎样的。
21.weak指针的原理是什么。
22.runtime了解吗。
23.runloop中mode是怎样的。
24.内存管理的底层是怎样的。
25.死锁了解吗,产生死锁的必要条件是什么。
26.讲一下iOS多线程。
27.讲一下SDWebImage图片实现原理。
28.哈希表的原理。
29.最后问了个智力题:有一个猎人打猎回家,他带着一头狼,一只兔子,一个萝卜。现在需要过一条河,每次只能带一样东西。猎人不在的时候,狼会把兔子吃掉,兔子会把萝卜吃掉,猎人怎么把这三样东西都带过去。
30.你有什么想问我的。
一面面完基本都答出来了,最后那个智力题也挺有趣的,想了大概2分钟才想出来(我笨),当晚去官网查就已经是复试状态了。最后的时候我有跟面试官说,我已经通过了美团的全部面试也即将收到offer 了,但是相比之下我更想去腾讯,能不能尽快给我安排接下来的面试,我不想两头都失去机会。果然,第三天就收到二面的邀请。
腾讯视频二面(通过)
1.自我介绍。
2.怼项目细节。
3.说一下最近研究的东西。
4.我说了我最近在看多线程,然后他就出了一道多线程的题目。但我不会做(贼尴尬=.=)
5.一张图片在磁盘内存中怎么存放和怎样定义大小。
6.一道算法题,忘了,不知道面试官想问的是什么,好像是关于位图法的。
7.你有什么想问我的。
其实二面答的很不好,面完后自己都觉得肯定凉了,但是过了一会去查状态,竟然发现到了HR面的状态,回想起来也真是运气爆棚了。
腾讯HR面
1.家在哪,能接受去深圳工作吗。
2.父母是做什么的。
3.有女朋友吗。
4.美团和腾讯的平台各有什么看法。
5.平时有关注大型技术交流会吗。
面完HR,HR直接说欢迎加入腾讯,两天之内会有HR联系我谈薪资和录制流程和发offer。
面试心得
我自己本身是很想去大厂,所以从很早就开始打听要怎么进大厂,到后来的找内推、刷算法一步一步的付出行动,整个春招付出了很多时间精力,以至于接到个电话面试的通知都会脚软,会担心自己发挥的不好。
自己的心态一定要放好,脸皮也要厚,面试时什么奇葩东西都有可能发生,一定要有个强大的内心。
其实很多人主要是缺少大厂的面试机会吧,争取到面试机会,就真的是看自己的造化了。而找内推又是可以过简历筛选直通面试的很好渠道,所以尽量多话点精力在找内推上(前提是自己要有实力了)。只要简历不是太难看,有项目经验且基础扎实,通过内推争取个一面也不难,当然也有公司今年很看重学历(某易、酷某音乐、虎某直播),内推了也过不了筛选。
找内推方法:
1.同学或朋友,这个不必多说了。
2.牛客论坛。牛客上经常会有人在上面发帖,而且一般发帖的都是大型互联网公司,按照他们留的邮箱去发简历,有些是组内直招,很大机会有面试。
3.上脉脉app(不是打广告)。在里面可以搜索各种公司的工程师的脉脉账号。比方说想找阿里的内推,直接搜索"阿里iOS",会有很多工程师的账号,添加好友成功后,问下他们能不能帮忙内推,说说好话甚至发个红包什么的。有些公司个人内推次数有限,别人不想推也不要强求。当然内推后成功入职内推人会有额外奖金,所以其实还是挺多人愿意内推的。
增加肚子里的墨水
校招一般都是考察基础知识,主要是由算法+计算机网络+iOS基础(其他方向的同学替换同理)组成。
算法准备。剑指offer刷个一两遍,leetcode上面一些常见的面试题记一下,基本的算法应该没有太大问题的。(ACM大佬看到当我没说=.=)
计算机网络。常见的考点三次握手、TCP、UDP、滑动窗口什么的一定要烂熟于心,基本都不难,多背背。
iOS基础知识。UI基础、OC语法特性、多线程、内存管理、runtime、runloop、AFN和SDWeb的源代码一定要看等等,基础知识覆盖面尽量广,多看看别人的面经。用印象笔记有道云笔记什么的记录下来面试问题,没事翻出来背背。
大致总结就是这样,有什么问题可加我qq交流相互学习:760625430。
面试技巧
当被不会的问题的时候尽量的往自己会的点上面引,尽量不会说一点不会,能答多少就答多少。面试时间也没多长,在有限的时间里多多展现自己的知识底蕴,特别是自己擅长的知识点。
其实面试这东西真的挺讲运气,面试官对你胃口聊的来,印象会很加分。有句话说得有一定道理,“面试过了,是问的题你刚好会”。当然,也是要不断增加自己的知识面,这样随运气支配的比例才会下降,万事无绝对=.=
尾语
真没想到自己有天能写这么长的面经,也没想到自己能收到腾讯美团的offer。如果半年前有人告诉我我能去腾讯实习,我会笑他是个傻子吧。
真的很感谢一路上帮助过我的人。希望面经能帮到大家,这孤独的路上真的不止你一个人。
下午去打印腾讯offer回来的路上下起了大雨,看着手上的offer回想起三个月来的种种心酸
才发现,这雨量,不及我眼里一分
网友评论