最后的情况(不分时间先后排序) 美团,一面 → 二面 → 三面 → HR面 → Offer 滴滴,一面 → 二面 → HR面 → Offer 微博,一面 → 二面 → 挂 百度,一面 → 二面 → 三面 → 测评 → 主动中止(测评需要做第二次) 字节,一面 → 二面 → 三面 → HR面 → Offer 网易,一面 → 二面 → 主动中止(约三面) 阿里,一面 → 二面 → 主动中止(Base想更换为杭州) 快手,一面 → 二面 → 主动中止(约三面) 腾讯,一面 → 主动中止(约二面,Base为深圳)  PS:主动中止是因为后来Offer已决定并且到达邮箱,希望各位在Offer正式下发前需要保持面试的节奏与流程。 前期准备 技术方面 周期大约是1个月。客户端的技术面试考的比较杂且宽泛,只会牢记八股文是不行的,结合自己的理解很重要。同时,面试官偶尔会考一些诸如“Linux进程之间通信的方法”,“浏览器键入域名到呈现的所有步骤”等问题,如果是一个各方面都了解接触过的开发工程师会比较有优势,毕竟真正的面试的时候就是各显神通。 大概是如下几项: 八股文 基本计算机知识(如操作系统,计算机网络,计算机组成原理等) 额外的开发知识(如Git,Charles抓包原理,依赖注入,组件化等) 场景问答题(如设计一个不进行强引用的容器,设计一个线程安全的数组等) 如果仅讨论八股文,基本上围绕客户端开发的知识点来进行,大约在笔记本上记了不会的约150项内容(约半本厚笔记本的量)。个人比较偏好Github,主要采取针对每个知识点来的“搜+记”的方式,围绕以下几个Repo进行: iOShuyang - Book-Recommanded-Interview ChenYilong - iOSInterviewQuestions Liberalisman - iOS-InterviewQuestions-Collection DevDragonLi - iOSInterviewQuestionsAndDevNotes lzyy - iOS-Developer-Interview-Quesitons 强烈推荐第一个Repo,基本记完2020年份后面就是很多重复的了。 算法方面 周期大约是2-3个月。主要靠刷Leetcode过日子这样子,这里的频率推荐每天3-5题为佳,需要靠足量的题目积累来熟悉解答算法题的基本套路,无他唯手熟尔。 还有,这里有个非常推荐的小Tip:每道题开始读题前直接跑一个秒表开始计时,到完成代码提交题目开始停止计时(不必AC)。基本上Mid难度的题目需要控制在7分钟左右为佳,一开始可能非常难做到这点,但是这项小训练可以环节在面试过程中无效的思考时间流逝。在面试的那种高压环境下(前面甚至可能被技术问题打的七零八落),需要强烈推动自己积极思考。 算法大约是如下几项: ***ing Algorithm Leetcode Master Hot100 剑指Offer Codetop 其中,Hot100做了大概三遍,每次间隔约10天,我也非常推荐大家做好自己的问题管理,每次重新刷的时候通过打钩确认的方式来确认是否自己是真的会解这道题。 上面是Notion做的表格,也可以用其他软件。我把链接放在这里,各位可以Clone一个模板自行取用。https://factual-launch-e1b.notion.site/da4136e0db6b492cac89c715230bde26?v=f8235903f2014bb5b9383efdb4f0f7e6 项目方面 把自己的项目需求总结一下,每个高价值的项目需求,需要总结该如何表述。 如何定义“高价值”,围绕项目需求的一下几点进行评估: 具有前期背景 较长的时间周期跨度 包含难以解决的问题点  含有后期维护策略 跨团队协作交流 如果有一个项目需求占了以上多点,那么恭喜你,你有一个在面试中可以被说道的万金油项目需求。这里需要保留真实可信,不建议过度夸大自己的项目需求,面试官是很容易进行广度和深度上的询问的。 这里顺便贡献下其他老师的人生哲理:      后期面试 时间安排 因为我采取的策略是尽量把时间跨度缩短,所以总时间跨度大约是20天左右,最多的一个周面了10场面试(不含周末)。一般来说,如果要面试以上这么多企业的话建议一个月左右为佳,不要把战线拉的太长,不过也看各位看官姥爷自己的情况啦。 心态调整 心态调整是每个职场人的必修课,我一直想的是不要让任何一个面试官打乱整个面试的规划流程。这部分玄学又玄学,建议从自身角度出发进行考虑,我也不是什么人生相谈的对象,所以各位看官自己琢磨吧。 问题集合 容易被考到的一般性问题 也放一些容易被问到的一般类型问题,对症下药即可: 你最近在业余时间研究那些技术点?可不可以分享一下你的心得?(最近这两天你有学到什么知识/技能么?) 你对自己未来的职业发展有什么想法?(有没有对自己做过职业规划?) 和同事产生矛盾(包括意见分歧),你一般怎么解决?     能不能说一下你的业余精力都花在什么方面,或者介绍一下你的爱好?     学习技术知识通常通过哪些途径?(最近看过的书/文章有哪些?) 遇到疑难问题一般怎么解决? 你最近遇到过的一个技术挑战是什么?怎么解决的?(能不能说一个你印象颇深的技术难点,后来怎么解决的?) 最近有做过比较酷或者比较有挑战的项目么?(有没有在 GitHub 上发布过开源代码,参与过开源项目?) 自身最大优点是什么,怎么证明?     自身最大缺点是什么,怎么证明?     为什么你要看机会?(你离职的原因是什么?) 本次被考到的问题(不分先后) 对象发消息( +消息转发流程 )Swift是怎样调用的呢?( objc继承的c++调用 )多线程的多种( +swift 5.5 )如何保证线程安全以下线程打印的结果是什么(async + sync答得不好)讲一讲离屏渲染离屏渲染如何DEBUGMQTT链接离职的原因未来的职业规划你在团队中的位置你还有什么要问我的吗?跳槽原因GCD优先级CPU调度算法HLS流如何优化直播速度h264帧之间压缩虚拟内存内存页面操作系统进程通信方式12个小球,有一个轻重不一样,称三次RN底层JS相关与同事之间的关系,平时会一起出去玩吗最好的一段经历最坏的一段经历你跳槽想去的公司是怎样的你能在公司干5年,是怎样一家公司,需要具备什么RN和Native和web的区别与优劣多线程主要用什么多个线程结果依赖关系(dispatch_group)为什么不用NSOperation冷启动优化MQTT连接,到线程保活怎么处理,断开重试逻辑如果是RunLoop线程保活怎么做RunLoop还可以用来做什么P2P连接是怎样的读的频率高,写的频率低,怎么做线程安全处理网络UDP的应用与协议快速排序的时间复杂度,是否稳定LRU怎么实现LFU怎么实现深色模式,你是怎么做的猜想APPLE如何实现的,CGColor怎么办,换肤怎么办UIImage怎么办,H5上的Image怎么办,UILabel内部的bgColor和fontColor怎么办RN插件如何调用用户名和其他方法React的设计思想MVVM单向数据流线程的优先级反转自旋锁和互斥锁的区别什么是死锁,举出一个例子数组去重且保持元素顺序设计一个线程安全的数组设计一个不强引用的数组静态库能被hook吗编译的过程,越详细越好输入浏览器到渲染出来的过程,中间用到了什么协议手写LRUAPP启动做了哪些步骤load 调用实际 做了什么,什么时候调用load函数内的方法,耗时,如何取消掉?(Hook?)msgSend的函数查找方法的流程runloop Mode里面有Timer和 source0 + source1(区别)Crash类型设计模式,架构瀑布流category 和 原类 同时调用一个方法,怎么调用响应者链,系统分发到到application,UIView不被点击什么时候(在上层)组件的依赖关系同层组件怎么调用 NSNotification MTMediator CallBack Protocolcopy和mutableCopy区别怎样设计一个Log打点,如何控制带宽组件化的核心是什么进程与线程的区别栈与堆的区别,内存排列五大区KVO原理组件之间通信组件化二进制多线程几种方式,GCD怎么控制并发数量Dispatch_group怎么使用Runtime有哪些用Runtime怎么应用Hook以后只想自己执行,别人不执行使用block需要注意哪些block修饰的变量底层原理属性修饰符有哪些对象用assign修饰会怎么样Atomic和非atomic的区别讲深色模式打点系统,没发出去的打点怎么办,持久化?组件化网络优化讲项目工作中遇到的难点,音视频 + 组件化针对难点有什么改进措施印象最深刻的一个需求属性的关键字,都是怎么用的,属性的本质是什么,为什么atomic无法实现线程安全block使用上的注意点,block分为几类,区别HTTPS的原理HTTP2.0的特性GCDUIView和CALayer的区别UIView响应者链子线程调用UIView+CALayer异步绘制大致流程子线程与主线程区别怎么做到子线程保活source0和source1区别怎么分发到SpringBoard 系统到UIApplicationNSTimer循环引用,property(weak)是否可以打破,NSRunLoopweak strong dance 和 weak 单独写的区别load main initialize的执行顺序load函数是怎样执行的静态库和动态库的区别怎么通过一次判断来证明UIKit是动态库(单例内存地址)怎样监控闪退Crash深色模式你做了什么,类的维护MQTT怎么做的Autoreleasepool有什么用处Scorlleview嵌套手势响应一个单例中的array,dict的线程安全怎么做的信号量和互斥锁的区别数据库怎么进行模糊匹配Js和native怎么交互怎么用js向native发消息Swift写extension,自定map讲RN插件讲RN渲染树,DOM在哪里维护讲比较困难的需求第三方库,sdwebimage机制+细节参与过团队协作吗,如果团队协作中出现了Delay问题怎么解决如何解决发版前的紧急需求问题讲一讲你做的复杂的需求(MP4)你们考虑了数据指标,如何优化转码耗时如何优化下载问题,断点续传 + 并发处理两个线程调用同一个变量,add 100w次,出现什么问题如果是原子的,有可能会引起什么问题内存寄存器上表述?(高速缓存,寄存器axcx寄存器上从内存读较慢,缓存?淘汰算法?对你的整体职业技术能力进行评价内存释放两次,会造成什么问题?操作系统层面如果释放两次,一定会造成异常吗?操作系统用户态和内核态的区别离屏渲染的问题,产生原因在viewdidload内部的NSObject实例对象什么时候被释放,不是autoreleasepool?RunLoop?UIView内部UIButton,超出范围是否响应,为什么响应者链Layoutsubviews何时被调用Category覆盖方法,怎么调用原来的方法哈希表的结构和原理git merge 和 git rebase区别,平时怎么用,优缺点为什么看机会的原因Runtime的理解内存分布,如何判断一个内存地址在哪个区JSON转模型,如何判断类的某个字段是只读的OC类的结构定义深色模式   本次被考到的算法题(不分先后) 16进制转10进制10进制转16进制打印菱形打印200-300的素数大数相乘,889087923 x 1808031803 之类字符串转换,aaabbbcc 转 a3b2c2棋盘方格放3种球,相邻颜色需要不同力扣 39. 组合总和(英文题面)以上就是本次我的本次社招面试分享~PS. 各位姥爷看我码了这么多字的份上打个广告哈~   字节抖音海外TikTok业务扩张期,不限制HCBase上海,北京,深圳,客户端后端前端都有职位全程简历进度跟进,其他部门也可内推,请私信我牛客网或者 wx qs_will 聊一聊哈
点赞 7
评论 2
全部评论

相关推荐

代码飞升:别用口语,后端就写后端,前端就写前端,最后别光后悔
点赞 评论 收藏
分享
tttk_:就是人多。 有的是条件和你差不多然后没在od待过的人。 所以就拿这个筛你了。 就和卡学历一样,人太多了。 从公司角度,这样做节省精力,更方便。 没办法谁叫现在人多呢
第一份工作能做外包吗?
点赞 评论 收藏
分享
驼瑞驰_招募评论官版...:这是要去亚马逊雨林守夜吗?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务