双非本科的大厂暑假实习之旅

自我介绍:四川某双非一本院校计算机类学生。从18年4月进入学校一个本科实验室(下称团队)开始学习Java,同年11月份开始接手一些团队自用的项目(团队成员管理系统)。后边担任团队队长,接手很多外包项目,但能写在简历上的不多,只有一个油田的项目、自己搭建的个人博客还有一个微信公众号。19年代码产出5w+(春招面试的时候也没有啥亮点)

今年4月开始准备走春招找暑期实习。现在想想自己心是真的大,4月13号boss直聘上边收到一个阿里师兄的内推邀请立马就投了,那时候还没准备任何东西(HashMap底层都没看过的程度),到21号收到人生第一次面试(阿里乌鸫),下边跟大家分享一下我的春招面经

1 阿里乌鸫

  • 一面

  1. 自我介绍+项目(20m)
    项目问的比较深,自己扯出来的项目难点,面试官人很好,问问题的过程中还会提出自己的一些想法。根据项目引出了mysql和redis读写不一致怎么办,全文索引。

  2. Mysql事务隔离级别

  3. Spring IOC(说一下两种实现方式,问到为什么不能代理有final修饰符的类)

  4. HashMap

结合jdk1.7,1.8说一下底层结构、get过程

  1. ConcurrentHashMap(结合jdk1.7,1.8说一下底层结构)

  2. volatile关键字

  3. JVM内存结构

  4. 垃圾回收算法(为什么老年代和新生代不同)

  5. 面试官介绍了下公司

  6. 还有什么想问我的吗?

  7. 身边还有跟你技术差不多的同学可以介绍的吗?

  • 二面

  1. 自我介绍

  2. 为什么开始学Java,学习Java的契机

  3. 学习Java这两年,包括后边框架什么特性对你有很深的印象或者帮助(Spring Aop)

  4. AOP除了日志和权限控制常规用法以外,你还了解什么高级功能(Spring 事务的声明方式)

  5. 看Spring源码看了哪些(aop、ioc、bean的生命周期)

  6. 看了源码之后最大的感受

  7. 实际上有用到这些源码层次的吗

  8. 介绍一下对自己比较重要的项目(油田修复井专家系统,7个人做项目、2后端、3前端、2UI)

  9. 项目前后端分离的架构(端 springboot+mybatis基础框架、spring security+token 身份鉴别,前端React)

  10. 为什么选用springboot+mybatis(学习路线这样)

  11. 整个设计是你设计的吗。整个设计最大的亮点是啥(前后端分离,我用swagger-ui+内网穿透让暑期一些同学回家也可以写项目【新疆同学比较难操作】)

  12. 有实际交付给用户吗(还在加功能、也差不多了)。有考虑过交付之后的容量吗(没有……以前项目比较小,后边打算所有功能实现之后测一下,大佬让我提前测一下)

  13. 新老系统之间的数据怎么迁移(老师写word我们边测接口边添加)

  14. 详细介绍一下项目业务(从用户权限开始讲)

  15. 过程中遇到过什么技术问题(英文+数字主键自增、规则库的不规则的树的遍历还有增删改查、方案查出来之后的去重【讲了下LinkedHashSet的去重】)

  16. 有没有遇到jvm内存泄露的问题(无、那个时候还不知道啥叫OOM)。

  17. JVM内存泄露常用情景

  18. 当团队队长和组长的经历、时间

  19. 本科成绩(前50%,大佬笑了,前50%也太广了吧,然后说了下自己平时感觉不挂科就行了,写代码做项目比较多,没太关注过)

  20. 其它项目(微信公众号,个人博客网站【运行在哪:个人服务器上边、为什么不用阿里云的学生机:我用的就是阿里云的学生机】)。

  21. 了解阿里云上边主机的配置吗(轻量级服务器,1核2G,40G内存。5M带宽)

  22. 有没有其他人来访问你的个人网站(有、但不多,大佬说项目里边可以补上,这个挺好)

  23. 了不了解阿里云的云的体系,公有云、私有云(没有、、、、只是用过阿里云上边的服务器、域名、短信服务,看看阿里云app上边推送的技术文章)

  24. 对未来的考虑

  25. 接下来在技术这块有哪些需要补足的(现在项目并发量比较小,要加强一下并发编程,概念了解比较多,实操少)

  26. 一块做修井项目的前端同学有特别好的吗

  27. 有没有什么想问我的

  28. 大佬跟我谈了点道理。要有改进的动力,多考虑系统的抗压能力。提高自己的架构设计(举了个栗子,如果石油系统的几十万人访问系统你这肯定扛不住。感觉大佬说的确实很有道理)。

  29. 今年代码量产出多少(5w多【主要是修井2w8左右、博客4k多、公众号3k多(调用了github上边的sdk,代码量比较少比较方便)、平时小项目…】)。

  30. 关不关注代码质量还有规范(idea上边的Java阿里巴巴代码规范,还有自己的项目下一届要继续维护,注释尽量清楚点,代码尽量精简点)

  • 三面

