经历了春招,才知道自己有多菜

经历了春招,才知道自己有多菜

我的春招开始于2月底,我一共投递了阿里、腾讯、百度(笔试挂)、京东、网易、华为、蘑菇街、拼多多(笔试挂)、携程(笔试挂)、微众银行(笔试挂)以及虎牙、斗鱼、blibili、小米、oppo,后面5家公司投递完之后就没消息了。其中给面试的除了有阿里、腾讯、网易、华为、蘑菇街这几家,目前为止除了蘑菇街(offer)、华为(面试过了,笔试需要一次加试)之外,其余全部阵亡。

腾讯第一次面试(2月底)

这是我的人生第一次面试,腾讯是因为我在去年的时候投了一次日常实习,当时抱着试一试的心态投了,结果直到春招的时候才收到电话,面试官打过来也是问我在找实习没,我当时心里十分激动并告诉他我在找暑期实习,他说要不要试一试,然后我居然答应了。。。于是就约了第二天的晚上,现在想想我也真是不了解面试到底是怎么一回事,完全没有任何准备就上了

项目

当时我的简历还是半年前的简历,面试官问我其中一个项目,我答的磕磕巴巴,因为这个项目早就停了,问了十几分钟实在受不了遂告之我最近做的项目,描述了一下后面试官又对我这个项目提了几个问题,我记不太清问的什么了,但是很常规,类似于你做了哪些事情、你碰到的问题之类,总之我答的一塌糊涂。

基础问题

  1. Linux用过哪些命令
  2. 如何查看cpu使用情况
  3. 如何查看cpu占用最高的进程
  4. 说一下快排的思路(0准备的我连这个答的都有问题)
  5. tcp和udp的区别
  6. http响应码
  7. 单链表判断有没有环(没刷题的我照样没答出来)

反正挺惨不忍睹的,毕竟没任何准备。毫无疑问一面挂掉。

网易(二面挂)

网易一面

网易面试都是两个面试官,内容也挺硬,我一个问题还没说完下一个问题就来了

  1. 项目如何防止短信轰炸
    第一次听这个词,一脸蒙蔽,直接就回答没做过,后来才知道调用幂等性这回事。
  2. 问单点登录我怎么做的,我说我是通过session和cookie做的,面试官似乎就没太大兴趣了,就过了
  3. linux中的fork的使用和原理
    gg
  4. ping命令的原理
    继续gg
  5. https介绍
  6. https请求下get请求数据会被加密吗?
  7. ssl连接过程
  8. ssl是使用对称加密还是非对称加密
  9. 操作系统中的抖动是怎么回事
  10. 操作系统中的缺页中断是怎么回事
  11. java异常体系
    这个都没答出来,现在想想这么多问题没答出来还让我进二面了也是很nice了
  12. mysql隔离级别
  13. mysql隔离级别下,给了个场景,主要是判断RC和RR下的不同。
  14. mysql索引原理
  15. 算法:数组中找两个数之和为10,做出来之后继续问3个数呢?

基础还是不扎实,主要体现在Linux和操作系统,但是比第一次面试还是有了一些进步,这次进入二面了,两位面试官对我的评价是知识有了广度,深度不够,算法题的改进没做出来,面试官看出我遇到问题想放弃,劝我多想一想,我才意识我有这个问题,也是很感谢了。~

网易二面

这次的面试很奇怪,先是hr给我打电话约第二天下午的面试,并告之面试会持续1个半小时,过了一会儿又打电话告诉我面试提前了,今天晚上,没办法~谁叫找工作的是我呢,后来就感觉明显是面试官不想面我了,把我当备胎了,面试也就走了个流程。

