Android三非实习面筋:3轮面试,终与字节无缘,结束了,被焦虑支配的120天...

Posted Android-until

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android三非实习面筋:3轮面试,终与字节无缘,结束了,被焦虑支配的120天...相关的知识,希望对你有一定的参考价值。

结束了,被焦虑支配的120天

就在前几天6月28日,询问 hr 后,字节三面没有通过,我的找实习之路也结束了,从3月1日开始投递简历到6月28日,算算日子正好 120 天,我也终于结束这被焦虑的支配的时光,这一路走下来,我也就剩下这篇面试面经了,记录着我的心酸泪啊...

面试这个四个月,真的是担惊受怕、坐立不安、上蹿下跳的,睡睡觉突然就醒了,想到面试官当时想问的是啥了,然后就开始辗转反侧、彻夜难眠...

三月一号,最开始在 BOSS 上投简历,发消息,已读,没人回复,开始修改话术,发链接,有几两家开始收我的简历,过了五六天然后收到了一个电话面吧,当时内心好的难受,开始自我质疑,我是那不行那,这不行,这也不行,那好像也不行,哪哪都不行。面试机会都没有,因为这个事,我室友找我出去吃烧烤,我主动喝了七瓶啤酒,回去哇哇吐🤮,虽然我是东北人,但我真的不爱喝酒,出去都躲酒的那种。过了几天收到第一个视频面试腾讯会议,半个多小时吧,问点问题写写代码,3月25日收到了自己第一个 offer,心情稍微高涨一点。

四月一号,做了携程的笔试,然后面试,二面结束,越复盘越心痛,这一段蓝桥杯和PTA备赛,本来就头疼,面试又挂了,直接裂开,因为很多大公司校招都开启了,我都投了,大多初筛都没过,就携程一个到面试环节,结果我还完犊子的给挂了,又崩了,我室友叫我吃饭又喝,这啥酒啊,一瓶喝的我直迷糊,喝完酒睡一觉,精神也好一点了,继续备赛吧,过了一段时间逛逛牛客,有同学和我差不多时间面试状态变到 hr 了,我也不死心去查查,我也变成 hr 面试中了,突然好开心,结果人家过几天 OC 了,我被扔进人才池了。

到五一了,比赛结束了,不行我还得找工作啊,五一那五天假不知道投了多少份简历,假期一结束一堆面试邀约,竟然还有几个做岗前培训的,啥嘛,好未来在实习僧上投递也通过了,我在官网内推好几次都没过,奇安信BOSS投的也过了,结果奇安信招的应届生,好未来问我学历问题,我说要专生本,面试反馈三年后正式录用有风险不建议录用,当然计算机基础有待加强。我当时人都傻,一天两家都没了,CVTE 笔试也过了,开始约面试,这公司流程好慢,滴滴(实习僧)和图森未来(脉脉),图森算法没答对,技术栈不匹配,一面都没通过,滴滴是我第一个知名互联网offer吧也是唯一一个,过了几天好未来另一个部门约面试,hr和我说面试通过了,等 offer 吧,然后就没信了,CVTE hr面也凉了

六月了,在牛客网看到百度招聘就直接发的邮箱,回复他们部门招满了,把我推给别的部门,晚上 hr 约面试,我参加蓝桥杯就是为了这个企业绿色就业通道里面有百度,想要面试机会,这国赛还没比机会就来了,好开心,结果面试结束了,戏剧性的一幕又来了,面试刚结束没几分钟,面试官问我愿不愿意以另一种方式加入他们,这正式就变外包了,我简历不仅没藏学历,还单独列个教育经历还写在简历最上方,就怕出现这种事,结果还是出现了,第二天字节这边内推通过了,BOSS 上投递的简历,牛客网上看到内推人的微信,加了询问进度,挂了,内推人打电话简单询问简历情况,又捞了我一下,才有这个面试机会,感觉字节面试的压力和难度确实要比别的公司大很多,没想到三面能通过,毕竟那个异步调度器写那么久还没写对,学历问题 offer 批不下来,不过 hr 说在群里推荐了一下,我就又被别的部门捞起,这个部门一二面都一个多小时,面完心都哇凉哇凉的,根本没想到能过,到三面,感觉没问我什么,挂掉了,我水平太差了,面试官对我不感兴趣吧,这次挂掉,说实话不心痛,反而很释怀,面试吗毕竟还是一个双向选择的过程。

虽然这一路挺艰辛,也不知道自己下一步是迈向哪里,但是在心态和技术上让我成长了很多,回头看来我还算是挺幸运的吧。

字节3轮技术面+一轮HR面

技术面一面(时长47分钟)

有些问题忘记了,记忆中就只有这些内容

  • 自我介绍
  • 项目有没有上线
  • 项目难点
  • DialogFragment 内存泄漏的定位过程
  • Leakcanary 的原理
  • Handler 介绍一下
  • Handler 内存泄漏说一下
  • 说一下设计模式
  • 手写单例
  • 算法:[112. 路径总和](javascript:void(0);)

