23届双非本科上岸字节百度实习

个人介绍

背景:23届双非本科无大赛获奖经历,由于我们省份取消了一本二本的划分,所以统称本科,如果在区分的时候,我们学校应该算是一个二本,但是由于近年名次有所提升,也可以称得上一本院校了。开源贡献者(RuoYi系列的部分BUG改进)

回顾一下自己的面试经历

我是在11月低(11.30号)开始投递简历的,也是大学期间第一次投递,当然首先肯定不会是大厂,因为想先面试小厂积累积累经验嘛,其次就是确实也没准备好。但是在投递我们市区的小互联网企业的过程中,收获并不大,甚至有些公司问的知识很少很浅,但也有部分公司还是比较可以的,实习薪资也算是还可以吧,二线城市,实习薪资在5-6K。总共投递面试了大约6家我们这边还不错的公司,然后6家公司全部发放了实习offer(这些经历更多的还是锻炼自己的面试以及表达能力)。之后大约是在12.3号的样子投递了一家国企:浪潮,面试感觉还是挺不错了,深度和广度都有考察,对我来说,也是第一次遇到一个很聊得来的面试官。然后第二天hr就问了一些情况,发了offer。流程还是很快的,并且那个时候就在想,寒假的时候就去浪潮吧,还是蛮不错的。

但是我的一个朋友,比我大一届,我们两个经常线上分享一些资料,毕竟他大我一届,从他身上我也学到了很多。在他的建议下,我在12.6号投递了第一家大厂:字节跳动,其实那个时候自己并没有准备好,并且对于我而言,我感觉字节是所有大厂里面最难的(1.算法 2.计网和操作系统),因为大学课程没有涉及操作系统,大三下学期才会学到。所以那个时候我还是非常没有底气的.并且双非出身的我,一度以为简历也可能会挂掉,但是在12.8号收到了简历通过的通知,想要约我面试,那个时候内心慌得一批,一想这可是大厂啊,并且我12月中旬面临着所有专业课(智能科学与技术)的考试,由于整个学期都是在学习java的相关知识,期末考试对于专业课我还是很头疼的,就这样,我和hr说要求约在12月28号面试,hr一听,感觉太晚了,就问能不能提前,面试1小时就可以。然后我当时想算了,打不了我继续冲春招嘛,然后说10号以后吧,具体我看下时间,然后就hr加我微信了。最后在10号我联系了hr约在了13号下午一面,从10号那天开始,我也正式进入了海投的阶段。由于阿里没有实习岗位,没有投递。投递了大约10多个公司吧,比如:百度,滴滴,快手,美团,小红书,小米,网易,哈罗出行,蔚来汽车,完美世界,差不多就这些了。

然后简历挂的只有网易。

其次就是石沉大海了,像滴滴,快手,美团,小米,哈罗出行(没hc了)

当然可能是双非被卡学历了,也可能是没hc了。具体也不知道什么样子了。

但是给我面试机会的,我还是非常珍惜的,因为双非的学历在这摆着,给了机会所以会很珍惜的那种,也比较感谢所有给予面试机会的公司,也比较庆幸所有面试的公司也过了,除了小红书。

小红书一面就挂了,那天上午是一门专业课期末考试,10点吃完早饭,中午饭没吃,下午6点面试,那天状态也很差,头还晕,本来是想改约的,后来还是坚持去面了,但是整体表现很差,所以说,大家面试状态一定要好,如果身体不舒服,不要硬撑,一定去找hr商量改时间。最后,直接就g了。也还好吧,或许过了也可能不会去了。

