随着金三的落幕,大抵笔者的春招也可以画上一个圆满的句号了。一个多月的拉锯战让笔者收获颇丰,也有许许多多的见解,决定写一系列三篇漫谈来及时记录这些宝贵的经验。

去哪里投简历 链接到标题

其实相比于简历怎么写、面试怎么准备,去哪里投简历可能更加关键,因为这意味着怎样开启与企业的沟通。结合笔者与两位同样求职舍友的经历,可以武断的得出一个论断——中小厂可以在 Boss 直聘上投递,公司 hr 在这个平台上回复率还算可观,大厂更推荐在牛客上投递,因为他们对这个平台更加重视,而 51job 之流则不是很适合这个时代了。

此外其实大厂在牛客上的流程都很类似,简历通过初筛后会给一个内推的资格,然后再引导去官网上利用内推资格投递,最终面试官看到的信息都是来自官网的。

怎样写简历 链接到标题

有许许多多的自媒体乃至于培训机构都在教怎么改简历,或者是包装简历,这显然是有效果的,但是不配合面试的一昧包装反而是适得其反的,写在简历上的每一条技术栈、项目经验、实习经验都有可能是面试官问你的依据,因此吃透自己的简历可能是面试之前较为重要的一步。

其实不同岗位在简历上都有一些点是特别吸引面试官目光的,拿后端来举例就是高并发秒杀、微服务这样的,可以在其他地方准备的一般,但是这些关键点一定是要重点准备的。

求职流程 链接到标题

这个其实每个公司甚至同一个公司不同的投递人都有不一样的流程,但总结下来其实也就是两轮技术面+一轮 hr 面+一轮测评+一轮笔试。特别的是阿里系会在一面之前加一个电话的简历面。

但近期好像出现了一些先笔试后筛选简历的公司,例如携程(著名事件是 3 月 13 日笔试有一位上海海洋大学的佬笔试 AK 但是被挂),因此有笔试资格也不一定是简历关过了。

之前大家都认为测评是很随意的一关,但今年春招也出现了一些测评会筛人的公司(没错,又是携程),笔者认为这一关虽然不难,但是还是得认真对待。

阿里的简历面和其他公司的一面类似,八股占比会比较大,这也是最容易准备的一轮,只要肯下功夫就能有回报的。

阿里的技术初面与技术终面更像是分上下场的其他公司二面,会更加深入的挖掘项目与实习,夹杂着一些场景题与对框架的了解程度,综合考验技术能力,这一步笔者觉得准备起来会难度较大,需要对自己的项目有很深的了解,建议进行多次自我拷打。

hr 面在之前也是大家认为稳稳拿下的一步,但很遗憾在 23 年秋招开始好像 hr 面被挂的情况越来越常见了,可能是因为 hc 没了,也有可能是因为入职时间不是公司预期的,甚至于沟通过程中给 hr 不好的印象,总的来说就是没啥统一的原因,但其实只要有 hc,然后表达上没有什么大病,这一关还是容易过的。

最后再来说说笔者准备的最早但真到春招反而不再准备的笔试关,这一关各大厂都会有一定的算法题需要解决,此外可能还会有一些考察数据结构、设计模式、语言特性的单选多选题。准备起来其实就很简单的一点,背八股的时候认真一点,然后花时间在 Leetcode 上多刷点题。

面经 链接到标题

这里就简单分享一下笔者狠狠准备八股之前一面暴死的两场面试吧。

蚂蚁简历面 链接到标题

先和面试官聊了二十分钟项目和实习,然后进入八股正戏。

  1. 什么是范型,为什么需要范型这样的设计?
  2. 什么是双亲委派模型?
  3. 线程池的创建需要几个参数,分别是什么?
  4. 聊聊 Java 创建线程的过程。
  5. 聊聊 JVM 的 GC。
  6. Redis 中什么是缓存雪崩、击穿、穿透?怎么解决这三个问题?
  7. Redis 中的事务和 MySQL 的有什么区别?怎样弥补这一缺陷?

携程一面 链接到标题

这次面试主打一个八股、场景、手撕混合拷打,被拷打麻了。

  1. 抽象类和接口的区别有什么?
  2. 抽象类可不可以实例化?接口呢?
  3. 抽象类的方法可不可以有实现?接口呢?
  4. 线程池的创建需要什么参数?
  5. 线程池的线程数量一般怎么决定?
  6. MongoDB 的事务可以回滚吗?
  7. 有一个任务需要 2ms 的 CPU 时间,100ms 的 IO 时间,现有一个 8 核 CPU,怎样设计线程池的最大最小线程数能使这个 CPU 满负荷运转?
  8. MySQL 底层数据存储是使用的什么数据结构?索引和这个结构有什么关系?
  9. 请设计一个课程签到记录表,并拼写 SQL 语句查询缺勤率最高的三个同学与最受同学喜爱的三门课。
  10. 一个数据表
  11. 写个单例。
  12. 使用什么样的算法遍历大学时期学习的课程。

此外还有一题考查 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;