首页 > 成绩80%老废物进大厂经验分享
头像
不失业就算成功
编辑于 2021-04-19 16:14
+ 关注

成绩80%老废物进大厂经验分享

个人背景

五个学期的总成绩排名80%多, 无实习,无比赛,无项目, 三无选手, 大学打了两年半lol的网瘾少年,老废物一个了

图片说明

今年春节期间,在老家闲着无聊,觉得该为自己以后的出路做打算了,一开始一直在纠结考研还是就业,犹豫了许久还是决定就业了,原因大概有这么几点:

  1. 考研有风险,我并不算是非常聪明的那种类型,英语数学专业课对我来说就是种折磨,自己也不擅长考试,不然也不会排80%,要是我考研多半是要二战三战,我并不太喜欢这种容错太低的选择
  2. 放弃卷算法岗,高考填志愿的时候AI挺火的,几个职场精英的亲戚都建议我学AI,所以大学期间选的选修课都跟AI有关,后来发现算法岗太卷了,又要考研,又要比赛,又要顶会,又要实习,而我可能连考研这关都过不去
  3. 工作经验也很重要, 开发岗的话,三年的工作经验不一定比读研三年差,能进大厂的话可能成长得还更快些
  4. 兴趣爱好, 感觉自己并不是很喜欢AI,也不太喜欢搞科研,更喜欢偏工程一点的工作
  5. 不想给家里添负担了,我想现在就能让父母休息,不想再等三年了
  6. ...

从二月底开始刷题,看八股文,每天从早上7点学到晚上12点,一个半月的时间通过了BAT其中一家Java后端的面试

面试准备

算法题

从二月底开始刷,刷了一个半月,我刷了不到200道,刷的路线大概是:

  1. leetcode从数组到并查集之前的标签,每个标签都刷了三四道简单,五道以上中等(个人感觉 数组,动态规划,字符串,树,链表 这几块考得最多,就刷了十道以上中等)
  2. CodeTop上面对应公司的高频题

然后是多总结
比如做排序这个标签的时候,我看了下菜鸟教程以及其他的一些博客,对十大排序算法有了大致的了解,形成一个体系,下次再碰到排序的题至少不怎么会有知识上的漏洞了

图片说明

还有高频题多做几遍

我面试的时候还是蛮紧张的,一写算法题大脑就完全空白,即便是做过好几遍的题,自己面试的时候写出来感觉还是很困难,为了确保自己不动脑筋也能写对,就默写了几遍例如 快排, 二分查找这样的常用模板, 高频题也多做了几遍

图片说明

高频题感觉还蛮有必要的,时间不够的话就直接刷高频题吧

我BAT总共面了四次,每一次都碰到了做过的高频题,每道也都比较顺利地做出来了

八股文

我主要是看了这两个github上百万星的项目,看了半个多月

JavaGuide

CS-Notes

个人感觉大厂实习比较看重基础,咱就把系统设计之前的看了就好,SSM框架,spring boot啥的简历上不写一般都不会问

具体点来说就是下面这些知识点:

MySql,计算机网络,操作系统,JavaSE,Java虚拟机,Java多线程,Java I/O

另外,我感觉上面两个网站有些知识点其实讲得不太清楚,就又配合了一些书籍和博客理解得更深一些

比如MySql的主从复制,都草草几句略过了,感觉没学懂,就又看了这篇博客

书籍推荐:

Mysql: 《MySQL技术内幕 InnoDB存储引擎》

计算机网络:《计算机网络:自顶向下方法》

Java虚拟机:《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》

我主要是看电子版pdf的书,然后书上的内容也并不是全部看,而是看面试考察重点的部分

比如深入理解Java虚拟机, 我就看了垃圾回收部分,一些垃圾回收器(CMS,G1,ZGC),JVM调优,性能监控啥的就没看

后期还剩一周左右的时候,主要是看牛客上对应公司的面经,遇到自己不太会答的问题就搜一下

要是这些面经能答好70%以上感觉都是有希望过的

面试

个人感觉通过全凭运气,参考意义不大哈,只是鼓励大家失败也不要气馁,多尝试,总会有机会的

一面

  1. 自我介绍:
    仅仅是说了姓名,大学,专业,目前大三, 主修了哪些和岗位有关的课程, 个人兴趣爱好是看博客啥的体现对技术的热情

  2. 项目介绍:
    说了小学期大家都做了的邮件系统,STAR法则介绍了下项目

  3. 项目相关:(一开始觉得自己做的这个项目就是个玩具,以前的项目都是随便说了两句就结束了,直到遇见了这个面试官,项目聊了十分钟左右)
    你们是怎么保证用户使用不同的IP地址时能正确地收到邮件的(自己写了个注册登录系统)
    描述下你们的数据库表结构,用了哪些字段(有mail表,user表,mail表里有sender和receiver的ID字段,和user表有个外键的关系)
    那这个外键关系是一对一,还是一对多,还是多对多呢? (一对多)
    你们项目用了什么应用层协议? (没有用应用层协议。。。)
    哦,直接用socket通信的吗? 那你说说什么是socket (socket是传输层提供给应用层的一个接口,功能是实现进程与进程之间的远程通信)
    socket的使用方法 (客户端:创建socket connect send... 关闭socket, 服务端 bind, listen。。。)
    有了解IO流吗? 阻塞和非阻塞有什么区别 (不会,对IO流不熟悉。。。)
    还有些别的想不起来了

  4. 剩下就是些八股文了
    MySql的事务隔离级别
    分别解决了什么样的问题
    脏读,不可重复读,幻读是什么,举例说明
    MySql怎么实现不同的事务隔离级别? (说了MVCC, 通过undo日志,readview实现,间隙锁解决幻读)

    一个对象的建立过程(类加载检查,类加载包括加载、连接、初始化, 分配内存,设置对象头,初始化)
    其他想不起来有啥了,和牛客上的差不多,只记得一个ZGC答得不好,说了一下知道用了个染色指针,使用了CPU的地址作为标志位

  5. 算法题, 一道简单的二分查找:排序数组中找出一个数出现了几次
    一开始没注意>>的优先级,写成了这样

    int mid = (right - left) >> 1 + left;

    焦虑地检查了十分钟,大脑一片空白,面试官很耐心地等着
    最后把上面改成了这样就过了

    int mid = (left+right)/2;
  6. 反问:
    部门主要用什么技术栈(java, ssm, spring boot,大数据)
    对实习生要求(能尽快上手就好)

  7. 面试官的鼓励: 我觉得你的基础还是可以的,就是紧张了点,下次自信点就好了,这边就先给你过了,一会HR会联系你后面的流程

真的太感谢这个面试官了,很多问题不会,答得不是很好,很全面,还是给过了,面完以后还安慰,鼓励了我一下,呜呜呜,太感动了

二面

这个面试官感觉很厉害的样子,一直在忙,比约定时间晚了四十分钟才开始面

算法题: 最长回文子串

问的内容跟一面差不多,有好多都重了

后面很多都跟技术无关了,比如什么时候能入职,能实习多久等等

第二天HR打电话来直接约了HR面,竟然没有第三面了,可能是部门原因吧,也可能是三面的面试官太忙了,哈哈哈,还是非常幸运地通过了

总结

希望大家不要过度地悲观, 大家大部分人都比我聪明,比我厉害,我这么菜都能进大厂,你也一定能进的,只要自己努力了,相信一定会有好结果的,加油!

全部评论

(15) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期精华帖

热门推荐