字节的整体面试,一面面试官是一个小姐姐,超级温柔的那种,真的很nice,整体前15分钟都在聊项目,之后就是基础那些,再就是三道题。二面面试官交叉面试的,项目问了10分钟不到吧,然后就是拿项目的个别场景进行延伸设计,还是蛮有挑战性的。之后给了困难的算法题,a的比较快,又来了一道场景设计题,是一个POI聚合,难度比较大,结束后,百度也没百度出来啥答案,整体还是围绕共享来设计一种结构算法。三面就是大leader了,挖项目,超级细节,挖的很深,一个点的所有实现细节让你说一下,以及数据库的设计,为什么这样设计数据库。聊了项目30min吧,就到了算法题了,最后又来了一个PC端实现扫码登录微信(挖的细节)。整体还是比较不错的,前两面的面评听hr说,分数很高,具体没说,就说很nice,三面我感觉表现一般,面试完差不多5分钟就通知过了,然后1小时后四面,hr面,1小时后hr面过了,然后offer审批那天是12.31号流程比较慢(因为二面我推在了我所有期末考试完才开始约的,所以在我拿到offer之后,跟hr聊天的时候,她告诉我,一面的那个组没hc了,把我调到了三面的那个组,所以说面试还是要早,没hc就gg)。还有一个时间点是,三面之前,百度已经发offer了,所以整体对三面的紧张程度还是不大的。

百度面试的感觉,其实有点难受,每一轮面试都是压力面,问的非常深,全部都是底层源码的实现,10个问题9个问的源码怎么实现的,这里我幸好看过一些实现源码,但是也有部分没有答出来,但是面试官还是比较nice的,当我回答这个结构不知道具体底层源码实现的时候,面试官会让我自己来设计一个,问我我会如何设计,算法题也是去实现你通过自己想法设计的结构进行手撕(在wps上面手撕,真就啥提示没有,大白板),整体难度我感觉还是非常大的,感觉跟社招一样,后面我把面经列出来,大家可以看一下。但是最终也是通过了三轮面试,顺利拿到了百度offer。

还有蔚来汽车,完美世界,他们面试也是比较快的,蔚来汽车三面,完美世界三面,整体体验挺不错的,但是每一面都有算法题。

面经(尽可能想起来多少写多少)

1.字节跳动一面(60min)

  • 项目(每一面都会问,并且会抓住一个点深挖,甚至让你拓展)20min
  • 你对自己项目的部分业务进行了重构,发生了哪些冲突,怎么解决的
  • 一致性哈希算法
  • 重定向的相关问题
  • 3XX 4XX状态码
  • sychornized与volatile区别
  • 数据结构的部分介绍
  • 分布式的相关问题:session共享,分布式锁
  • 缓存击穿的解决(双缓存,分布式锁看门狗)
  • mysql的三种日志的用途
  • 主从复制原理
  • 缓存一致性处理方案
  • sql查重统计
  • 线程安全的单例,括号生成,24点游戏
  • 反问

1.字节跳动二面(50min)

  • 项目 15min

  • 分布式的部分问题

  • 内核态和用户态

  • 线程与进程区别

  • 虚拟内存的相关拓展

  • 分页和分段的一些介绍

  • 置换算法

  • 还有一些忘记了,操作系统问的蛮多的

  • Redis数据结构的底层实现(压缩链表,跳表。。。)

  • 哨兵问题

  • 合并K个有序链表

  • 实现POI聚合(1000W个POI,10W个村庄,给定经纬度和id,如何查找一个村庄3公里内的所有POI,保证效率最高)

  • 上面那个我第一时间想到的是Redis的GEO,后来问了我GEO的具体实现,之后又说假如不使用Redis,自己如何设计,巴拉巴拉,共享,面试官感觉还OK,然后就结束了

  • 反问

1.字节跳动三面(70min)

  • 项目(问的非常深,并且让我写伪代码实现,数据库设计,为什么这样设计,以及索引的使用,测压问题)35min+
  • 实现一个HashMap(涵盖淘汰策略,最近最少使用LRU)
  • PC端微信扫码登录的整个流程(问的非常细节)
  • 反问
  • 总体感觉,气场蛮足的,部分细节考虑的可能存在欠缺,5min后hr说面试通过,约四面(感觉表现不如一二面,感觉一般)

1.字节跳动四面hr面(35min)

  • 个人的基本情况
  • 专业
  • 项目背景
  • 有没有投递其他公司,有没有拿到offer
  • 。。。。。。忘了,巴拉巴拉说了很多

