随着金三的落幕,大抵笔者的春招也可以画上一个圆满的句号了。一个多月的拉锯战让笔者收获颇丰,也有许许多多的见解,决定写一系列三篇漫谈来及时记录这些宝贵的经验。
去哪里投简历 链接到标题
其实相比于简历怎么写、面试怎么准备,去哪里投简历可能更加关键,因为这意味着怎样开启与企业的沟通。结合笔者与两位同样求职舍友的经历,可以武断的得出一个论断——中小厂可以在 Boss 直聘上投递,公司 hr 在这个平台上回复率还算可观,大厂更推荐在牛客上投递,因为他们对这个平台更加重视,而 51job 之流则不是很适合这个时代了。
此外其实大厂在牛客上的流程都很类似,简历通过初筛后会给一个内推的资格,然后再引导去官网上利用内推资格投递,最终面试官看到的信息都是来自官网的。
怎样写简历 链接到标题
有许许多多的自媒体乃至于培训机构都在教怎么改简历,或者是包装简历,这显然是有效果的,但是不配合面试的一昧包装反而是适得其反的,写在简历上的每一条技术栈、项目经验、实习经验都有可能是面试官问你的依据,因此吃透自己的简历可能是面试之前较为重要的一步。
其实不同岗位在简历上都有一些点是特别吸引面试官目光的,拿后端来举例就是高并发秒杀、微服务这样的,可以在其他地方准备的一般,但是这些关键点一定是要重点准备的。
求职流程 链接到标题
这个其实每个公司甚至同一个公司不同的投递人都有不一样的流程,但总结下来其实也就是两轮技术面+一轮 hr 面+一轮测评+一轮笔试。特别的是阿里系会在一面之前加一个电话的简历面。
但近期好像出现了一些先笔试后筛选简历的公司,例如携程(著名事件是 3 月 13 日笔试有一位上海海洋大学的佬笔试 AK 但是被挂),因此有笔试资格也不一定是简历关过了。
之前大家都认为测评是很随意的一关,但今年春招也出现了一些测评会筛人的公司(没错,又是携程),笔者认为这一关虽然不难,但是还是得认真对待。
阿里的简历面和其他公司的一面类似,八股占比会比较大,这也是最容易准备的一轮,只要肯下功夫就能有回报的。
阿里的技术初面与技术终面更像是分上下场的其他公司二面,会更加深入的挖掘项目与实习,夹杂着一些场景题与对框架的了解程度,综合考验技术能力,这一步笔者觉得准备起来会难度较大,需要对自己的项目有很深的了解,建议进行多次自我拷打。
hr 面在之前也是大家认为稳稳拿下的一步,但很遗憾在 23 年秋招开始好像 hr 面被挂的情况越来越常见了,可能是因为 hc 没了,也有可能是因为入职时间不是公司预期的,甚至于沟通过程中给 hr 不好的印象,总的来说就是没啥统一的原因,但其实只要有 hc,然后表达上没有什么大病,这一关还是容易过的。
最后再来说说笔者准备的最早但真到春招反而不再准备的笔试关,这一关各大厂都会有一定的算法题需要解决,此外可能还会有一些考察数据结构、设计模式、语言特性的单选多选题。准备起来其实就很简单的一点,背八股的时候认真一点,然后花时间在 Leetcode 上多刷点题。
面经 链接到标题
这里就简单分享一下笔者狠狠准备八股之前一面暴死的两场面试吧。
蚂蚁简历面 链接到标题
先和面试官聊了二十分钟项目和实习,然后进入八股正戏。
- 什么是范型,为什么需要范型这样的设计?
- 什么是双亲委派模型?
- 线程池的创建需要几个参数,分别是什么?
- 聊聊 Java 创建线程的过程。
- 聊聊 JVM 的 GC。
- Redis 中什么是缓存雪崩、击穿、穿透?怎么解决这三个问题?
- Redis 中的事务和 MySQL 的有什么区别?怎样弥补这一缺陷?
携程一面 链接到标题
这次面试主打一个八股、场景、手撕混合拷打,被拷打麻了。
- 抽象类和接口的区别有什么?
- 抽象类可不可以实例化?接口呢?
- 抽象类的方法可不可以有实现?接口呢?
- 线程池的创建需要什么参数?
- 线程池的线程数量一般怎么决定?
- MongoDB 的事务可以回滚吗?
- 有一个任务需要 2ms 的 CPU 时间,100ms 的 IO 时间,现有一个 8 核 CPU,怎样设计线程池的最大最小线程数能使这个 CPU 满负荷运转?
- MySQL 底层数据存储是使用的什么数据结构?索引和这个结构有什么关系?
- 请设计一个课程签到记录表,并拼写 SQL 语句查询缺勤率最高的三个同学与最受同学喜爱的三门课。
- 一个数据表
- 写个单例。
- 使用什么样的算法遍历大学时期学习的课程。
此外还有一题考查 MySQL 索引失效的:
有一张表存在联合索引 (A, B, C),请问以下语句哪些可以命中索引?
A. SELECT * FROM tab WHERE A = a AND B = b;
B. SELECT * FROM tab WHERE A = a OR B = b;
C. SELECT * FROM tab WHERE A = a AND C = c;
D. SELECT * FROM tab WHERE C = c OR A = a;
E. SELECT * FROM tab WHERE B = b AND C = c;
F. SELECT * FROM tab WHERE B = b OR A = a;