25届菜鸡的秋招实习总结
楼主目前大三上,Java后端开发方向,今年行情太差了😭,目前的情况是:
- Fabrie后端(部门主要写Node,少量Golang和C++),base上海
- 快手本地生活(Java),base北京
- 万物心选搜索架构(Php),base北京
挂了的:
- 南北科技(Java),base广州
秋招到现在面了四五家,九月份一直0offer😢,本来心态都快崩了,听了某评论区牛友的话,国庆先回家,像他说的那样,带着另一份心情回来。到了十月份约面才开始多起来。
大大小小也投了好多家,目前还有腾讯(初筛),美团(业务评估),网易(业务评估),蔚来(初筛)还没面试,有点累了,不想继续面了。
因为已经意识到行情很差,采取了海投战略,只要base可选广州就会广州(觉得挺宜居的一个城市),没有就都可以。
找实习实在是漫长且痛苦,当然金字塔顶端的人什么时候都可以拿到最好的offer,不过这种大佬实在是太少了。个人踩过的主要的坑就是准备太晚、投的太晚导致错过了暑期的很多机会,建议大家早点准备,无论是互联网还是其他赛道,都越来越卷了。
我因为准备不足,本打算拖一拖在九月底十月再开始找实习,但是确实太晚了,大厂岗位不多,一个部门就1,2个hc吧,和暑期是没法比的(暑假滴滴和百度招人特别猛,还记得七月份百度智能组招20个后端,现在只要2个)。最后只面快手,然后也比较快的拿到了实习,就没有再看其他的机会。
一路上虽然辛苦,但是遇到了很多很值得感谢的人,给我许多勇气和力量去继续战斗。
最后希望大家有满意的offer吧。
万物心选(没录音记不起来了)
南北科技(同上)
Fabrie
Fabrie一面
10.11 1h20min
开篇自我介绍,专业介绍,主要学什么课程,工作室介绍
项目
- Cim 文件是做什么的(其实就是xml,吹了下dom4j)
- 会不会涉及到地图的操作
- 电力流分析运算是怎么做的,讲讲业务流程
- 项目涉及到的数据量有多大,是怎么存储的
- 讲讲项目当中的模板方法模式,讲讲拓扑搜索的原理(说了深搜广搜)
- 为什么使用 Redis ,以及缓存主要使用的数据结构,大概要存多少数据
- 有没有实现 Redis 的持久化(RDB+AOF)
- 有没有了解过 Redis 的发布订阅模式
- 对于 Nginx 的底层有没有研究(不太了解),GZip 的目的
- 为什么选用 Fork/Join 框架去实现并行运算(讲了自动负载均衡)
- 项目分库分表的实现方案(range+hash)
- 讲讲规则引擎的应用,它解决了什么问题(简单热部署)
- 第一个项目做了多久
- 第二个项目的核心链路
- 消息队列的应用
八股
- Java 的垃圾回收策略(内存分区,GC算法...)
- 分布式的底层原理有没有研究
- 有没有了解过 Dubbo 的底层机制
- SpringCloud 的整体架构
- 分布式ID的实现(讲了下UUID和Snowflake)
- 限流降级的实战经验
- 讲讲 MySQL 的索引(扯了下B+树实现,聚簇非聚簇,索引失效)
- 有没有使用过 MongoDB
- 键入网址到网页显示,期间发生了什么(经典)
- http 三次握手的实现(同上)
算法
都是写过的,直接秒了
一道 LeetCode 原题:41.缺失的第一个正数
一道 LeetCode 变体:199.二叉树的右视图
其他
- 对于后端是不是比较感兴趣,接不接受转 Node
- 对公司的产品有没有研究,然后介绍了一下公司项目的业务
- 现在还需要上课吗
- 大概能实习多久
反问
- 面试表现
- 二面大概内容,说会更偏向业务,不会有比较详细的技术问题
Fabrie二面
10.13 50min
开篇自我介绍
项目
- 什么是后端架构
- 有没有独立完成过完整的后端项目,讲讲它的架构是怎么样的
八股
- 讲讲Java的锁(轻量级锁,重量级锁)
- 轻量级锁和重量级锁的应用场景和它们之间的区别
- 讲讲死锁的产生,以及如何避免死锁(破坏循环等待和不剥夺条件)
- 讲讲golang协程和Java线程的区别,以及它们的好处和坏处
- MySQL为什么使用B+树作为索引的存储结构,以及它的查询时间复杂度
- 有没有在项目当中写过B+树(我说没写过B+树,写过拓扑树和字典树)
- 双向链表和单向链表的区别
- 讲讲LRU缓存淘汰算法,在哪里使用到的(在Caffine源码见到过,上os课也见到过)
算法
不让取巧,所以花了很长时间
Leetcode原题:146.LRU缓存
其他
感谢你来参加我们的面试,很有做技术的底子
反问
- 部门分工
- 面试表现
快手
快手一面
10.12 1h
开篇自我介绍,自己比较熟悉的一个项目
项目
- 项目中为什么要使用模板方法,它的优势在哪里(定义算法框架啥的)
- 介绍一下为什么使用Redis去作为缓存实现方案;数据是怎么被缓存到Redis当中的,面试官对我的缓存方案有一定疑问;以及缓存的数据量(scan + set)
- 对于 Fork/Join 框架的理解(分而治之)
- 项目分库分表的实现方案(range + hash)
- 规则引擎的具体应用(面试官指出我的代码检测没考虑到运行时异常的处理)
- 项目最大的亮点或者是最大的挑战(数据太多了)
八股
- JVM调优的经历(都是线下调优)
- 线程池的基础参数(提了一嘴为什么不用Executors)
- MySQL语句优化经历,以及优化方式和手段
- 常见的索引有哪些,讲了聚簇非聚簇,面试官提到了联合索引,引一下最左前缀法则和联合索引的数据结构
- Spring的基本特性(说了一下IOC和AOP,循环依赖问题说的不好,没提到第三层缓存)
算法
力扣原题:142.环形链表 II
其他
- 大概可以实习多久
反问
- 本地生活大概的形式是怎么样的,是不是和抖音,美团类似
- 面试可以提高的地方
快手二面
10.16 45min
开篇自我介绍
项目
- 讲讲JVM调优经历,讲了下线下优化
八股
- 什么样的对象会进入老年代?
- 元空间信息会不会做回收?
- Class的生命周期
- 如果我想要看到JVM加载了哪些Class,卸载了哪些Class
- MySQL联合索引(a,b,c)中,a是等值,b是范围,c是等值,它能不能用到联合索引
- MySQL的B+树的底层实现, 从数据页的角度看 B+ 树
- 范围查询是如何去利用索引的
- Redis的集群模式都了解哪些,说只了解主从和Clauster,没有设计过HA方案
- Clauster的优势和需要注意的点
- 一个节点故障要如何去实现Rebalance
- 如何实现对线程池数据的一些监控
算法
Leetcode变体:93.复原IP地址
其他
- 平时有没有去看一些写好代码的书,推荐了Clean Code
- 实习时间
反问
- 面试表现
- 怎样才能更好的参与实习