前言
这段时间共持续了四个月,总共投了 19 家公司,有几家挂在了不同的阶段,最后拿到了 8 家的 offer,这段时间里面了几十场面试,大多数面试的问题都懒得做记载了,在此记录一些大概的问题走向、一些面试常见的问题以及一丢丢面试技巧供大家参考。
一、四个月战况
投递统计(统计了一下,这四个月共向以下 19 个公司投递了简历,共拿了 8 个 offer)
- 一线大厂:字节、百度、腾讯、拼多多
- 准一线大厂:***、华为、快手、美团、图森未来、京东、猿辅导
- 二线小厂:TP-Link、招银科技、深信服、b站
- 国企:中电 29 所、国电南自、农行
- 外企:shopee(算半个外企吧)
二、面试情况
挂在简历筛选的公司
- 只招与需求极度相符的人:b站、图森未来
- 要求没达到:农行(英语六级没过)
- 未知理由:京东(听说面试都挺迷的)
挂在机试的公司
机试一般有性格评测和笔试两部分,性格评测主要是性格测试题+阅读理解+小学奥数+找规律+图表题,大概30min完成。
- 性格评测挂了:拼多多(忘做了)、华为实习生(挂了被捞了)
- 笔试挂了:(应该是和简历综合评判之后觉得不符合)
挂在面试的公司
- 实习生面试挂太多了:腾讯(之前实习生面试挂了三次,估计评分很低)
- 只招与需求极度相符的人:shopee(后端岗疯狂问用过哪些后端框架,不问基础和C++)
- 面试累了,鸽了面试:快手、猿辅导
- 自己拒了:中电 29 所(研究方向不符)
收割 offer
- TP-Link:6 月就开始秋招提前批,公司有 985 情结,面试基本就聊天,很容易就过了,在北京工资不高,并且无加班费
- 字节:典型的挂了又捞,捞了有挂,经历了安全岗简历挂和一面挂,被广告部门捞起来,技术面三轮 +hr面拿 offer
- 深信服:机缘巧合投的大牛批,一面很水,二面是正常技术面,三面主管面很契合项目方向,拿了 ssp
- 招银科技:调过电话面(摸底),两轮技术面,问的东西都很浅,范围还比较广
- 国电南自:一面技术面,比较简单,三天发 offer,本科生薪资低,还需要出差
- 百度:无人车部门两面挂,语音识别部门三轮技术面+一轮主管面,跟字节类似,主管画技术饼
- 华为(待安排):实习生过了所以免笔试,一轮技术面+主管面,基本聊天,但 offer 下发周期长
- 美团点评(待安排):三轮技术面不是很难,hr面后两个月不给结果,估计是 hc 少,池子深
三、面试总结
由于大部分公司都是投的提前批,所以很少有笔试,面试一般是 2-5 轮,摸底面+技术面+主管面+hr面,侧重点各不相同。
摸底面
摸底面也就是很多公司的电话面,比如招银科技、国电南自,一般时间不会很长,大概在 10-20 分钟之间,主要是自我介绍+项目经历简介,有的会有一些常见的基础题,比如 TCP 为什么三次握手这种。只要有一定的准备,电话面基本都不会挂,有的公司如果你简历 or 笔试表现好会跳过这个环节。
技术面
技术面是面试流程中的核心环节,主要考察我们对计算机基础知识的掌握程度,一般会涉及计网、操作系统/Android、数据库,部分会问到编译原理这种比较偏向计算机专业的问题。
一般公司的技术面为 2-3 轮,主要模式都大概相似,开始自我介绍,紧接着问一些基础知识相关的问题 or 项目相关的技术问题,最后是 1-2 道现场编程题,也有的公司会先上来让你写题,后续根据你的表现来决定问什么问题。
主管面
并不是所有公司都有主管面,一般是部门直招 or 你前面面试表现较好,可能有 sp 的情况下才会有主管面试,一般主管的级别越高就说明你的评级越高。
主管面并不会拘泥于具体的技术问题,在你的自我介绍后,主管喜欢针对项目进行提问,主要是考察你对自己所做项目的掌握程度,并且很多时候会问到一些与人沟通相处相关的问题,比如如果组员之间出现了意见分歧你们会怎么办,另一方面,你印象最深的一次项目经历也是常问的问题,这些都是需要提前准备好的。
在主管面的时候我会更多的讲一些自己的学生工作,领导项目 or 组织活动的经历,当然这种经历最好是与技术挂钩的。以及与主管讨论编程规范,自动化测试、软件工程、测试驱动开发,或者项目管理等问题也是正中他们要害的,并且一定要多问,一般主管们很喜欢给新人讲这些,给他们机会,装作很感兴趣的样子。
hr 面
hr面一般就直接确认 offer 或者谈薪了,极少见到 hr 面还刷人的(听说京东和阿里会),一般 hr 会问你一些基本的家庭和学习情况,以及你现在拿了哪些 offer。
在 hr 面自己也可以问一问公司的一些情况,比如薪资结构,五险一金,加班情况,加班费计算,升职加薪的规章制度,年假安排等,这些都是需要提前了解并且纳入 offer 考虑范围的,不过薪资才是硬道理。
四、知识点总结
实际上在实习生阶段已经整理了很多被问到的问题以及部分问题写了一下自己的解答(还有很大一部分坑没填呢),秋招阶段感觉其实万变不离其宗,问来问去都是那么几个问题,所以就没做记录了。在此依据记忆在几个主要的方向写出几个最常见的问题吧。
计算机网络
- 简述从输入网址到浏览器显示的过程
- TCP 为什么是三次握手四次挥手
- TCP 如何保障数据包有效
- HTTPS 和 HTTP 的区别
操作系统/Android
- Android消息机制
- Android View绘制流程,当一个TextView的实例调用setText()方法后执行了什么
- Android dalvik虚拟机和Art虚拟机的优化升级点
- Android屏幕渲染机制
- 热修复的原理,你都了解过哪几种热修复框架
- OkHttp的原理
- Android 线程池的实现原理
- JavaGC机制
- HashMap的实现机制,怎么样HashMap线程安全
- 可重入锁的实现,公平锁非公平锁都是什么定义?
- 都用过那些常用的数据结构,说说对树的了解?
- Activity启动模式,allowReparent的特点和栈亲和性
- WebView优化
- 有没有Jni使用经验
- 有使用过RxJava吗?
- 说说你对设计模式的理解,开发过程中主要用到了哪些设计模式?
- 快排写一下,动态规划了解吗
数据库
- 简述关系型数据库与菲关系形数据库的区别与联系
- 简述数据库的事务
五、为了面对这次段时间的面试,我是这样准备的
准备一份好的简历(敲门砖,不会包装简历的程序员只能去外包)
程序员的简历一定要多下一些功夫,尤其是对一些字眼要再三斟酌,如“精通、熟悉、了解”这三者的区别一定要区分清楚,否则就是在给自己挖坑了。当然不会包装,我可以将我的简历给你参考参考,如果还不够,那下面这些简历模板任你挑选:
注:需要文中简历模板和详情资料的小伙伴可以直接去文末领取。
同时在现在竞争这么激烈的情况下,只有通过不断学习,提高自己,才能保持竞争力。
我将自己多年的工作经验心得、Android架构详细路线、学习资料,全套学习视频全部在下面分享出来。如有需要可在文末自行领取,无偿分享。
1.Jetpack架构组件从入门到精通
- Android Jetpack - Navigation
- Android Jetpack - Data Binding
- Android Jetpack - ViewModel & LiveData
- Android Jetpack - Room
- Android Jetpack - Paging
- Android Jetpack - WorkManger
- Android Jetpack架构组件之Lifecycle
- Android Jetpack Compose 最全上手指南
2.Framework精编内核解析
- 主要内容包含:
深入解析Binder
深入解析Handler
Dalvik VM 进程系统
深入解析 WMS
PackagerManagerService
3.Kotlin强化实战(附Demo)
- 第一章 Kotlin入门教程
- 第二章 Kotlin 实战避坑指南
- 第三章 项目实战《Kotlin Jetpack 实战》
- 从一个膜拜大神的 Demo 开始
Kotlin 写 Gradle 脚本是一种什么体验?
Kotlin 编程的三重境界
Kotlin 高阶函数
Kotlin 泛型
Kotlin 扩展
Kotlin 委托
协程“不为人知”的调试技巧
图解协程:suspend
4.Android设计思想解读开源框架
- 热修复
- 插件化
- 组件化框架设计
- 图片加载框架
- 网络请求框架
- RXJava 响应式编程框架设计
- IOC 架构设计
- Android架构组件Jetpack
5.NDK模块开发
- NDK 模块开发
- JNI 模块
- Native 开发工具
- Linux 编程
- 底层图片处理
- 音视频开发
- 机器学习
6.深入理解Android插件化技术(附Demo)
- 第一章 插件化技术的前世今生
- 第二章 插件化原理
- 第三章 Android插件化初探
- 第四章 架构演化(大厂篇)
360插件开发之DroidPlugin
滴滴VirtualApk实战
基于VirtualAPK Android重构之插件化
爱奇艺插件化原理分析之 Neptune框架
腾讯插件化框架 Shadow项目解析
7.高级Android组件化强化实战(附源码)
- 第一章 Android组件化初识
- 第二章 Android组件化初探目录
- 第三章 架构演化(大厂篇)
从智行 Android 项目看组件化架构实践
得到 App
微信 App
蘑菇街 App
爱奇艺 App
美团 App
携程App
支付宝 App
…
六、个人感受
我感觉在技术面阶段实际上主要不在于你是不是都会,更好的实际上是你在某一两个问题上了解的特别详细,或者有项目经历,能跟面试官聊很久,这样在面试中就可以把面试官带到自己的点上,比如在面试官问网址访问过程的时候,我会讲的特别详细,并且把 HTTPS 和 HTTP 留在最后,通过 HTTPS 延伸到逆向工程中的一些密码学问题或者延伸到中间人攻击,这些常常会让面试官眼前一亮。
另外我感觉问面试官对自己的评价 or 自己哪些位置做的不好这种问题还是谨慎,如果自己表现得很完美就可以问问,不然面试官也不可能一直夸你,一般只会简单夸一下,然后绞尽脑汁想一想你有哪些位置做的不好,这就无形中提醒了他你的缺点。
同时上述如有需要参考的可以直接去我 Gitee 访问查阅,希望能帮助到大家学习提升。
最后,祝想找工作的同学都能去自己心仪的公司,前程似锦!