字节跳动面试总结(2019年8月)

个人简介

本人坐标南京,16年毕业,在某一传统行业从事JavaWeb后端开发,三年工作经验。出于技术焦虑、能力成长陷入瓶颈、对体制内的文化和氛围无法适应等原因,决心换个环境和工作,进入互联网行业,继续自己的技术追求之路。19年8月应聘字节跳动公司的后端研发工程师岗位,现对经历的4轮技术面和1轮HR面做个总结。

面试经历

每轮技术面时长40min~1h不等,可能一次一轮面试,也可能两轮连续进行。每轮先以简单的自我介绍开场,然后面试官根据个人的工作经历和技术能力进行提问,最后预留20min~30min时间对一道算法题进行Coding。根据草稿和回忆,整理出不完全的四轮技术面题目如下。

面试题目

第一轮&第二轮

  1. Spring事务传播机制
  2. Spring的注解、IoC、AOP相关问题,包括:私有方法能否进行AOP增强
  3. Redis的内存失效/回收策略
  4. MQ是否存在消息重复的问题
    两道算法题目:
    1)根据用户上线、下线日志,统计最大同时在线人数
    2)根据前序和中序序列构建二叉树

第三轮

  1. 询问是否了解Big Data(由于本人以往工作内容与此完全没有交集,故据实告知没有了解,面试官便作罢转而询问其它方面问题)
  2. OS的内存碎片、内存管理策略
  3. OS的文件系统、文件访问机制
  4. 分布式缓存相关问题,包括Key分布/影射策略、Key不存在时的处理措施
  5. 布隆过滤器的原理
  6. HTTP的典型请求流程
  7. API网关(代理服务器)的功能
    算法题目:
    快速从几十亿个数中判断某个数是否存在;并讨论算法性能优化相关内容。
    备注:在最后向面试官提问环节,面试官给我一个建议,学习和了解大数据相关知识,做后端开发不能对主流/热点技术方向完全不了解,即使这些技术与工作不相关。

第四轮

  1. 谈谈Spring的优势之处
  2. 在工作项目中遇到的技术痛点和应对之策
  3. 谈谈对BlockingQueue的认识,然后实现一个简单的BlockingQueue
  4. 如何一场比赛我的胜率为0.6,那么5局3胜和3局2胜该选哪一种比赛方式?如果5局3胜的胜率为P3,3局2胜的胜率为P2那么推导出7局4胜的胜率P4
  5. 工作中是如何进行学习和技术积累的

HR面

HR面持续30min左右,主要询问了更换工作的原因和想法、目前的薪资状况等问题。

技术面总结