二面没有问任何基础,同样是两位面试官,还是其中一位面试官问问题,主要问我觉得自己符合他们招聘要求的哪一点,然后对他们的招聘需求了解吗。两位面试官一上来还做了个自我介绍,不是介绍部门,而是介绍自己的名字,这是我没遇见过的。然后就开始问我项目,项目分工、项目如何沟通的、代码如何托管的,我说托管在码云上,他们表示没听过。然后就开始疯狂怼我的项目,同样问了短信轰炸这个问题,我在一面后下去查了资料,给他们说完后其中一位面试官就怼我说我没做实际做过,我确实没做过啊。。然后又问我会不会有人知道我们的端口号和IP来攻击系统,我说了一些防护措施,我说的时候那边没声音了。。中间还有大概2分钟的沉默。。然后他们就说没问题了。。过了一会儿就显示面试不过。

腾讯第二次面试(一面挂)

写到这里的时候突然蘑菇街的offer来了,不过老板只让去排名前十的公司,好悲伤,只能拒掉了~腾讯二面是找的本科的学长内推,可惜又是一轮游。

  1. 项目是如何保证生产者实例和消费者实例之间调用的可靠性的
    我当时猜测可能是想问我分布式事务,用一个协调者协调整个调用过程,可是现在一想我的消费者是直接从注册中心得到生产者地址之后向它发请求的,并不符合分布式事务的场景啊。如果请求失败会返回错误码,前端去判断该显示什么。不知道这样对不对
  2. 如何设计一个springmvc
    我基本上就按照springmvc的流程谈,回答着就说到了json转对象,这里就给自己挖了一个坑
  3. json如何转对象的
    平时我们都是使用阿里巴巴提供的fastjson之类的工具帮我们转的,这里要我自己设计一个优点懵,就说用类似正则表达式之类的设定规则提取键值对。
    4.nginx负载均衡有哪几种方式?
    只答出了ip哈希、轮询
    5.它们的使用场景
    GG
    6.如何优化整个项目
    我说了缓存和连接池,面试结束后面试官还给我扩展了很多,主要是因为我在项目里面提了一些优化的问题。还是太菜,简历上的内容没有完全弄懂
    7.hashmap的put原理
    我竟然没提红黑树,当时应该是傻的。
    还有一些忘了。。

面试官评价:对项目中所使用的组件的原理没有深入了解,基础不够扎实。面试官是腾讯云的,他虽然说自己不会问高并发的东西,但是….

阿里第一次面试(三面挂)

阿里第一次面试是被实验室师兄内推到天猫,只能说选择很重要。

阿里一面

  1. 项目中的难点
    被怼说使用springcloud没啥用,不如加集群。
  2. mysql中myisam和innodb有什么区别
  3. GC分代回收的好处
  4. G1介绍
  5. G1为什么采用连续的region
  6. 说下mysql你最了解的
    我说了mysql的ACID对应的实现
  7. 平时怎么学习的
  8. 实验室做什么的
  9. 自己的优势,向他展现出来
    懵,说自己擅长找资料。。。。
  10. 论文情况
  11. 有没有博客
  12. 打开了我的github,发现没什么有价值的东西。
    这一轮问的我异常的尴尬,深深的感觉自己实在是没有什么拿的出手的可以展示的东西。准备秋招的时候一定要准备一些内容,博客+github这一块可以增添点内容。

阿里二面

  1. 项目中有哪些是是我做的
  2. 介绍下使用场景
  3. 限流和容错了解吗
  4. 项目难点在哪儿
  5. concurrentashmap介绍下
  6. 线程池介绍下
  7. 数据库索引和数据库事务
  8. 2000万条数据如何作数据库的优化

这一轮面试官没有难为我,愿意被我引导,所以答的过程也很流畅,最后差不多告诉我已经进入下一轮

阿里三面(应该还是二面)

