热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

搞什么?双非渣硕,苦刷算法三个月,拿到字节offer竟然只是涨薪6K?

背景本人19年毕业,双非硕士,软件工程专业,1年工作经验(银行外围系统,又老又久,无高并发场景

背景

本人19年毕业,双非硕士,软件工程专业,1年工作经验(银行外围系统,又老又久,无高并发场景)Java后端开发,无实习经历,通过BOSS找的字节猎头。

刚开始说是被飞书拒绝了,然后被教育捞起来了。

不絮叨了,直接看面经!

双非渣硕,开发一年,苦刷算法三个月,四面字节成功斩获offer

 


一面

时间:7月24日 1小时


ps:很基础的知识点考察,涵盖了IO,网络等基本的理论知识,数据库和多线程会结合个人的语言和使用过的软件框架做提问,一面很基础,基本都答上来


hashmap原理,底层实现,线程不安全的原因,怎么扩容,底层数组大小为什么是2^n,扩容死锁产生的过程(不会), 1.7和1.8的区别
concurrenthashmap原理,结构,为什么线程安全,分段锁怎么实现
synchronized和lock区别, volatile原理了解吗
Lock底层实现原理, AQS怎么实现的

Redis数据类型,删除策略,持久化方案,分布式方案,redis cluster方案原理(没看具体的架构内容),分布式一致hash知道吗?
IO模型:IO模型有哪些,select和epoll原理,select的缺点(搞Java,如果没有高并发场景的经历,IO这块也就不怎么了解了,基本都是复习多线程的知识去了)
OSI模型(五层和七层)

介绍下tcp和udp
tcp握手,挥手
慢启动,快速重传,快速恢复
time-wait介绍下
innodb特点
innodb索引物理结构
主键,回表,覆盖索引
与MyISAM对比

算法:三数之和,要求给出时间复杂度和空间复杂度,刚开始暴力三重循环,后来要求优化


二面

时间:7月31日 1小时


ps:结合项目经历提问,面试官会结合简历和一面结果适当补充一些基本理论知识和常用框架的提问,个人对kafka不太了解,可能面试官不太满意


项目经历:分库分表,不借助中间件怎么实现,MyCat了解过吗(不了解),分库和分表怎么选择?结合项目场景讨论划分规则
其他项目经历,反射、注解的原理,有用过线程池吗?Java线程池有哪几种?Java线程池的构造参数?什么是阻塞队列?Java有哪些阻塞队列?
https建立连接的过程是怎样的?

了解中间人攻击和跨域攻击吗?

进程与线程的区别和联系
进程的切换发生了什么
线程的切换为什么比进程的切换代价小
进程通信的方式和举例

kafka的产生背景和在项目中的使用
topic和partition,partition是干什么的
Consumer Group是干什么的
怎么将partition分配到多个broker上?怎么动态调整partition和broker的数量?
rebalance什么时候发生,rebalance过程(这个真不知道)

Linux的shell用的怎么样?grep、sed、awk有用过吗?(只会grep...)

怎么监控机器性能?

Linux文件系统了解吗?软连接和硬连接?

矩阵顺时针旋转90°和逆时针旋转90° 股票买卖(几个变种问题没做出来,但是基本的应该还行)


三面

时间:8月6日 1小时


ps:主要是系统设计,发散性问题,另外,面试官吐槽了我的简历,建议简历老老实实套模板,不要花里胡哨,程序员的简历要整洁明了


kafka如何做到高可用(不会,面试官不太满意,因为我的工作经历没有互联网高并发,而且kafka的确没怎么看)

设计热榜,动态展示top K

N个线程交替打印,怎么实现,写出来,跑一下

设计长短地址转换


四面

基本流程,问离职原因,聊人生等等


总结

整体字节跳动的面试感受,面试官很专业,要求基础知识很熟悉,面试之前一定要准备后再去面试。LeetCode题目也要刷。手写算法留的时间不多,3-10分钟,如果3分钟还没写,就要求讲出解题思路。

切记面试前一定要刷题和准备,简历上的项目不熟悉的千万不要写上去,写上去的项目备好2-3个技术方案。


分享一些面试字节跳动必刷的面试题与学习文档

算法(面过字节的朋友都知道,字节的算法是问的最多的)

推荐这份左神写的《程序员代码面试指南,IT名企算法与数据结构题目最优解》


书籍涉及算法与数据结构编程题目240道以上,并且个人实现出最优解,大部分题目为面试高频。


目录(算法分为将、校、尉、士四个等级来表示难易程度)

双非渣硕,开发一年,苦刷算法三个月,四面字节成功斩获offer

 

双非渣硕,开发一年,苦刷算法三个月,四面字节成功斩获offer

 

双非渣硕,开发一年,苦刷算法三个月,四面字节成功斩获offer

 

第1章栈和队列

设计一个有getMin功能的栈(士★)

由两个栈组成的队列(尉★★)

如何仅用递归函数和栈操作逆序一个栈(尉★★)

猫狗队列(士★)

用一个栈实现另一个栈的排序(士★)

用栈来求解汉诺塔问题(校★★★)

生成窗口最大值数组(尉★★)

构造数组的MaxTree (校★★★)

求最大子矩阵的大小(校★★★)

最大值减去最小值小于或等于num的子数组数量(校★★★)

双非渣硕,开发一年,苦刷算法三个月,四面字节成功斩获offer

 

双非渣硕,开发一年,苦刷算法三个月,四面字节成功斩获offer

 

双非渣硕,开发一年,苦刷算法三个月,四面字节成功斩获offer

 

 


最后

对于大厂面试,我最后想要强调的一点就是心态真的很重要,是决定你在面试过程中发挥的关键,若不能正常发挥,很可能就因为一个小失误与offer失之交臂,所以一定要重视起来。另外提醒一点,充分复习,是消除你紧张的心理状态的关键,但你复习充分了,自然面试过程中就要有底气得多。

以上内容中所有的学习资料、面试资料,均可以免费提供,希望大家金九银十面试顺利,拿下自己心仪的offer!


推荐阅读
  • Java高级工程师学习路径及面试准备指南
    本文基于一位朋友的PDF面试经验整理,涵盖了Java高级工程师所需掌握的核心知识点,包括数据结构与算法、计算机网络、数据库、操作系统等多个方面,并提供了详细的参考资料和学习建议。 ... [详细]
  • 深入探讨:Actor模型如何解决并发与分布式计算难题
    在现代软件开发中,高并发和分布式系统的设计面临着诸多挑战。本文基于Akka最新文档,详细探讨了Actor模型如何有效地解决这些挑战,并提供了对并发和分布式计算的新视角。 ... [详细]
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
  • 分布式计算助力链力实现毫秒级安全响应,确保100%数据准确性
    随着分布式计算技术的发展,其在数据存储、文件传输、在线视频、社交平台及去中心化金融等多个领域的应用日益广泛。国际知名企业如Firefox、Google、Opera、Netflix、OpenBazaar等均已采用该技术,推动了技术创新和服务升级。 ... [详细]
  • 本文详细介绍了Socket在Linux内核中的实现机制,包括基本的Socket结构、协议操作集以及不同协议下的具体实现。通过这些内容,读者可以更好地理解Socket的工作原理。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • 一家位于长沙的知名网络安全企业,现面向全国诚聘高级后端开发工程师,特别欢迎具有一线城市经验的技术精英回归故乡,共创辉煌。 ... [详细]
  • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
  • 深入解析:存储技术的演变与发展
    本文探讨了从单机文件系统到分布式文件系统的存储技术发展过程,详细解释了各种存储模型及其特点。 ... [详细]
  • 本文总结了近年来在实际项目中使用消息中间件的经验和常见问题,旨在为Java初学者和中级开发者提供实用的参考。文章详细介绍了消息中间件在分布式系统中的作用,以及如何通过消息中间件实现高可用性和可扩展性。 ... [详细]
  • RabbitMQ 核心组件解析
    本文详细介绍了RabbitMQ的核心概念,包括其基本原理、应用场景及关键组件,如消息、生产者、消费者、信道、交换机、路由键和虚拟主机等。 ... [详细]
  • 本文介绍了基于Java的在线办公工作流系统的毕业设计方案,涵盖了MyBatis框架的应用、源代码分析、调试与部署流程、数据库设计以及相关论文撰写指导。 ... [详细]
  • 本文介绍了如何利用X_CORBA实现远程对象调用,并通过多个示例程序展示了其功能与应用,包括基础的Hello World示例、文件传输工具以及一个完整的聊天系统。 ... [详细]
  • 本文探讨了一种统一的语义数据模型,旨在支持物联网、建筑及企业环境下的数据转换。该模型强调简洁性和可扩展性,以促进不同行业间的插件化和互操作性。对于智能硬件开发者而言,这一模型提供了重要的参考价值。 ... [详细]
  • 本文详细介绍了Sleep函数的基本概念、使用方法及其背后的实现原理。适合对Sleep函数的使用和实现感兴趣的开发者阅读。通过本文,您将了解如何在不同操作系统中使用Sleep函数,以及其在多线程编程中的重要性。 ... [详细]
author-avatar
孩子气zyj2
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有