腾讯

链接:https://www.nowcoder.com/discuss/72132?type=2&order=0&pos=4&page=1

作者去年毕业于北京某不知名211,去年春招至秋招都在牛客上看了大量的面经。今年三月份由于个人原因打算换工作,前后通过社招共面试了:网易云音乐,腾讯在线教育,腾讯视频,今日头条四家公司,岗位均为iOS开发,除开网易云以外,其他均走到总监面(腾讯在线教育)及拿到offer(腾讯视频,头条)由于我本人本来也毕业不太久,面试与校招差距不大,对学弟学妹们应该有一定的参考意义,随撰写此篇面试记录用于参考。 

网易云音乐 iOS高级开发工程师 一面跪 

个人是网易云粉丝,这个岗位base杭州也算不错,遂在boss直聘上投递,当天就约了晚上电面。说实话面试体验不太好,面试官应该是只做native开发,我个人在上家公司业务开发更多是weex,面试失利也较为正常。 

以下为问题: 

简单介绍下自己 

看你写的都是js,oc基础还ok吗? 

oc里的消息转发? 

oc怎么实现多继承?怎么面向切面? 

怎么给系统对象如UIView增加属性? 

Load方法与Initialize方法有什么区别? 

autoreleasepool怎么用?原理是什么? 

weak与assign有什么区别? 

NSNotificationCenter接受消息和发送消息是在一个线程立吗?发送消息是同步还是异步的?接受消息呢? 

有什么要问我的 

面了大概一小时,我自己录音做了一次复盘,感觉答上来大概80%吧,消息转发那里答得不太好,理解错面试官意思了,我回答成了整个消息流程。第二天一早就收到hr消息挂了,估计是岗位不太符合,那边估计是要纯原生且经验比较丰富的人。GG 

今日头条 iOS高级开发工程师 拿到offer 

效率奇高,下午两点半开始面试,不到6点和hr谈完薪资。 

一面: 

介绍自己 

写了个旋转数组找最小数字的题 

category复写元类方法原理 

消息转发 

weex原理,怎么优化的 

http三次握手流程,为什么要三次握手? 

http长连接了解吗? 

runloop用过吗? 

一面面了蛮久,但大部分还是基础。 

二面 

写了一个查找某路径是否存在于某二叉树内题 

autoreleasepool原理,底层数据结构,pop,push方法是否会对对象的引用计数产生作用? 

https握手流程? 

weex和native如何通讯的? 

weex渲染原理 

runloop用过吗? 

runtime用过么?kvo原理了解么? 

在上家公司做的最具有技术含量的事情是什么? 

还有一些记不大清了。。。囧 面试官很严肃,答完并不会给任何反馈,不知道他是否满意,搞得我越来越紧张。 

三面 

autolayout原理 

fmdb用的什么数据库?支持事务吗? 

nodejs协程是怎么一回事? 

如何在iOS项目里设计一个页面跳转路由器? 

三面剩余技术方面都问的比较宽泛,更多的聊天。 

hr面就不放了,没啥参考意义。 

腾讯视频 iOS高级开发工程师 拿到offer 

一面: 

突然接到电话,面试官声音非常好听,刚开始我还以为是hr。。。 

简历上基本都是js啊,oc基础还记得吗? 

oc消息流程 

weak关键字原理 

runtime 

异步绘制原理 

oc怎么实现private,public等关键字 

大概讲讲weex 

iOS渲染图片怎么优化 

怎么记录app启动速度 

Load方法 

autoreleasepool与arc原理 

快排原理,如何优化 

https原理 

两个玻璃球,100层楼。某层楼扔下玻璃球刚好会碎,此层楼以上抛下玻璃球都会碎,此层楼下抛下都不会碎。最少抛几次玻璃球找的出来这层楼? 

最后那个智力题真是无力吐槽。 

二面: 

weex最近迭代了什么? 

看过weex源码么? 

认识天施么?(我:?????) 

weex和rn区别是什么?阿里为什么要开发weex? 

感觉是个亲切的大叔,和我随便聊了聊。。。 

三面:(北京现场面试) 

手写一个根据网络请求响应码本地快速查找对应范围内的msg的题。 

weex和rn区别是什么? 

做过最有成就感的事情是什么? 

你觉得weex的难点在哪里? 

weex布局引擎怎么实现? 

答得一般感觉,不过最后还是给过了。 

四面:(北京现场) 

基本都是聊天,介绍腾讯视频业务,就不放了。 

hr: 

问了个很有意思的问题:我看你毕业不到一年,为什么面试官觉得你能hold住这个岗位?你自己有信心吗? 

腾讯在线教育 iOS高级开发工程师 总监面后由于和腾讯视频冲突放弃流程 

一面: 

iOS渲染图片怎么优化 

Load方法 

快排原理 

app启动过程 

oc消息流程 

讲讲runloop 

讲讲runtime 

weak关键字原理 

block原理 

arc 

在线oj:大数相乘 

腾讯在线oj体验好差,果然还是现场面试占优势。 

二面: 

随便聊了聊,然后又约晚上在线oj,题目又是大数相乘。。。 

三面: 

你的项目很杂啊,nodejs你觉得你掌握的怎么样? 

nodejs协程? 

介绍一下typescript 

为什么喜欢golang 

golang中的goroutine怎么实现的? 

vuejs和reactjs有什么区别? 

现在你可以等概率随机获得1~5个数字,怎么在此基础上等概率获得1~7? 

某班30%的人喜欢足球,40%的人喜欢篮球,50%的人喜欢排球,问多少人(比例)既喜欢排球,又喜欢篮球? 

如何快速的统计某篇文章中出现频率最高的几个单词? 

果然是大佬的问题,不拘一格,最后的智力题无力吐槽。 

面了一圈下来感觉和当时校招区别不算特别大,基本还是一面二面问基础,同时在基础ok的情况下深入某个项目挖掘候选者亮点。比如我简历上写了掌握weex,基本每家公司都问weex原理。。。有趣的是有的面试官还会关注除了iOS方面别的技术掌握程度,比如我无意间提到自己写过一个go的小项目,就go语言本身,面试官也和我聊了很多。 

要说面试心得,我觉得我还蛮有积累的。从去年校招到今年3月社招,大大小小的公司面了不下20家。大部分都拿到了offer。一路面过来,我觉得候选者应该做好这么几件事: 

基础绝对牢靠,比如算法要ok,计网如tcp/ip,https,http,基本操作系统知识如线程进程,内存显存,虚拟内存,多线程调度,锁等要掌握。 

对应岗位的基本技术能力要具备,比如上述面试中多次提到的iOS相关问题。 

某个方面要有绝对的亮点,比如我做过蛮多weex,面试官可能就比较关注是否了解weex原理,同时是否做过优化? 

沟通能力要好,在面试中能理解面试官的问题,表述清楚自己的想法。 

思维能力要好,遇到自己没见过的问题,要有解决思路。 

最后推荐几本校招必备的书籍,不限技术方向: 《现代操作系统》、《程序员的自我修养》、《自顶向下的计算机网路》、《C和指针》以及《剑指offer》 

同时放一片自己总结的iOS方面的常见面试考点:https://github.com/Rabbbbbbit/iOSReview。个人觉得如果全部掌握,足以hold住80%以上的iOS面试官。 

其中一小部分还在完善,可能也有些纰漏,欢迎大家star或者提issue。 

你可能感兴趣的:(腾讯)