闭关一个月,终于拿下腾讯Android工程师offer!

前言

为什么要尽量让自己进大厂?

如果毕业就进了大厂,那你将得到业内大牛的指导,以及随处可见的技术碰撞。新技术的跟进也是非常快的,在这样的环境中,你的技术成长自然是非常快的。如果自己足够努力,用不了三年,你可能也将会跟他们水平差不多。

所以,明白这一点的我,很早就已经立下志愿,目标是Android工程师。经过我的努力,付出就是有回报的,我总算进入了腾讯工作。下面分享一下我自己的面经。

img

面试经历

——腾讯一面:

①针对微服务进行提问:

  • 微服务架构
  • 框架的实现
  • 服务治理
  • 分布式一致性

②日志监控系统:

  • 考察架构、ELK相关知识,重点要描述ELK的一些架构原理,如倒排索引的原理等;

③消息队列:

  • Kafka中消息可以被多个消费者消费吗?
  • 选举机制
  • HW机制

④数据库和Redis相关:

  • 索引的原理
  • 几种事务的区别
  • 数据结构
  • 延时队列如何实现
  • 分布式锁原理

⑤其他开放问题:

  • 开放问题,不过多描述,如项目中遇到的问题,如何解决的?描述生产过程中运行的问题,并描述排查问题。

——腾讯二面(笔试):

考察具体岗位的技术栈语言的基础知识,题目不难,要求基础扎实和广度,文中不过多赘述。 ——腾讯三面+四面(技术组长面):

腾讯的三面和四面都是技术组长来面的,这个阶段相对来说还是比较紧张的,面试内容则主要是聊解题的思路以及项目经验,考察个人对于技术掌握的一个广度,涉及到比较多的架构设计。

  • 项目
  • 开放性题:解题思路、同事之间的协作问题。
  • 负载均衡
  • 算法
  • ngnix如何做限流?
  • 四层LVS和七层Ngnix的区别
  • 微服务架构的设计思路

——腾讯五面+六面(技术总监面):

这两面的面试官应该是技术总监,面试难度应该是这一套流程里最大的,主要考察面试者的两个方面,包括系统设计和架构设计,需要面试者对于技术知识有比较深度的理解和认识。

①针对系统设计提问:

  • 秒杀系统如何设计?分接入层、接口层、消息队列层、逻辑层四个方面讲解,接入层可以做服务治理相关事情,接口层做抢购开关、黑白名单、随机拒绝等处理,逻辑层具体抢购逻辑实现,涉及到redis分布式锁以及DB和Redis的一致性问题。
  • 分布式事务的几种实现。重点讨论了这几种实现的区别,面试官要求我画出基于可靠消息服务的消息队列实现分布式事务架构图,然后对上游服务和下游服务如何保证消息可靠性和一致性。

②针对微服务架构进行提问:

  • 服务拆分的原则
  • RPC框架原理
  • 配置管理(etcd)的一致性协议raft选举原理

③其他:

  • 服务治理
  • 服务限流算法
  • 服务降级的指标和恢复指标
  • 服务熔断

④开放性问题:

  • 在项目中,你印象中遇到的印象最深的一个难题,如何解决的?
  • 在面试过程中,你觉得面试官问的哪个问题让你印象最深,为什么?
  • 生活中有遇到过什么困难吗?

总结

每家公司都有自己的选择标准,我们当然需要迎合公司的要求,但是如果没有技术,一切都是空谈,在具体的面试提问上,我们可以顺着面试官想要的答案上去靠,这就需要我们具备扎实的专业知识,所以大家一定要好好准备,加油!

#android##面试日常[话题]#
全部评论
android面试都开始问后端了吗?这个太假了吧
点赞 回复 分享
发布于 2023-08-18 12:17 陕西
想问下安卓的学历路线,网上关于这方面的有点少
点赞 回复 分享
发布于 2023-02-07 18:00 河南

相关推荐

HR_丸山彩同学:你的项目描述里,系统设计讲了很多:MemCube是什么、三级存储架构怎么设计、四种遗忘策略分别是什么。这些面试的时候讲没问题,但简历上不需要这么细。 简历要突出的是影响力,不是实现细节。面试官看简历的时候想知道的是「这个项目有多大价值」,不是「这个项目具体怎么实现的」。实现细节是面试时候聊的 怎么改:技术细节可以精简为一句「采用三级存储架构+四种遗忘策略」,把省出来的篇幅用来写影响力。比如:项目有没有开源?有没有写成技术博客?有没有被别人使用过? 校园经历没有任何信息量,任何人都可以写这句话,写了等于没写。更关键的是,你投的是技术岗,校园活动经历本来就不是加分项。如果非要写,必须写出具体的数字和成果。如果你没有这些数字,那就老老实实删掉 「端到端耗时缩减30-40%」要给出确切数字和绝对值。从1000ms降到600ms是降了40%,从100ms降到60ms也是降了40%,但这两个含义完全不一样。其他也是,涉及到数据,准备好证据,口径统一,面试会问 「熟练」「熟悉」「了解」混在一起用,读起来很乱。而且「了解前端需求」最好改成「具备前后端协作经验」
点赞 评论 收藏
分享
评论
3
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务