二本渣渣,3 年开发,从 web 前端转到 Android 移动端后拿到头条 offer 的心路历程(面试需要积累
以上就是我的唠叨和感慨,进入头条对于很多 985 研究生毕业的人来说,是件不太难的事情,可是对于普通人来说,还是个梦想,所以我稍微记录一下心路历程,给别人以参考。
头条面试流程
简历通过之后,HR 会先跟你打个电话确认,然后发个流程邮件。一轮笔试,三轮技术面试,最后是 HR 面。
在这里要聊一下,头条面试确实很有一套风格:笔试题时间大约只有四十分钟,是 1 个 Java 题,4 个 Android 题,1 个算法,1 个设计,都是经典题型,谁都能写上点东西,这个最考验一个人的水平了,从你答题的深度,可以看出你的水平。
技术面,每一轮时间都在一个小时左右,而且都有 java,Android 和算法,只是侧重点不一样,第一轮是笔试题+基础;第二轮是你简历上写的技术点,不断深入问;第三轮主要是聊你曾经做过的项目,会非常细。最后是 HR,就是常见的提问,主要是收集你的情况,实话实说即可,不要太偏激就好。
关于面试题
头条对于员工的管理是极严格的,这些都是不允许透露的,所以为了不招惹麻烦,我就不能具体说每个题是什么了,实际上除了笔试题,其他说了也没意义,每个面试官都会根据自己的喜好以及你的简历,问出无数种问题,而且技术面足足有三轮,你可以幸运地过一个,不可能连续幸运三次,所以还是好好积累吧。
面试准备
首先,一定要先搭建自己的知识体系,再往里面填充各种东西,才能真正掌握,这个填充过程一定要从点滴做起,面试前才去突击是没多大作用的。
比如这样:
对于 Android 工程师来说,这个越来越成熟的岗位,要求是越来越高了,知识体系大约有十个方面:Java基础,Java虚拟机;Android基础,Android源码;开源库,算法;操作系统,计算机网络;软件工程,设计模式
。
下面举几个最常见的面试问题吧:
Java 基础
final finally finalize 有什么关系
HashMap 原理
编译时注解
Java 虚拟机
按照问到的可能性是大小,类的加载 > JMM > GC > Java 内存分区 > oop-klass > JIT
Android 基础
Activity A 启动 B 之后生命周期
onSaveInstance()和 onNewIntent()调用时机
Android 源码
消息机制
View 的事件处理机制
View 的绘制过程
Activity 启动过程
开源库
OKHttp
Glide
LeakCanary
RxJava 实现原理
算法
树的深度和广度优先遍历(非递归)
100 万个树找最大的 100 个
快排
堆排序
操作系统
进程和线程的区别
多线程的实现方法
异步改同步
生产者消费者模式
手写线程池
计算机网络
七层架构
TCP 的三次握手四次挥手
https 和 http 的区别
软件工程
类图
时序图
如何设计一个项目(往功能性,健壮性,性能性,时间成本四个纬度上套)
设计模式
面向对象七大原则
手写单例
手写观察者
代理模式
总结
总之,北京居不易,而选择理工科的朋友,大多都出身普通,希望大家不要忘本,知识才是改变自身命运的唯一路径。蹉跎这么久,我也是最近两年才渐渐明白这个道理,于是借着这个机会,分享给大家。
最后我在这里分享一下这段时间从朋友,大佬那里收集到的一些 2019-2020BAT 面试真题解析,里面内容很多也很系统,包含了很多内容:Android 基础、Java 基础、Android 源码相关分析、常见的一些原理性问题
等等,可以很好地帮助我们深刻理解 Android 相关知识点的原理以及面试相关知识。
这份资料把大厂面试中常被问到的技术点整理成了 600多页
的 PDF 干货,包知识脉络 + 诸多细节;还有 高级架构技术进阶脑图 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
这里也分享给广大面试同胞们,希望每位程序猿们都能面试成功~
评论