写点什么

iOS 面试梳理 - 2020 年 8 月初

用户头像
iOSer
关注
发布于: 2020 年 09 月 19 日
iOS面试梳理 - 2020年8月初

本次面试周期为一周,准备时间为一周。


本次面试共投递 25 家,约面 11 家,最后大厂只面了 360、字节,实际面了 9 家,收到 4 家 offer。


事实证明:iOS 有人要,很香。


说明:16 年毕业,非重点大学,非计算机专业,本科


经过这次面试,对自己的定位又有了更多的认知,由于之前工作经验的原因,音视频这块将会成为我今后的主要方向,下一次希望能做到一个资深 iOS 音视频工程师,我也会把更多时间放到这上面。


确实算法能考察一个人的聪明程度,这段时间完全被女票碾压,好在算法多做一些,总结规律,也能把人训练的更聪明,像奥数一样。


建议大家用 C 写算法题;平时 leetcode 也用 C。


主观面试感受


  • 最右印象较差,面试官不 nice;

  • 360 最佳,很细心,很喜欢他们的 leader;

  • 其他公司均不错

  • 几乎每一家都有算法题,但整体难度不大(大部分是动态规划+树的遍历)

360 音视频岗位


主观评价:面的是音视频中台的岗位,本以为 HR 会推荐业务岗,准备不充分


一面:

  • 以往直播和相机的业务考察

  • AVFoundation、GPUImage

  • 两道算法题(追问优化)


二面:

  • AVPlayer 实现原理、数据缓存

  • OpenGL ES 处理流程

  • 硬编、软编

  • 直播整体流程

  • 滤镜实现原理


然后回去让我等通知,说一周内。


抖音 业务岗

----

主观评价:吐槽下,猎头给我很多面试题,让我背,结果一个都没遇到; 希望大家遇到一个好的面试官


  • 大数相加

  • 树的遍历(递归,队列两种方式)

  • 事件响应机制(传递链、响应链、手势)


算法写出来了但花了 50 分钟,然后一个小时就过去了,我。。。能力不足,leetcode 还要继续。


天真互动


主观评价:这家虽然是创业公司,有三面,算上 HR 是 4 面,最后一面我感觉面试官水平超高,应该是个大神,被虐,但还是拿到了他家的 offer。


  • xcode 证书校验过程

  • json 转 model 实现

  • 动态库静态库区别

  • 用纯 AVFoundation 框架,向视频中加入一个水印怎么做

  • GPUImag 框架介绍

  • 网络如何优化

  • camke 用法

  • 视频从采集到显示,最终写入文件流程

  • AVPlayer 缓存技术

  • 视频如何 2 倍播放,2 倍速导出

  • charles 原理

  • samplebuffer 与 pixelbuffer 区别

  • CMTime 结构


这个人的问题专业程度不逊于 360。


最右

----

一面


  • crash 崩溃怎么解,崩溃到底层代码

  • AVplayer 遍播遍下载

  • 如何设计一个网络库


二面


  • FBO、H264、GPUImage3、

  • 大图加载、PCM 计算时间、

  • 如何实现分割滤镜、

  • 音视频编码

美术宝


----


主观评价:我感觉是最高效的,简洁


  • kvo

  • block

  • notification

  • runloop

  • 二面有个算法题


两次面试加一起 50 分钟,然后就发 offer,牛。


其他公司


----


主观评价:大小公司都会有算法,有的用牛客网,有的用 leetcode,纯手撸,无提示。


  • NSCache 应用场景 与 NSDictionary 区别

  • git 工作流

  • 常见的锁,哪个性能最差,以及原因

  • app 逆向分析

  • leak 工具使用

  • charles 原理

  • http 与 https 区别

  • 组件化思路

  • 持续集成方案

  • copy、assign 区别

  • 内存对齐

  • sel、_cmd、isa

  • Tagged pointer

  • 剪刀石头布

  • 最长不重复字符串

  • 大量的数字排序

  • leetcode 32

  • leetcode 1237

  • leetcode 828

  • leetcode 283

  • leetcode j67

  • leetcode 116

  • 函数调用机制

  • 消息转发

  • h5、js

总结


----


iOS 底层:


  • kvo、

  • runtime、

  • kvc、

  • notification、

  • runloop、

  • 关键字(copy、assign、strong)、

  • block、

  • GCD


其实东西不多,理解底层对于记忆规则,有很大帮助。建议源码和《iOS 和 OS X 多线程和内存管理》一起看,以及一些大神的文章


音视频方向:


  • 从 AVFoundation 入手,然后 GPUImage,在然后 OpenGL ES、MetalKit

  • ffmpeg、opencv

  • c\c++

  • rtmp、webrtc


其他:


  • 组件化

  • 设计模式与原则

  • 网络

  • 持续集成

  • 团队协作流程


面试没有遇到 Swift 的问题,有点意外,这次面试,大约有一半使用 swift,有一家纯 swift 开发,其余都是混编,或者有业务线是 swift。


建议大家先找到工作再辞职,除非工作太忙,没时间。


----


关于 Swift

swift 我也准备了,预计明年,swift 相关的问题会爆发出来


  • 泛型约束

  • 关联类型

  • 类型擦除

  • where 使用

  • codable 如何实现 key 映射

  • AnyIterator

  • sequence

  • indexable

  • collection

  • map、filter、reduce、sorted

  • 如何实现链式编程(snapkit)

  • 函数派发机制(class、struct、extension、protocol)

  • kvo 失效怎么办

  • 内存管理 pwt、vwt

  • 内存,统一类型的变量可选值与非选值内存有什么区别


资料推荐


如果你正在跳槽或者正准备跳槽不妨动动小手,添加一下咱们的交流群1012951431来获取一份详细的大厂面试资料为你的跳槽多添一份保障。


用户头像

iOSer

关注

微信搜索添加微信 mayday1739 进微信群哦 2020.09.12 加入

更多大厂面试资料进企鹅群931542608

评论

发布
暂无评论
iOS面试梳理 - 2020年8月初