提笔缘由
上半年受邀回学校给学弟学妹们做了一波就业指导。后面收到了很多反馈,也算是得到很多有用的经验,下面做了一些整理,分享给大家。
希望大家可以从中获取一些成功的经验或者失败的教训,在接下来九月和十月的面试季中披荆斩棘,收获满意的offer,为自己加冕。
成功的经验和失败的教训
一些需要记住的点(全重点,切记看完)
1.想冲击大厂的同学一定要记得好好准备一下算法,这块只能靠自己;
【PS:后面会给大家整理一份算法高频刷题资料,时间紧张的朋友可以先照着这份资料刷这些重点,时间充裕的朋友也可以用来查漏补缺。】
2.大厂都喜欢问原理,而不是问你会不会某某技术。建议看课程后多看源码,常用开源框架源码、Handler、Binder源码、性能优化、事件分发机制……
3.常问的技术点大概有: java进阶(jvm、并发)、kotlin基本原理、常用数据结构原理( hashmap. currenthashmap、 数组链表lru)、常用设计模式和六大原则。handler、binder原理 ;常用开源框架原理; View的话主要是事件分发原理和属性动画原理。性能优化也很喜欢问,内存/启动/卡顿……
【PS:嗯,内容比较多,一段话写不完,后文会有专门的模块详细展开来写】
4.平时多看一下大佬写的技术博客,提高自己的面试表达能力,运气好的话,你面试甚至会遇到大佬的博客原题,直接背博客内容就行;
5.可以从别人的面经里面学习,自行查漏补缺(记得对照自己简历上面的技术点,因为简历上没写的一般也不会问);
6.加分点flutter、ndk这些吧
7.新技术要稍微系统的了解一下,比如上面第六点提到的,最好是有上线项目。
重点准备一:算法
推荐大家去看这个:《最短时间搞定算法:字节跳动Android岗算法题考前突击宝典》
对于贪心算法,可能会重点考察以下题目:
- 通配符求值
- 跳跃游戏
- 跳跃游戏II
- 分发糖果
- 判断子序列
- 移掉K位数字
- 分割数