挂在这里了,我犯了几个错,和面试官约时间的时候面试官说当天晚上,由于和百度笔试冲突我提议明天,然后对方很不难烦,以后有这种情况还是不要提其他公司吧。最后的结果就是第二天面试官和我聊的时候能听出火气,我心里本来就虚,发挥极差,然后就挂了。

  1. 项目分工,说说项目具体的功能
  2. 项目难点在哪里?
    被怼了,你的项目难点就是这个吗?这里其实我之前准备了,但是面试的时候全忘了,描述了一个不痛不痒的场景,很后悔,发挥的实在是太差了。主要还是因为前面改时间再加上面试官有点冲,心里发虚。
  3. 项目QPS是多少?
    我预估了一个值,实际没测过,这是第二个坑
  4. 如果把你的系统给淘宝使用,假设20W的qps,你会在哪个地方做改进?
    还是虚的很,只说了加集群。缓存、异步、多线程、前端优化、数据库优化只字未提,不挂我挂谁呢。。

20分钟左右就结束了,二面一般不问基础问题,其实我觉得自己本来是很有希望的,问的这些问题我都准备过,这次是败在了心里素质上。面试不仅仅考候选人的技术,也会考察心理等各方面的素养。

蘑菇街(offer)

蘑菇街一面

  1. 项目,比较常规
  2. 问到了限流和容错
    我答的不全,细节方面面试官从线程池的拒绝策略开始引导我,后来还是答出来了
  3. NIO使用过吗?有哪些具体的函数
    这里就体现出小公司的特点,小公司会需要了解你有没有实际操作过。
  4. 几种IO模型的区别
  5. nginx如何配置负载均衡
    还有一些基础,,记不得了
    算法:滑动窗口求最大值,牛客网的剑指offer专题上有。

总结:面试官很nice、体验很棒。

蘑菇街二面

完全没问项目

  1. 了解哪几种锁?死锁产生和预防
  2. sychnorized和lock的区别
    没答好,回答的不全面
  3. 读写锁的使用场景
  4. 求二叉树的前k大数
    回答了用堆来做,但是时间复杂度一直说不对。。
  5. 了解分布式吗?说说CAP理论讲的是什么
    我应该是讲出来了,但是CAP理论是为了什么这里表达的不好。

常规,简单。感谢蘑菇街的offer,让我不至于剃了光头

华为(等待加试中)

华为是现场面试,一面干货十足,二面聊人生。一面就是对我简历上写的技能挨个的问,问到不会为止就换下一个,感觉只要你知道些东西基本上就不会挂你,华为难的是性格测试哈哈~

阿里第二次面试(二面挂/阿里云)

正式批被捞起来面的,而且岗位变成了基础平台研发工程师,这个岗位要比Java后台研发要求更高,基础要很牢靠。

  1. 项目介绍
  2. 项目难点
  3. 对我项目中一个细节提问,一下就问住我了。很后悔当时没把项目多看几遍,只要有一点迟疑就会被认为项目细节不够了解。
  4. 问我GC调优的过程
  5. 如何查看进程里面某个线程的情况
    jstack,一知半解是拿不到offer的
  6. 用栈实现队列
  7. tcp三次握手
  8. Java的自动拆装箱
  9. Java的装箱有什么问题
  10. Mysql问了一个最左前缀索引问题,A/B是否走索引。
  11. 面向对象中的开闭原则是说的什么
    卒,回答的不够好。
  12. 算法题,反转字符串,优化到Logn。快排,根据快排的思想求无序数组第k大。

阿里二面

卒,不说了

面试官评价:项目经历还是太薄弱(意思是项目没有难点,没有好深挖的地方),原理不深入。让我多思考项目细节和难点。

总结

半天的时间就把持续了快两个月的春招给总结了,春招的失利对我的打击很深,这一次春招很多地方做的不好,但也收获了一些面试经验。不过也不可避免的留下了面试记录,肯定会对秋招带来影响,后悔什么的都没用,现在要做的是思考如何秋招翻盘。压力只会更大,随之而来的是我的论文、实验室的项目、还有秋招的压力,稍有不慎满盘皆输。此刻的我想送给未来的我一番话,警示自己。

- 战略的懒惰是最可怕的,保持思考,保持前进。

- 时时总结,多写博客多总结。

- 到秋招之前必须有个人作品到github

- 永远不要轻视毕业论文,要花时间,要出成果

- 锻炼心理素质和叙事能力。