目标院校,完全无关的专业。2020年疫情原因导致延毕一年。2021年毕业后考公,直到去年10月份,感觉考公成绩始终提不上去,就想找个支线分摊风险。于是选择了同步自学java。年初考公结果预料中的不理想,开始投了些java校招,只有个别小公司有面试邀请。在这期间了解到了od的招聘,感觉是目debuff叠满的情况下较好的选择了。从三月底开自己准备,到七月中旬入职,也算是坎坷。将这个过程总结下:
1.如果你之前有算法基础,建议直接机试真题开始,辅以lC类似题型的练习.相对来说。机试题可能更加综合,可能是lc题目几个知识点的结合。由于之前没有任何的算法和数据结构基础,我先是在b站看了半个月的算法教程,后面才发现有机试真题试题库(我自己买的题库,多走了弯路,建议直接跟栗栗沟通,栗栗会直接给,省钱,也少走弯路)。
2.八股文主要用于面试,由于是零基础,所以问的不会太深。主要是java集合、线程、jvm、mysql那一套。结合对我零基础的面试来看,jvm和多线程相对问的较少,较浅。主要是集合、mysql结合业务提问。如果有项目,项目中用到的中间件也结合业务提问。
3.面试技术面和HR面主管面注重的点是不太一样的,但都需要能够清晰表达自己观点。HR面时一定要自信表达,由于我有两年空窗期和延毕一年的debuff,所以面试都是先进行hr面的,第一次面试部门被hr面刷掉的主要原因是说我表达能力不行。技术面相对就氛围比较轻松一些,需要谦逊一点,对于提到的问题最好是总分形式进行表述,有时候细节可能不需要说完,面试官觉得差不多了就可以换问题聊了。
这一面面试的HR是那种比较冷脸,问完问题后语气很平淡的,可能是本身性格使然,感觉很有压力,导致表述有些紧张,表达不够清晰。建议有什么问题说的不清楚一定要敢问。后来复盘感觉就是挂在这里。我个人以为是面试的东莞的岗位,实际上是成都的岗位,在这一点上,HR问我为什么选择base地时,这里我当时懵住了。然后我在揣摩到底该说哪里的时候,可能有意的说的比较模糊,而且没有追问,这里可能也就是HR判断我沟通交流能力不足的点。如果追问清楚可能流程会继续推进下去。
这一面面试官人很好。主要面试过程是HR在介绍部门业务和发展历程,因为先进行的HR面,技术面成什么样未知,所以问我的不多,大概就是以下几个问题:
1)为什么选择在base地工作,而不是留在家乡
2)在base地有没有什么朋友,这里我说了下朋友比较少,有几个还在读书,可能会留下。后面看面经,是为了评估稳定性,尽可能往有亲戚朋友上靠会好些。
3)延毕一年的原因,gap year有什么收获之类的。如实回答就好了。
这面的面试官人很好,先是自我介绍,然后从项目展开,边聊边提问,会提示你,并且帮你补充的那种。氛围相对轻松。
1.项目是自学项目,那支付宝sdk对接是怎么做到的,前端是怎么获取的。
2.介绍一下平时用过或者项目中常用的集合以及什么场景选用什么集合。后面还展开到集合不同实现类的优缺点和应用场景。
3.Arraylist和linkedlist 的扩容机制有什么不同
4.使用map,如果想保证添加顺序应该用什么集合。
5.Mysql索引了解吗,什么时候要建索引,最左前缀的索引失效什么情况下查询不需要回表?
6.索引是越多越好吗?什么情况下会有副作用。从增删改的角度来分析下。
7.项目中为什么用redis而不是用本地缓存。
8.项目中用到了jwt,说一下跟session的区别。项目中的jwt密码是怎么存储的。
9.秒杀设计中,如何控制并发?然后扩展到分布式锁的实现上,主要讨论了redis的实现。
10.项目中的mq是怎么用的,用来是实现什么功能?es支持事务吗?
11.Nginx是怎么用的,nginx主要起什么作用。(多台服务器时统一暴露,负载均衡)
手撕代码比较简单,就是一个滑动窗口问题,具体不赘述了。
面试官相对更喜欢让你自己总结性发言。首先是自我介绍,然后提问的问题主要是项目相关问题,八股问的比较少。问题大概如下几点:
1.介绍下项目,实现了什么功能,用到了什么框架,遇到了什么困难,怎么解决的,部署是怎么部署的。(这个如果有项目,建议提前准备一下,看面经过程中,感觉这种提问方式很普遍,这次面试很长时间在展开说这个问题)
2.项目中秒杀使用的redis,这里遇到的问题是怎么解决的(因为上一个问题中提到,讨论了很长时间为什么如此设计)
3.你自己这个项目中,你觉得比较复杂的功能,能找出一个具体讲讲吗?讲几个类,几个方法即可。比如说你秒杀业务讲一下实现逻辑。
4.秒杀订单使用的redis自带的过期监控机制,为什么这么设计,有没有替代方案。
5.线程池的核心线程数设计应该从哪些方面考虑?
6.Java中整个集合体系,说说你的理解
7.Mysql在写sql语句时怎么注意性能,或者怎么进行性能优化
8.你在写项目代码的时候在设计模式方面有做什么考虑吗
9.重载和重写的区别
10.怎么判断一段代码写的是比较好的?或者说怎么保证写的代码质量
11.你项目中,你认为你做的比较好的地方,讲一讲。
手撕代码,本来也是个挺简单的题,就是将字符去重,逆序输出,并计算无重复字符间差值和。主要考察手撕排序。结果因为靠前临时看的快排,边界条件没记清楚,陷入无穷递归死循环了。最后面试超时,才跟面试官说能不能改用冒泡,然后用了五分钟冒泡排序手撕出来了。(教训是能用高效的方法就用,用不对就尽快转暴力或者复杂度相对高点的方法,以出结果为首要前提)。
这一面跟二面氛围差不多,面试官会引导回答问题。具体问题跟前两面差不多,由于这一面没有做记录,这里一一列举了。手撕代码是机试题库的BR对称问题,十分钟左右完成,后面面试官看还有时间,又聊了些八股内容。
主要就是考察个人的稳定性和学习能力。主管人较为和善,聊家常的形式展开。先是自我介绍,然后就是提问环节。主要有以下几个问题。
1.自我介绍完,对于延期一年的解释
2.为什么选择base地,在base地有没有亲戚朋友
3.你自我介绍说自己学习能力强,如何体现的。
4.你的导师对你评价是怎样的,你的朋友、同学对你的评价是怎样的。
5.你觉得到目前为止最有成就感的事
6.你到目前遇到的最大挫折是这么
7.对未来的规划是怎样的
8.说说你对华为的看法。
9.期望薪资是多少
hr面和主管面主要是考察资格、注重交流沟通能力考察和稳定性、学习能力,有些会比较热情主动、也有些会比较平淡无波,需要做的就是平常心看待,不要怀疑自己,有问题大胆问。技术面面试官有引导提问型和总结性提问并让你自由发挥的类型。后者对于准备较充分,希望带面试官到自己擅长领域的人比较友好,前者则对基础比较薄弱,相对偏八股广覆盖面的面试者比较友好。最好是两种都要做好应对。
最后的最后,一定要鼎力推荐我们的hr,栗栗姐(lfyslp),热情而且敬业,会给你提醒踩坑,会帮你催进度,流程卡住会帮你联系换部门。可谓是无微不至,简直比我都要上心。如果有要来od的,首选栗栗姐!完结,撒花~