技术面二面(时长48分钟)

  • 自我介绍
  • 介绍一下项目
  • 软件大概样式是怎样
  • 首页是怎样做的
  • 首页下拉刷新是怎么做的?(说了滑动冲突的处理)
  • view 事件分发机制怎样
  • 事件好几层,怎么知道是由哪个控件处理(说了根据触摸的位置啥的,不太了解对不对)
  • 提到了责任链,内部链怎么分发的
  • 怎么判断哪个 view 处理(根据 return true/ false
  • 我们的事件有action_move,action_down,action_cancel,所有的事件都是一层一层往下分发吗(说了不一定,down 被拦截了,后续就收不到其他的事件了,然后提到了 action_cancel 的机制)
  • 我听到你首页用了 recyclerView ,那他一般怎么用?
  • 提到了 adapter
  • adapter 用来干嘛?
  • adapter 中有哪些是主要方法(说了 bindView ,这块不太记得了,说项目中用到的是 BRVAH )
  • 提到了 ListView
  • 为什么用 Rv 不用 Lv(说了1.强制实现 viewHolder (避免 findViewById ) 2.缓存机制)
  • Lv 二级缓存怎么判断这个 View 是他要的?(答了 postion,id
  • 然后问 id 指的是?(这里说忘记了)
  • 四级缓存是怎么找到 view 他要的?(说了 itemType )
  • 如果有相同的 itemType 怎么处理?(说了直接使用任意一个)
  • 如果四级缓存中找不到呢?(说了手动加载)
  • 手动加载是哪里来的?(说了从布局 xml 中定义的 itemtype 中拿的)
  • xml 怎么关联到 Rv (加载代码 inflate 的,不太了解)
  • 堆内存和栈内存区别
  • 5层网络协议包括哪些?
  • tcp 三次握手说一下
  • equals 和 == 区别
  • hashmap 实现原理(说了基本结构,put
  • get 是怎样实现的

智力题:

  • 5升桶,3升桶,水无限,你给我装出4升水

算法:[82. 删除排序链表中的重复元素 II](javascript:void(0);)

技术面三面(时长37分钟)

  • 自我介绍

  • 架构设计主要是什么

  • 说一下你提到的依赖倒置

  • 除了依赖倒置还有什么重要的原则(刚说完单一职责就被打断)

  • MVP注意事项(说了内存泄漏的处理)

  • 内存泄漏的原理

  • 怎么判断内存不能被释放

  • 如何检测内存泄漏(说了线下用 LeakCanary,线上用 Memory profiler,然后自己扯到 DialogFragment 内存泄漏)

  • 打断,问 final 作用(说了修饰类,方法,变量,作用)

  • 非静态内部类引用外部类对象,需要 final 关键字吗?(说了应该用 static ,转为静态内部类,防止内存泄漏)

  • 多线程使用过吗

  • 说一下线程池的使用(刚说了构造方法实现)

  • 核心线程数什么作用(说了线程池的运行流程)

  • 核心线程数和最大线程数的设置(IO 密集型和 CPU 密集型,最大线程数的话,看系统支持的并发量)

  • 一个进程有多少个线程?(说了空间允许的范围内可以一直开辟)

  • 实际上是多少?(说了 2g 分配的空间)

  • 为什么是2g(说了之前看过,具体原理不太清楚)

  • 一个异步任务都开一个线程,还是多个任务开一个线程,你怎么决定开不开?(说了耗时的话就开,不太耗时不开,因为线程切换调度的话,存在一定的开销)

  • 线程安全怎么保证?

  • syncronized 内部原理是什么(说了修饰静态方法和非静态方法,代码块)

  • 修饰静态方法和非静态方法,能够并发执行吗?(可以,因为他们锁的对象不一样,说到了死锁)

  • 死锁的原理是什么?

  • 出现死锁怎么排查(这个不太会,说了用 jvm 中的 jstack )

  • 追问怎么用?(说没用过,只是知道)

  • 问我他的原理是什么?(不太知道,说看 traces.txt ,看堆栈)

  • 怎么安全停止一个线程(说了用 volatile 修饰变量,通过 while(变量),手动设置 true false )

  • volatile 原理是什么?(说了 java 内存模型啥的,修饰特性啥的)

  • 网络了解吗

  • tcp 优点(可靠性,面向连接)

  • 面向连接是什么?(说了计算机通信前建立连接)

  • 面向连接和非面向连接的本质区别是什么?(乱答,不知道)

  • 拥塞控制原理

  • http 与 udp 区别(说了层数)

  • http 请求流程

下面开始聊天了

  • 反问

HR 面

  • 你是周一面的三面,这几天关于面试你是怎么考虑的?
  • 周一面试完,周四周五才给你反馈,有考虑过面试不通过吗

我说周二就给我反馈了

  • 面试感受如何?
  • 你对面试做了什么准备
  • 客户端基础知识方面的话,你是怎么复习和准备的?
  • 有做一些刷题吗?
  • 字节算法这块,难度怎么样
  • 距离毕业还有一年半,你怎么规划这段时间
  • 你们是信息安全专业?应该不是计算机专业的同学吧
  • 你是什么时候考虑转开发
  • 你是大一就打算做开发?还是说进到工作室后,受到师兄的影响才转开发?
  • 介绍一下工作室
  • 配合方式是怎样的?
  • 说一下影响比较深的项目
  • 主要是客户端做?还是前端后台都有?
  • 这个项目你们老师也是怎样评价的?
  • 团队协作有没有遇到比较难推进的时候?
  • 你会主动去配合团队吗
  • 自己学习或者工作,怎么安排时间?
  • 工作的时间占你一天多少时间?
  • 任务你是怎么管理
  • 你的方法论挺好的,你提到的日程管理软件是哪个?
  • 旁边人用哪几个词语评价你
  • 你的优点缺点分别是什么?
  • 有遇到压力特别大的时候吗?
  • 你在学校成绩怎样
  • 你对自己的未来的规划
  • 什么时候能来?能来多久
  • 学校课程怎样
  • 反问

面试字节需要做好哪些准备

通过整个面经就会知道,现在互联网校园招聘技术岗位面试所考察的内容是非常的标准化的

面试流程主要分为三个部分:

  • 字节跳动是非常重视应试同学编程能力的考察的,每轮技术面试都会考察2-3道算法题目。
  • 然后第一轮面试会着重考察候选者的android基础知识,java基础,数据库,操作系统,计算机网络等。
  • 然后后续面试面试官会围绕着候选者的项目进行提问。

要想掌握正确的学习准备方法,最关键的就是要知道面试问的是什么!所有的考试面试其实都有重点可寻的,最忌讳盲目的瞎学准备!

同时这里还要额外说一下,推荐大家去多看面经,并不是让大家只看面经,死记硬背面经,投机取巧。这种只简单被面经的同学面试也是无法通过的。还是要踏踏实实的去多认真学习技术,多看优质的官方技术文档、书籍、博客。

知己知彼,百战百胜。

Android市场需求短期内提升自己

Android方向

关于Android的发展方向这里我归类了如下几类:

1、应用层开发,不限于各种产品,主要还是Android原生开发,主要是各种性能优化。
2、嵌入式开发,不限于各种开发板子,物联网,智能家居,车联网/车载
3、安全开发,不限于各种反逆向,反汇编,寻找安全漏洞
4、音视频开发,不限于直播、点播、音视频通话、音视频会议,短视频等
5、插件化、组件化、热修复开发,不限于自研和使用开源框架集成开发
6、系统开发(Android),不限于Rom维护和FrameWork层定制需求
7、图形图像开发,不限于OpenGL ES,EGL,GLSurfaceView,滤镜,美颜
8、小程序 / 快应用

按照Android 标准面试问题学习

目标明确,字节岗位职责:

如果你想去一家不错的公司,但是目前的硬实力又不到,我觉得还是有必要去努力一下的,技术能力的高低能决定你走多远,平台的高低,能决定你的高度。

如果你通过努力成功进入到了心仪的公司,一定不要懈怠放松,职场成长和新技术学习一样,不进则退。

如何提升技能

首先,对于没有学习方向,知识不体系的人,我把我工作几年整理的学习路线分享给大家,做一个借鉴作用,还不知道怎么学习的人可以直接照着我这个学习路线一个个的去学习,知识不体系的人可以参考下我整理路线的方式,总之希望能够帮到你们!

模块化学习资源

接下来是每个模块我整理出来的文档学习资料,帮助大家更细致化的学习。

《Android汇总复习资料—Java》

《Android汇总复习资料—Android》

《Android汇总复习资料—Android扩展》

《Android汇总复习资料—Kotlin》

《Android汇总复习资料—Flutter》

《Android汇总复习资料—算法》

除了上面的学习路线,还可以额外的配合以下方式学习,效果翻倍~

①看视频进行系统学习

前几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。

另外,我自己也珍藏了好几套视频,有需要的我也可以分享给你。

②读源码,看实战笔记,学习大神思路

“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。

主要内含微信 MMKV 源码、AsyncTask 源码、Volley 源码、Retrofit源码、OkHttp 源码等等。

③面试前夕,刷题冲刺

面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。

关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三:

④2020大厂面试高频知识点

  • 图片
  • 网络和安全机制
  • 数据库
  • 插件化、模块化、组件化、热修复、增量更新、Gradle
  • 架构设计和设计模式
  • 性能优化
  • Android Framework
  • Android优秀三方库源码

以上这些内容均免费分享给大家,需要完整版的朋友,点这里可以看到全部内容。或者点击 【这里】 查看获取方式。

以上是关于Android三非实习面筋:3轮面试,终与字节无缘,结束了,被焦虑支配的120天...的主要内容,如果未能解决你的问题,请参考以下文章

大厂面经:三非背景,6 轮面试,终获阿里 Offer

面经分享字节抖音Android客户端3+1轮已通过

面经分享字节抖音Android客户端3+1轮已通过

面筋: 奇虎360 c++ 后台开发 实习生 面试

字节跳动(抖音)Android客户端实习 3+1 面经

好事多磨!6轮面试后终于拿到字节前端校招offer(内含6轮面经)