不用多说,相信大家都有一个共识:无论什么行业,最牛逼的人肯定是站在金字塔端的人。所以,想做一个牛逼的程序员,那么就要让自己站的更高,成为技术大牛并不是一朝一夕的事情,需要时间的沉淀和技术的积累。

关于这一点,在我当时确立好Java方向时,就已经开始梳理自己的成长路线了,包括技术要怎么系统地去学习,都列得非常详细。

 

4面拿下了字节跳动offer

大三下学期找了一家互联网公司实习,大四的时候就已经在开始规划毕业后的打算了,关于校招也在着手准备中,当然目标要放高一些,所以阿里、腾讯这些自然要尝试。最终的结果去了字节跳动,这个面试过程是比较险的,因为我的目标是阿里,所以框架类的东西准备得多一点,算法基本上没太看,却没想到还真是走了“狗屎运”。

字节跳动一面:

  • 实习项目就聊了差不多30分钟
  • 问了MySQL的索引
  • redis的string类型
  • 为什么使用RabbitMQ?
  • RabbitMQ有哪些部件?如何保证准确性跟一致性?
  • hashcode和equals?
  • 动态代理
  • 快排
  • 无序数组计算每个位置大于前面的多少个数字(归并排序)

字节跳动二面:

  • 问项目
  • 如何进行JVM调优?
  • cpu满了重启系统后好了,但是一会又满了,如何具体解决?
  • 问了如何设置秒杀系统?
  • 如何设置银行系统,会碰到什么问题?
  • 为什么项目中使用了mongodb?
  • 同样两个算法:

一个文本距离计算(用动态规划解决)

一个是无序数组可以存储多少雨水问题

字节跳动三面:

  • 设计SQL和表
  • JVM结构
  • 平时怎么学习的?
  • 看了哪些书?
  • 如何设置一个抢红包的功能?
  • 以及自己项目中碰到了哪些问题?如何解决的?
  • 项目的技术选型以及为什么要选择它?
  • 然后最手写一个算法?
  • 实现对hashmap增强,加上过期自动删除还有淘汰策略实现最短过期时间删除?

HR面:

  • 聊我的实习经历
  • 问了一下技术规划
  • 还投了哪些公司?
  • 对字节跳动了解多少?用过字节的什么产品?如何评价?
  • 为什么没有考研?
  • 说说你在项目中最大的收获

面试题答案

幸运只给有准备的人,“狗屎运”并不是真狗屎

虽然自嘲自己走了狗屎运,但是我永远都明白一个道理:幸运永远只会留给有准备的人,机会来了,你得有能力才能抓住。

因此,在面试这些一线互联网公司之前,我早就开始做准备工作了,包括学习新的技术,提升自己的技术水平,甚至刷面试题,看面试帖,这些都对我的面试起到了极大的帮助,关于面试的准备,我主要是做了以下几个方面:

以下内容涉及到很多网盘资料(包括视频、笔记、技术文献以及面试题库),有需要的一键三连后“加我VX小助理:mxzFAFAFA”即可免费获取到!

 

(1)通过视频来系统性地学习

大学学得内容广,但是泛,不够系统不够深入,所以只能够通过业余时间来“补课”。我的方式是自己搜罗整理了一套Java零基础的学习视频,从零开始学起,全部视频看完之后,基本上有一个非常清晰的思路和框架结构了。

 

(2)阅读前辈的一些技术笔记

这些笔记是找学长和论坛上的技术牛讨来了,翻阅了不少,确实对很多技术点的认识有所帮助,学习到了不少的思路。

 

 

(3)刷题备战,直通大厂

刷题是为了了解现在的大厂面试时会问到什么,另外也能够提升自己对技术的记忆点,使得在面试时更有底气。实际上,刷题时我们灵活一点,学会举一反三,在真正面试时还是能够起到一定作用的。

 

 

总结

爱默生说:一个朝着自己目标前进的人,整个世界都给他让路。所以,作为二十岁的你,不惑很简单,多思考多规划,未来会更清晰,朝着自己的目标一步一步走下去,尽早地取得成功。毕竟,年龄在程序员界里,也是一种优势。

如果,你没有靠山,就让自己成为自己最稳的靠山吧!

关于这一点,在我当时确立好Java方向时,就已经开始梳理自己的成长路线了,包括技术要怎么系统地去学习,都列得非常详细。