首先,写这一段故事,是因为这一路走来,真的感触很多,我也算比较普通吧,起码我自己是这样觉得的,有崩溃的时候,有感到范进中举的时候
虽说阿里、腾讯offer比不上很多大佬,大佬们都集邮,太强了~
但我真的不是很强,可以说还是有点弱,而且我已经很累了,所以不会再面了~
我单纯想把自己从准备开始到现在的故事分享出来,表达我的感受吧~
当然再过一段时间春招都快结束了,我知道我的进度慢,而且发出来可能帮助不算很大,但更多的我也希望能帮到很多大一大二的想找工作的同学~
以下内容纯属个人感悟,大佬不喜也可以喷
个人介绍
- 学历:C9 山东分校软件工程
- 学分绩:排名 50-60/180
- 奖项:啥啥没有
还有一点:对于程序员,学历在我看来不重要,但是如果你学历差,那一定面试的表现要比人家好才行
还有一点:对于找工作来说,起码对于我们学校来说,大多数课程是真的没用,我觉得,我意识到这个问题已经是大二了,其实如果能早点意识到,早点把重心放在这上面来,或许能更好
说真的到现在我只想说:快逃离 Java 吧,太卷了,转 Go 吧。 我是从大一下开始学 Java 的,虽说不是零基础,但其实到大概十月份、十一月份我才真正的开始准备春招。
下面可能像流水账一样,想快速看的可以只看粗体吧~
实验室经历
实验室概况:
我在大一下加入了我们实验室,然后开始做一些 CRUD 的小项目,然后在大二的时候担任了实验室的主席(主席.equals(工具人) == true)
项目难度:
说实话,几个项目都是小项目,除了学校的项目,真正商业项目 DAU 可能就 10 左右,所以这个实验室的项目真的很不起眼。
面试作用:
在实际的面试中,其实很多面试官都让我讲了我的项目,但是都对我的项目评价不是特别好,一方面确实这几个项目都不是很大或者用户数量很多的项目,另一个确实我也讲得不是很好
实验室总结:
到这里,实验室看起来是很“拉胯”,但是其实我很感谢实验室,甚至说感激我在实验室的经历包括实验室的几个研究生学长对我的帮助。
历届学长的经历一方面给了我“我也能行”的信心,另一方面实验室让我的整个大学生涯围绕着实验室转,我并没有参加什么社团啊,学生会啊,就参加了个足球队。在如今看来,对于程序员也是一个正确的决定。
春招的开始
其实我和 @blockout (可以从牛客搜到,真的超级厉害 https://www.nowcoder.com/discuss/612569)是兄弟实验室的,自从十月份我开始知道他在准备实习之后,我也慌了,连夜在想该如何开始准备。
不过我和 @blockout 大佬不一样,我更喜欢看书,他更喜欢看视频,他是真的靠几个月的视频拿的这么多 offer,不要不相信,我可以作证,他真的太强了,我好羡慕啊~我没那么强的能力,但是我也有我的感悟,希望能帮到你。
说多了,我其实更喜欢看书,我也总结一下大概我认为比较重要的书吧
- Java 方面
- Java 并发编程实战
- 深入理解 Java 虚拟机
- 数据库方面
- 高性能 MySQL || InnoDB 技术内幕
- 操作系统方面
- 建议上课认真听讲 || 深入理解计算机系统
- 计算机网络
- 网络是如何连接的
- 计算机网络(自顶向下)
除了这些,
设计模式:可以看看那些博客的大总结;
中间件:其实我只会 Redis,看了一个《Redis 开发与实践》;
算法:一定要多刷题,多去理解,不要只是做题不去思考题解,不然就会像我一样做了300道,让我面试的时候写道做过的 Medium 都写不出来,而且很多大厂用的都是牛客网的做题系统,而且都是 ACM 模式的,和平常力扣的不一样,可以用牛客刷题提前适应一下比较好,特别是对于输入输出的处理
当然,这些书我现在也没全部看完,还有几本看过的书但是不是特别是重要,当然也不是说要全部看完,只是说这些方面是比较重要的。
春招的准备
当我知道 @blockout 已经拿到美团、百度的寒假 Offer 的时候,我知道我寒假已经无望了,其实当时有点绝望但是还好,咋得,专心准备春招呗。
在我看来,能在寒假找一个实习是至关重要的,特别是对于项目一般般的来说,一个寒假实习能为你的面试减轻不少八股文负担,增添不少项目的亮点
当然,我的一个同学反对我的观点,认为不如好好准备,花时间去切图 or CRUD 没必要
其实面试官也是看菜下饭,你不会他也不会怎么问,所以会什么,就学精什么,不要到时候广的不行,结果问啥一问深就不会了。
首先,我从 11 月开始准备我的自己的面经问题总结,下面是我的准备的目录
- Java
- Java SE
- JUC
- JVM
- 设计模式
- Spring
- DB
- MySQL
- Redis
- 中间件
- Netty、MQ、RPC、Nginx(几个基本问题)
- 计算机基础
- 计算机网络
- 操作系统
- Linux(常用指令等的十几个问题)
- 分布式、微服务(几个基本问题)
整理完这个,我每天就是两件事儿:看书,看别人的面经。
看书:是为了学习知识
看面经:是为了知道面试会考什么(面向测试用例编程)
当然看到面经中不会的也会整理,到现在大概整个我的面经整理大概有三百个问题左右吧
一定要是自己整理的,我感觉自己整理的才是最适合自己的。
而且一定要有自己的亮点,比如我准备了几个问题,如果面试官问到能听到,就很惊艳。
比如我准备了“Spring IOC的底层实现原理”,这个我能讲半个小时,就是整个 refreshContext 方法中几个关键的方法,比如 obtainFreshBeanFactory 来如何构建 BeanDefinition 等等。
再比如我准备了“从URL开始连接到最终网页”,从 Socket 创建到协议栈到 IP,到协议栈到接入网,到运营商。
当然面试官问到这个问题的时候(当然你也要引导面试官让他去往这边问),他就会觉得,你是看过的,自己研究过的
再比如,别只在网上看 JUC、Collections 的源码分析,自己也要去看看,包括一些很简单的方法也要看。
我之前被问到 ArrayList 的插入有几部,这个好像一般网上都没有(因为也确实比较简单),但是我当时看过源码,就说先是 ensureCapacity,里面包含有 modCount 的处理,之后是给数组的 size 处放具体的元素,之后 size++,返回 true
还有,准备的时候一定要全身心投入,也不是说不玩了,我也当然一直在玩原神(原来你也玩原神?),只是说其他的什么上课啊之类的不重要了,玩也可以出去和朋友一起玩,但一定大部分时间都是在弄面试
这里顺便推广一下几个我觉得都比较好的网站吧(大佬有更好的可以告诉我吗 QAQ)
JavaGuide(用来整理知识路线,里面的问题一般般):
https://github.com/Snailclimb/JavaGuide#rpc
JavaDoop(Java 部分源码分析,很精):
https://javadoop.com/
Spring 官方文档(Spring官方文档写的很好,反正我觉得,不过英文也劝退了我):
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#getting-started-gradle-installation
这样可能面试官就不会觉得你是在背八股文,确实一方面要背,另一方面自己也要去看
还有就是我被问到过,非公平锁是不是比公平锁多一次 CAS,这个问题不是经典的面试问题,但是如果你看过,就肯定会知道是。所以一定要理解自己背的东西,不然就是在瞎背,换个方法问就不懂了
然后就是无尽的折磨,直到春节后
春招的实战
其实后来我才知道,很多人初七之后就投简历了
建立准备的话可以用超级简历,不要什么花里胡哨的,程序员,简单点,白底黑字,看着都觉得专业
在我看来,越早投递越好,多找几个小公司,不会去的公司练手。我第一场面试就是面的阿里拍卖,本来想拿 cvte 练手的,但当我三月初投的时候已经没时间练手了
还有投简历的时候,可以尽量多投几个,当然不要海投,安排好自己的时间不要让自己太累,也要让自己有休息,重新看书的时间
三月初,我实在不能再等了,其实这时候我对自己信心并不是很足,每次看面经都有很多问题不会,特别是在我薄弱的 OS 和计网方面,但是已经没时间了,就硬着头皮投了。
关于找内推这个事儿
说实话,现在人人都是内推,内推最重要的就是这个人靠谱,最好是你的亲学长啊认识的人,如果没有最好也是朋友介绍的,不然有内推人你问他你的情况,有的都懒得管你,特别是一些在网上的素不相识的,当然如果没有认识的也就算了,有时候内推不是特别重要
能力才是关键,能力才是关键,能力才是关键
几次面试的概述
3 月 4 日:阿里拍卖一面(第二天过过)
https://www.nowcoder.com/discuss/605425
3 月 5 日:阿里ihome一面(当场过)
https://www.nowcoder.com/discuss/606804
中间我有事儿,缓了几天才做的笔试
3 月 13 日:阿里拍卖二面(第二天过)
https://www.nowcoder.com/discuss/613319
3 月 15 日:阿里拍卖三面(第二天过)
https://www.nowcoder.com/discuss/614862
抱怨一下:阿里 HR 面和发 Offer 拖了好久,搞我心态
3 月 26 日:阿里拍卖 HR 面(让我慢慢等等待)
4 月 3 日:阿里拍卖 Offer
3 月 15 日:腾讯 WXG 一面(秒挂)
https://www.nowcoder.com/discuss/614862
3 月 22 日:腾讯 IEG 一面(当场过)
https://www.nowcoder.com/discuss/620578
3 月 24 日:腾讯 IEG 二面(当场过)
https://www.nowcoder.com/discuss/622909
3 月 29 日:腾讯 IEG HR 面(当场过)
3 月 29 日:腾讯 IEG Offer
3 月 25 日:美团酒旅一面(当场过)
https://www.nowcoder.com/discuss/624072
3 月 29 日:美团酒旅二面(wating)
https://懒得做.com
面试的策略
最重要的:良好的自我定位,不要自卑,也不要太自信
- 首先,搞清楚自己比较想去哪儿(我也好想去外企~)
- 其次,搞清楚自己能去哪儿
- 之后,了解各个公司更喜欢什么样的人(比如字节比较考验算法、阿里比较考验八股文和项目等等)
- 注意一下自己对于转正率和技术栈的在意程度(我就是因为技术栈和转正率不想去 IEG)
- 注意一下自己的承受能力,有的人可以一天面几场,有的人一天面一场就比较累了(比如我)
- 当电话打过来的时候,如果没时间一定要马上约一个有空的时间
- 面试官可能有点喜欢在下午两三点,晚上七点,有午休或者晚上吃完饭困的同学一定要注意以下
- 面试的时候一定要自信,会就会,能说就说,不会说不出来就说不会
- 项目一定要有自己的亮点,能有凸显能力的地方,别什么秒杀系统了,做个什么 RPC 框架也比这个好
心态方面,这是我最想说的
其实我面的是很少的,技术面一共才 8 次,但我已经很累了
一方面可以说我自信,自信在于我只面了这几家
但是另一方面,我确实有时候承受不了这么多, 3月12日的时候我曾经顶不住压力,心态爆炸直接再饭店哭了出来,回实验室后在楼梯间和我女朋友打电话,哭了一个多小时
在这里感谢我的女朋友,愿意在吃晚饭的时间,听我抱怨一个多小时并且给我讲各种发生在他身边的事儿让我思绪离开面试
并且,阿里在三面之后,过了11天才安排 HR 面,我中间催了一次又一次,过了一周才发 Offer,确实把我的心态搞得,害
虽然看得出来我心态确实一般般,甚至不怎么样,但是我也有很多感悟
几个算是我的心态 Tips 吧
- 找一个和你一样找工作的人,不要比你强很多,也不要比你差很多,抱团取暖让你们在抱怨的时候可以互相抱怨(我们每天中午晚上一起吃饭、回寝室的时候就互相“念经”)
- 有女朋友的可以找女朋友抱怨,只要你的女朋友体谅你
- 学会等待,在大概 3 月 14 号左右,@blockout 面的部门就拿到了 Offer,我慌得不行,具体我的进度可以参考上面
- 我知道,人在等待时候肯定会焦躁,我在三月底四月初几乎看不下去,只能烦躁地玩游戏
所以说我告诉自己,学会接受人性。就比如说我们都知道,人的快乐和悲伤其实会来自于比较之中的,我觉得这是是人类的天性,没办法改变,不如让自己接受他。 - 我们同学有面腾讯捞5次挂5次的,真的有 KPI 面试,自己心态一定要调整好
- 面试,50%看你能力,50%看运气,挂了没关系,还能咋的,接着面呗
具体的面试
具体的面经嘛,你们可以看看我的那些帖子
在我看来,面试的时候录音还算比较重要的,一方面可以记录自己不会的问题,另一方面,可以听听自己是怎么回答的,和自己平时背的时候有没有不一样的地方
在此基础上,我也说点面试的 Tips 吧
- 面试的时候做题心态和笔试的时候、平常做题的时候真的不一样,建议练习一下,而且注意白板做题问题
比如:你写的出来 PrivorityQueue 的构造方法和 Arrays.sort 的重写 Comparator 方法吗 - 面试的时候回答问题,很多时候会脑抽,比如那天问我有哪些哈希算法,我居然说不知道
- 面试的时候对于不知道的问题,建议快速通过,不要纠结很久,除非你自己想得出来,比如可以表达“我认为xx”,但是必须言之有理
- 平常看知乎的时候没事儿多看看啥公众号之类的,像分库分表,我之前完全没做过,问到的时候就是回答的一个公众号上的知识,感谢当时我点进去看了那篇文章
给大家的祝福吧
我分享出来,是因为这几个月下来,我真的感觉到挺累的,有很多感触想说,啰嗦了这么多,相信大家都有好的结果,拿到自己想要的Offer~
全部评论
(27) 回帖