三面是leader面,包括后边的面试基本都是凉在了leader面上边

  1. 自我介绍

  2. 项目介绍

  3. 学校里边学过那些科目

  4. 数据库的三大范式以及应用(自己拿项目举例子)

  5. Spring bean的生命周期

  6. 学习成绩

  7. Spring的bean工厂是什么

  8. nginx主要是干嘛的

  9. nginx代理了哪几层网络协议

  10. 有没有挂过科

2 成都京东

  • 一面

  1. 实习时间3个月是否能实现

  2. 自我介绍

  3. redis平时的使用(消息队列如何实现的)

  4. spring boot启动的过程(run方法和bean的生命周期)

  5. spring加载静态方法和非静态方法的区别(不会。。。以为是代理那坨)

  6. sql优化

  7. sql优化的过程(顺便提了下存储引擎的区别)

  8. HashSet有用过吗(没用过,但用过LinkedHashSet做去重)

  9. 多线程有用过吗(没咋用过,但是了解一些知识,以为面试老哥会深问,但并没有)

  10. 谈一下并发跟并行的区别

  11. 谈一下Java中的多态

  12. 重写和重载的区别

  13. 网络安全问题(主要是xss跟sql注入)

  14. 项目里边的安全验证方式(token,说一下token的过程)

  15. 反问阶段(对我的评价,怎么看招聘进度)

  • 二面

没有自我介绍。全程14分钟,九点十分接的电话。不知道是不是面试官要下班的原因,面试时间很短,后来意识过来是来刷kpi的

  1. 项目都是你自己做的?

  2. 说一下JVM的类加载

  3. 为什么要用双亲委派

  4. MySQL的存储引擎

  5. Innodb的事务支持是怎么实现的

  6. 平时设计数据库注意哪些问题?(说了下三大范式)

  7. 平时在哪些网站学习

  8. 有没有了解过新技术

过了三天二面面试官打电话过来,给我的评价是技术深度不够。后来我们另一个校区的校友(阿里新零售offer),跟我说给他的评价也是一样。有点佩服

3 阿里新零售

一面
  1. 自我介绍

  2. 项目介绍

  3. 项目业务详细介绍

  4. 项目中的难点

  5. 自己设计数据库的话会怎么设计

  6. 比如疫情原因,一些油井无法开采,疫情过后又恢复生产,你要怎么设计数据库

  7. 英文+数字的自增主键在分布式下如何解决(类似于MVCC机制,使用标识符和预知量判断)

  8. 如果使用redis怎么解决自增主键在分布式下高并发的问题(在redis中建立一个键值对,不管插入何值都存到redis的value中。等到合适的时间再存入数据库,因为主键唯一所以不符合自增要求或者重复的会被直接pass掉)

  9. MySQL中的事务隔离级别

  10. 自增主键进行写的时候会用什么事务隔离级别(读未提交)

  11. Linux常用命令

  12. awk命令的应用

  13. OOM情况如何排查

面完后阿里的师兄直接跟我说面试过了,然后因为我第一次的笔试成绩不行。需要补一次笔试,他给我发了一封邮件,里边五道题。一个ER图、四个编程(一道最长子串、三道深度遍历,只会做那个最长子串)

二面

这次二面也是leader面。算是在乌鸫那个大叔之后,被怼的最惨的一次,出乎意料的是,一个技术问题都没有。全程谈人生,谈完我给一面师兄发了微信问了下进度,师兄跟我说凉了!!!!心态大

  1. 做个自我介绍

  2. 你知道为什么要电话面试吗(评估应聘者的能力)

  3. 你知道是评估应聘者能力,但你自我介绍说项目经验丰富,你应该自我介绍的时候就说你做过多少项目,突出一下你的特点

  4. 重新自我介绍

  5. 项目业务

  6. 项目背景

  7. 为什么要从一个单机版的项目转成一个线上项目

  8. 你怎么加入你说的团队的

  9. 学习成绩

  10. 为什么在专业中等水平(平时注重技术这块)

  11. 同学间有没有自己比较钦佩的人(专业第一和一个offer收割机)

  12. 钦佩的理由

  13. 职业规划

  14. 反问环节

后边总结一下这次leader面失利的原因就是自己废话太多。

4 总结

自身原因:基础太差,以前只管做项目,没考虑过底层的东西。数据结构和算法差的不行。这些东西想突击太难

客观原因:油田项目开发周期太长,从去年七月份拖到今年三月交工。五月份因为项目保密的原因(代码不能放在GitHub上),三天内老师给我打了20个电话。

还有的话就是对自己期望太高,想一步登天进大厂。大厂的要求以我现在的水平是远远不够的。面试失利后(尤其是京东二面和新零售二面)调整不了心态。

建议

也不敢说是建议,毕竟现在也没有正式上岸。只是自己春招失利后的一些想法

  1. 基础的东西一定要打好(尤其是数据结构和算法)

  2. 不太熟悉的东西尽量不要写在简历上

  3. 一步一个脚印慢慢来,先定个小目标(挣他个一个亿哈哈哈)

  4. 保持乐观的心态

有道无术,术可成;有术无道,止于术

欢迎大家关注Java之道公众号

好文章,我在看❤️

你可能感兴趣的:(双非本科的大厂暑假实习之旅)