拼多多七月启动了一个学霸批提前招聘,本不是学霸的我也跟在后面混了下。学霸批安排的是现场面试,个人觉得现场面试更好一点。因为可以和面试官聊聊天什么的,不会像视频面那样太压抑。
这个批次的校招大多是985、211的硕士,好多人都是报的算法岗(至少南京地区是这样)。而我报的客户端研发岗人相对少了很多,所以面试间隔也就很短,基本上是一轮面完直接下一轮。
笔试
笔试还是常规的牛客网在线笔试。客户端岗的笔试把Android和IOS相关题目合并了,需要两个方面都考。题型是单选10题、多选5题、编程3题。
笔试有部分IOS的选择题不会写,编程题的话AC两题。据说拼多多学霸批对于笔试的要求还挺高的,我的笔试得分可能刚好满足要求。
一面
首先是自我介绍,简单讲了下项目经验、个人收获(常规套路)。后续就是边聊天边提问,面试过程比较放松。下面简单罗列一下一面涉及到的问题:
HTTP的工作原理?HTTP和HTTPS的区别?
本来这个问题面试官就是想问HTTP的原理,但由于我并不了解,所以就引导面试官去问HTTPS,避开了个人盲区。常规后台API开发的主流框架?
简单讲了一下Spring、Spring Boot、MyBatis、JPA这类主流框架。讲一下你在项目开发过程中会做哪些测试
聊了下系统测试、单元测试,讲了一些边界测试等常用测试方法。
说实话问这个问题的时候有点懵,有点没反应过来。操作系统内进程和线程的区别?
单核CPU是否会出现线程安全问题?
Activity和Fragment的区别?
讲一下你常用的几种布局
什么是ANR?开发中如何避免?
ANR就是Application Not Responding,主要出现在主线程阻塞等情况下。
规避方法回答了多线程编程。(后续看了下还有防死锁等)Android进程间通信机制
Android进程间通信(IPC)讲一下Bundle的实现原理
通过Launcher启动APP时,系统如何运行?
讲讲TCP/IP五层模型?
TCP、UDP的区别?
手写二叉树层级扫描算法
二面
二面的面试官应该是一个项目经理,和他复盘了我简历上写的每一个项目。这一面的问题大多是偏向工程类、设计类的,提问也同样是边聊天边提问。下面罗列一下主要问题(面试时其实还会问一些小的细节,我就不列了):
APP研发需要经过哪些过程?
这个问题我倒没有直接回答常规项目开发流程(需求分析、概要设计、详细设计、编码、测试),而是直接从UE、UI之类的聊起来了,然后给面试官演示了一下个人设计并研发的APP。绘制一下***的数据库设计视图(这里指定了一个个人开发项目)
简单画了一下项目的数据库视图,讲了一下表间关联关系。讲一下实际项目中进程间通信的应用场景
讲一下客户端和服务端如何实现数据同步
回答了一下增量同步、全量同步两种同步方法。简述了一下如何设计一个增量同步方案。HTTP和HTTPS的区别?
BLE蓝牙和传统蓝牙的区别?
如何实现BLE蓝牙的设备连接和通信建立?
手写和最大子序列算法
HR面
HR面就是比较常规的聊聊天,主要会了解一下这几个方面:
- 期望工作地点
- 个人发展方向
- 公司待遇
- 薪资
总结
因为本次是现场面试,所以过程中比较放松,主要的问题都回答上来了,不怎么了解的问题也尽可能的去从别的角度回到了,总得来说还算可以。但是操作系统、Android偏低层的原理这两个方面还比较弱。
但愿这次能从众多硕士大佬们中间虎口夺食,拿到秋招第一份Offer。