程序员

这算得上是“凡尔赛”吗?,Android岗:字节跳动3面+腾讯6

2021-01-26  本文已影响0人  Android阿南

写在开头的闲言碎语

2020年过去了,对很多人来说,这一年经历了太多太多,可能是十年来记忆里比较浓墨重彩的一笔。过去的一年里,“熬”算是这个阶段我的关键字,确实太多时候就要放弃,好在自己“熬”过去了,在新的2021年里,也有个一个非常好的开端,我收获了心仪的offer。

简单来说,就如标题一样,我今天也想要凡尔赛一次,原来大厂的面试也没有想象中的那么难,字节跳动3面+腾讯6面,就这么一次性过了,下面就细细聊聊我的大厂面经吧,希望能够给金三银四要面试的朋友提供一些经验。

PART1:字节跳动3轮面试场景重现

——字节跳动第一面:

第一面相对来说肯定要简单一些的,所以整个过程中心态是放得比较平稳的,没有太多紧张感,这一轮主要是考察基础,然后会问一些项目相关的问题。

一面(面试官很nice,问的问题基本上宽而浅):

Android相关

  1. Activity的生命周期

(1)基础知识

(2)考点

  1. View的事件分发的过程

  2. View绘制的过程

  3. picasso的实现原理

5.EventBus的实现原理

6.binder的实现原理

计算机网络相关

  1. HTTP协议

  2. 常见的加密协议

  1. 常见的压缩协议

JAVA相关

  1. 单例模式(很重要)

  2. 多线程

  1. JAVA的内存模型

  2. synchronize和volite关键字和原理

  3. HashMap和LinkedHashMap的实现原理,LRUCache的实现原理

`if` `(e.hash == hash &&((k = e.key) == key || (key !=` `null` `&& key.equals(k))))`

算法

  1. 数组中超过一半出现的数字

  2. 其他都是场景题,不具有代表性,临场发挥的

——字节跳动第二面:

二面的面试官,问的比较广。但是似乎不是很注重细节。我在这儿吃亏了,感觉他 不注重细节,就没讲。导致他问了我一堆问题。重点还是对于知识点
1)你要一点不懂,就直接跟他说不懂;
2)要懂一点可以告诉他你不太了解,但是可以猜怎么实现的;
3)对于他题给你的场景题,你一定不能轻易放弃,不会要赶紧与他交换思路,根据他的提示尽力去解决问题,这个很重要,因为这考的就是你临场反应能力和对知识点的应用能力还有学习能力

——字节跳动第三面:

三面的面试官一般会让你讲项目,我就将论文里面的东西。这个你最好是,讲一下项目的背景,还有项目中遇到的困难,以及自己如何去克服的。然后就是专业知识了。重点还是,不会想想之后让他提示,顺着他的思路去解决问题。

PART2:腾讯6面场景重现

——腾讯一面:

上来就讲项目,问我最近在做哪一个项目
我就说简输了。
他问 项目难点
我说 报文解析

  1. 你知道cookie是什么吗.
  2. 有考虑过安全问题吗,没有
  3. KMP算法讲讲
  4. 线程池优化,怎么优化 (哦,设个参数咯就是,我说 对的)
  5. 线程怎么运行,线程池原理(他问的是线程是怎么跑起来的,系统什么调度,我说操作系统做的吧,我懵逼,IOS感觉跟ANDROID差好多)
  6. 线程能访问主线程的变量吗, 主线程能访问其他线程变量吗? 能,一般不会, 这点追着问
    线程变量放哪里,别人怎么用,知道线程私有变量吗?(Ios跟Android貌似不太一样)
  7. Kotlin DSL是什么意思 (解释了好久他好像没听明白)

——腾讯二面(笔试):

考察具体岗位的技术栈语言的基础知识,题目不难,要求基础扎实和广度,文中不过多赘述,大致题目整理到pdf文档里。

——腾讯三面+四面(技术组长面):

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

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

这两面的面试官应该是技术总监,面试难度应该是这一套流程里最大的,主要考察面试者的两个方面,包括讲优化,和高级UI,需要面试者对于技术知识有比较深度的理解和认识。

①针对系统设计提问:

②针对HTTPS进行提问:

③开放性问题:

PART3:我是如何准备面试的?

①准备简历(敲门砖,不会包装简历的程序员只能去外包)

程序员的简历一定要多下一些功夫,尤其是对一些字眼要再三斟酌,如“精通、熟悉、了解”这三者的区别一定要区分清楚,否则就是在给自己挖坑了。当然不会包装,我可以将我的简历给你参考参考,如果还不够,那下面这些简历模板任你挑选:

②了解面试公司,做好功课,知道问什么

③梳理知识体系,学会举一反三

实际上,梳理知识体系是最简单的事,但很多开发小白总是一头雾水,实际上从第二点的大厂面试点就可以总结梳理出来我们应该要学什么,要掌握什么,通常我的方法是“大厂面试点”+“工作年限”来梳理自己接下来的学习及发展路线图。

之后,就需要根据路线图上的重点去进行有针对性的学习,在学习过程中,学会举一反三,学会写笔记,做总结。

这里我分享我个人的一些笔记内容吧:

④刷面试题

刷题的重要性,我想不用多说。对于应届生或工作年限不长的人来说,刷面试题一方面能够尽可能地快速自己对某个技术点的理解,另一方面在面试时,有一定几率被问到相同或相似题,另外或多或少也能够为自己面试增加一些自信心,可见适当的刷题是很有必要的。

写在最后的总结

最后想说的是,2021年的金三银四一眨眼也要到了,对于很多人来说是跳槽的好机会,大厂面试远没有我们想的那么困难,摆好心态,做好准备,你也可以的。

另外,面试中遇到不会的问题不妨尝试讲讲自己的思路,因为有些问题不是考察我们的编程能力,而是逻辑思维表达能力;最后平时要进行自我分析与评价,做好职业规划,不断摸索,提高自己的编程能力和抽象思维能力。

以上文章中,提及到的所有的笔记内容、面试题等资料,均可以免费分享给大家学习,可以点此处进入快速入手通道。

更多Android架构相关资料可以点此处获取。

整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

你的支持,我的动力;祝各位前程似锦,offer不断!!!

上一篇下一篇

猜你喜欢

热点阅读