字节跳动的技术面试使用牛客网在线面试平台(面试链接示例:https://people.toutiaocloud.com/recruitment/interview/interviewee/27d0d9c0-aeb5-11e9-a933-98039ba25b3e) ,通过视频与面试官面对面交流,代码在面试平台的开发环境中编写,向面试官实时共享编辑的内容。
经历四轮技术技术面试,感觉字节跳动对候选人的技术要求是比较高的,候选人首先需要熟练掌握与工作经历相关的编程语言、Web框架等个人技术栈,其次对算法、数据结构、操作系统、网络原理等专业知识要有个扎实的基础,尤其是要保持对算法题动手Coding的能力。

经验总结

首先聊聊手写代码。已有几年工作经验的程序员而言往往对算法与数据结构相关基础知识日渐生疏,更何况平时工作内容大都与业务相关,如果不经过刻意的训练很难在20min左右时间快速解答和实现面试中的算法题。另外面试中的算法题以LeetCode上中等难度的算法题为基础和标准,领扣网上有字节跳动算法题库 ,当前335道题目中,111道简单级题目,中等难度的题目170道,困难题目54道。

本人利用一个月左右的工作之余时间,采用在领扣网上刷题(60道左右中等难度题目)和学习《数据结构与算法经典问题解析》(Java语言描述)一书相结合的方式,重新捡起数据结构和算法的知识,训练针对面试算法题的Coding能力并熟悉此过程。个人感觉刷题仅在于熟悉考试时的状态和节奏,关键还是在于扎实掌握数据结构与算法的知识,当然前提条件是平时工作中经常写代码、对手写代码不生疏,否则就需要更多的练习,可以做完领扣网上170道左右中等难度的算法题。
关于基础知识的学习和积累,如果为了准备面试,进行功利性学习,那么对于JavaWeb后端开发技术栈的应聘者,至少要学习和掌握以下书籍中的内容,包括Java语言基础进阶和标准库、Java8新特性、并发多线程编程、Spring框架、Redis缓存组件、Java虚拟机GC相关等知识点。

关于知识和技能的积累,还是应该进行长期学习,最好养成终生学习的习惯。以上书籍,本人是无法做到在短短几个月的时间里利用工作之外的时间全部学习和掌握的;得益于三年前从工作开始之初持续不断的学习和点滴积累,以上书籍基本至少读过两遍,还有照片上未能列举的书目。

除了刻意学习和编码练习,个人平时习惯于结合工作内容进行技术学习,不断尝试将学到的新工具、新技术引入到工作项目中去,比如引入Lambda表达式和流处理、追求编写整洁优雅的代码、制定Java编程规范、持续进行代码重构和软件迭代、采用Redis组件等等。只有学习致用,才能积累实践经验,至少在面试时能够从容应答,有理论知识有实践经验。存在的缺陷便是,由于与工作内容无关,当面试官问到是否了解大数据相关知识时,只能尴尬地回答完全不了解,所幸字节跳动对此还是相当包容的。

附:阿里两轮技术面

字节跳动的面试前后持续了3周左右,期间还经历了阿里巴巴飞猪旅行业务部门的两轮电话技术面。
第一轮面试历时40min,遇到的问题有:

  1. 数据库的乐观锁和悲观锁
  2. JVM的垃圾回收器,实际应用中采用的类型
  3. 多线程并发,volatile关键字
  4. 一致性哈希算法
  5. Redis,集群部署
  6. JDK8相比以前版本作出的改进
  7. 如何在项目组内推动落实编码规范
  8. 平时使用哪些Java诊断工具排查问题

第二轮电话面试历时30min,问题包括消息队列;以秒杀为背景结合实际的线上问题进行提问,包括百万级的并发量、缓存服务扩容等;Linux服务器上,给定一个10G的访问日志文件,统计出访问量最大的10个IP。由于平时工作中不涉及高并发等场景,采用Windows Server部署服务,面试官最后给我的总结是由于身处传统行业与互联网一线实战脱节比较严重,故第二轮面试顺利地挂掉了。

原文地址:https://blog.51cto.com/xjhznick/2437819

时间: 2024-11-10 14:17:30

字节跳动面试总结(2019年8月)的相关文章

字节跳动面试官揪着源码一直问,然后......

最近,我的一位朋友在找工作,已经拿到了美团.快手等公司的Offer,准备选择其中一家入职了.后来他又接到了字节跳动的电话,通知他去参加三面.从二面到三面之间隔了挺久的,他以为都没戏了,结果就收到了通知.由于已经拿到了很多大厂的Offer,他对这次面试还是挺有信心的.但是回来之后,表现的特别沮丧.一问之下,原来是面试官问的一些问题他回答的不好,他说面试官揪着源码一直问,但是自己并没有深入看太多的源码,所以回答的不是太好.他给我总结了一下面试官关于源码部分的问题,主要题目如下:1.你看过那些源码吗?

2019字节跳动面试时手撕代码题(持续更新~)

1. N 阶乘末尾0的个数. 输入描述: 输入为一行,n(1 ≤ n ≤ 1000) 输出描述: 输出一个整数,即题目所求解法:要判断末尾有几个0就是判断可以整除几次10.10的因子有5和2,而在0~9之间5的倍数只有一个,2的倍数相对较多,所以本题也就转换成了求N阶乘中有几个5的倍数.也就是每多出来一个5,阶乘末尾就会多出来一个0,这样n / 5就能统计完第一层5的个数,依次处理,就能统计出来所有5的个数.同一个思想两种写法. 题解: 要判断末尾有几个0就是判断可以整除几次10.10的因子有5

腾讯、网易云、字节跳动面试点总结—AMS在Android起到什么作用?

本专栏专注分享大型Bat面试知识,后续会持续更新,喜欢的话麻烦点击一个关注 面试官: AMS在Android起到什么作用,简单的分析下Android的源码 心理分析:这道题在发生在大多数场景下.面对这道题 很多求职很茫然,不知道该如何说起.AMS本身比较复杂难以理解.工作多年也很难弄清AMS的作用,其实我们大可从以下几点入手组件启动.进程切换.Crash异常入手 求职者:AMS难以表述 我们就从最熟知 的Activity启动入手,逐步深入和分析,用定力告诉面试官,我层深入研究过.接下来我们从五条

字节跳动推出“头条搜索”独立App

字节跳动现已推出"头条搜索"独立App,目前,"头条搜索"App已经在各大安卓应用商店低调上线.头条搜索App可搜到今日头条站外内容."头条搜索"App的整个产品框架,与"百度搜索"App的设计与模式相似. 当前,很多企业同时是字节跳动和百度两家的广告代理商,字节有了搜索业务,就能蚕食百度等搜索企业的目标客户.如果业务开展顺利,一年营收增加百亿以上并不是难题.但头条搜索想单凭此就超越竞争对手,显然还远远不够.在搜索这一赛道里,

2019Android74道高级面试合集(含BAT字节跳动等等)

前言 最近半年,常常有人问我 "Android就业市场究竟怎么样,我还能不能坚持下去 ?" 现在想想,移动互联网的发展不知不觉已经十多年了,Mobile First 也已经变成了 AI First.换句话说,我们已经不再是"风口上的猪".移动开发的光环和溢价开始慢慢消失,并且正在向 AI.区块链等新的领域转移.移动开发的新鲜血液也已经变少,最明显的是国内应届生都纷纷涌向了 AI 方向. ? 可以说,国内移动互联网的红利期已经过去了,现在是增量下降.存量厮杀,从争夺用

【秋招面试专题解析】Android程序员如何拿到爱奇艺.字节跳动.抖音offer

刚好闲下来,顺便收集了一些关于爱奇艺,字节跳动,抖音的面试题目.也整理好了答案,希望对即将面试和跳槽的小伙伴有所帮助 一.2019爱奇艺秋招Android 1.使用堆排序方法排序(45,78,57,25,41,89),初始堆为( 89,45,78,25,41,57 ) 2.6个圆盘的汉诺塔,总的移动次数是( 63 ) 3.在一个空的5阶B-树中依次插入关键字序列{6,8,15,16,22,10,18,32,20},插入完成后,关键字6所在结点包含的关键字个数为(3) 4.有关希尔排序算法叙述 5

第一次面试字节跳动

作者:Nu11Pointer 出处:https://www.nowcoder.com/discuss/155740 ============================================================================= 本人南京某985渣渣研究生一枚,生平第一次面试...说出来你们可能不信 虽然基本上是GG的节奏,还是写下这个帖子来记录一下吧,大家也可以参考一下. ========================================

超级面试题2019年7月第2次发布

超级面试题2019年7月第2次发布.本次发布后,全题库包括阿里巴巴.好未来.平安好医生.美团.百度.饿了么.有赞.陆金所.今日头条.携程.阿里.百词斩.招商银行.竹间智能.腾讯.商汤科技.三角兽.360.某医疗大数据公司.某香港公司.图糖.朗讯科技.京东云.华为.唯品会.字节跳动.多益网络.映客等公司的面试题, 47套,总计738道题.全题库包括Java开发.机器学习(AI和算法)等类型试题. http://www.chaojimianshiti.com 原文地址:https://blog.51

【北京/上海/南京】【部门直推】【可查询】【实习&社招】字节跳动数据平台前端内推

重要信息,写在前面  [投递邮箱][email protected] [微信扫码] 2019接近尾声,最后上车的机会,一定要抓住!!! 投过字节跳动,面试挂过不要紧!部门直推,捞起再面! 实习同学对项目经验没有强制要求.聪明.基础过硬.对操作系统.计算机网络.数据结构.算法有一定的理解即可! 21届及以后的同学欢迎来实习,实习转正so easy,妈妈再也不用担心我的offer! 我们是干啥的         数据平台为大数据的全生命周期提供服务,覆盖数据产生,传输,建模,统计分析,实验评估,可视