2.百度一面(60min)

  • 深挖项目(就挖的很深)

  • hashmap的底层实现(细节到Node的属性,以及链表怎么转成红黑树)

  • JVM内存

  • JMM相关介绍

  • JUC的相关问题,AtomicXXX的实现

  • Redis跳表

  • 还有一些其他的问题也是源码的,记不起来了

  • 手撕LFU要求时间复杂度O(1)

    利用优先队列实现的,O(logn),O(1)没写

  • 反问

2.百度二面(60min)

  • 这个面试完,写面经了,所以比较全,自我感觉跟社招一样

    1.项目

    2.定时任务的底层源码

    3.RabbitMQ延时队列底层实现的

    4.RabbitMQ使用需要注意什么?(答得不好,需要注意消息的可靠性)

    5.RabbitMQ效率

    6.插入延时队列的过期时间是单调的吗?

    7.JAVA实现延时队列(手撕,线程安全没写完)

    8.对延时队列的动态时长怎么控制?

    9.Excutors中存在的线程池的实现(ScheduleThreadPool)

    10.阻塞队列的底层实现(我说的ArrayListBlockingQueue)

    11.Condition 的底层实现

    12.ReentrantLock的底层实现

    13.结合AQS底层怎么实现ReentrantLock的(公平/不公平,可重入的操作)

    14.多线程下ReentrantLock的阻塞队列的并发安全的怎么实现的?

    15.AtomicXXX底层的实现

    16.并发编程的介绍,我说的CompletableFuture<>

    17.CompletableFuture的链式处理怎么实现的,异常怎么处理的

    18.写代码

2.百度三面hr面(20min)

  • 个人情况
  • 巴拉巴拉结束了
  • 反问

3.蔚来汽车

​ 一面

  • ​ 算法题 3数之和为0,要求去重

  • ThreadLocal的使用,以及实现,以及出现的问题(内存泄漏)

  • Executors中实现的缓存线程池的一些细节

  • 还有一些比较基础的问题,忘记了,记起来再更新吧

    二面

  • ArrayList与LinkedList的效率,如何测试,测试方式

  • 框架的一些基础问题

  • 还有一些问题,忘记了

    三面hr面

  • 巴拉巴拉

4.完美世界

  • 一面二面都是一些折中的基础问题,难度适中,就不写了

5.浪潮集团(浪潮国际)

  • 分布式事务,怎么保证最终一致性
  • 抢座高并发多线程问题(字节二面也问到了,忘记写了)
  • Alibaba开源的seata
  • 流水线部署k8s,Jenkins
  • mysql oracle事务
  • String StringBuffer StringBuilder
  • 锁的介绍
  • spring boot使用的一些收获,简单介绍整个启动流程(源码)
  • 算法:两个队列实现一个栈
  • 还有一些问题记不起来了

总结:

双非并不是没有任何希望进大厂,也不是说简历过不了。我在大一大二的时候,其实内心还是有大厂梦的,但是被身边的人影响了,他们给我传递的思想就是:双非简历过不了。但是后来也比较幸运,我认识了一些朋友,也是双非的。因为我在大二下学期,跟他们做过某师范大学的一个心理评测工程项目开发,然后他们其中一个人,今年9月拿到了阿里offer,也是在今年9月,我也坚定了自己以后的方向,冲大厂。既然别人都可以,为什么不能是自己?现在想想大三上学期,确实每天都在努力的路上,时间安排基本就是7点左右起床去图书馆,这期间可能还会有专业课,再跑去上课,再回图书馆学习,晚上9点30闭馆后,去公教楼继续学习,基本回宿舍的时间都在晚上11点半左右,在12月甚至到12点,那段时间或许那些大四的学长学姐们在考研路上的不断努力,也在督促着自己。其实有时候,就会想,这个世界没有绝对的公平,只有相对的公平。既然院校是双非,那么肯定自己在高考阶段付出的比双一流院校的同学要少,那么只能在技术上面提升自己。直到现在,也算是完成了21年9月份定下的目标,但还是要继续加油。双非并不是自己进不了大厂的借口,或许只是缺乏逼自己一把的勇气吧。少研究别人,多提升自己,不是成功来的慢,而是自己努力不够狠,努力只能及格,拼命才能优秀。加油吧!

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>