引言

今天给大家分享一个我的读者的故事,这个故事很长,从游戏boy到offer收割机,从富士康到百度再到微软,国内知名大厂的公司他都拿了一遍offer。

这当中有太多心酸和努力,在他的身上我也能看到一些自己的影子,希望大家可以从他的文章里有所收获,有所感悟。

话不多说,我们来听他的故事。

正文

国庆节的第一天,自习室里已经没有什么人了。窗外,西安的秋天飘一点点雨,坐在电脑前心情十分平静。想在这个难得的闲暇里,想起记录一下自己这些年的经历,也是给自己留一点以后可以回忆的故事。

个人2014年入学,武汉某大学计科相关专业,学科评估200名开外。

大一上学期一门专业课差点挂科,直接奠定了无法保研的局面,开始浑浑噩噩混了两年。除了高数上下,其他能逃的课基本都用来打英雄联盟了。

16年升大三的暑假,一个偶然的机会看到隔壁院的师兄发在群里的一条实习招聘,是武汉富士康招聘软件测试实习生。

暑期岗位,能签实习证明,有班车来学校接送,一天还有220工资。我觉得这是个很好的机会,起码富士康这个厂也算有些名气,能赚个实习经历还有点工资。

我向师兄报了名,简历里面特别注明了大学C语言92分,班级第二。简历通过的还算顺利,也没有面试,直接就让去了。

当时负责的任务主要是Windows 10 SP1的多国版本测试任务,跟我以为的进去的写代码相差甚远,就是个黑盒测试吧,或者再说直白些,就是点点点的无脑操作没什么技术含量。

不过由于是对接外企,所以任务都是英文下达的,有时候翻译还是得花点功夫,英文能力倒是得到些许锻炼。测试需要自己组装机器,选择各型号的cpu和显卡等配件。

因为是第一份实习,我学习的非常认真,直到现在我仍然能够闭上眼睛,清晰完整的回忆出一台整机的拼装全过程。

CPU的引脚,内存条的金手指和各式各样的SATA线束是那段时间接触最多的东西。

机器点亮后就开始做DASH(从服务器上下载测试版本的系统并安装),然后是激活系统开始对照着测试用例展开测试。

差不多两个星期之后,常规的操作已经比较熟练了,任务也显得逐渐无聊了起来。由于DASH的过程很漫长,我经常会在三楼到四楼的楼梯口望着窗外的太阳,不知道是哪个有趣的同事在窗台用矿泉水瓶养了一个小叶子,我看着这抹绿色总是很舒服。

富士康的生活很规律,八点半到工位,五点半出公司,日复一日的装配着各种方案让我在想,以后我要从事这种枯燥但是轻松的工作吗? 想了想还是写代码做需求比较有意思。

由于本科学校不太好找工作,而我自认代码能力还可以,所以我决定通过考研来获得一个更好的教育背景或者说,一个让公司能够看上的背书。

大三暑假正值备考,跟我关系不错的老师给了我一个机会,说有个师兄在美团,想把我的简历推给他。我当然很激动,花了一下午的时间准备了一份简历:xx学校,计算机专业,主语言java,曾经做过xx校园app的后端功能以及一个在线OJ评测网站... ...

简历发给了老师,一天,两天,一个星期过去了,老师说那边认为简历还是太单薄了,不能发起面试。

那天我感到一阵失落,我以为起码能有个面试机会,结果却是简历都过不了。

我对自己的代码水平还是比较有信心,但恰恰是这种信心带给了我更大的失落。我生气的跟舍友说,以后绝对不去美团,他求我去我都不去。这当然是一个大话,只是孩子心气地不肯承认罢了。

考研历时五个半月,还算顺利地通过了初试复试,来到了西安的一所高校开始了研究生阶段的学习。

那时候有同学说,一个叫字节跳动的公司能开很高的工资,不过对算法题的要求很高。

这也是我第一次听说字节跳动,研究生的课和本科其实没有太大的区别,至少对我来说都是不怎么听的进去的(当然也有部分非常优秀的课程,这是后话了)。

但我在课上发呆的时候,慢慢地却不会再去想我要怎么操作我的英雄站在兵线前面干掉对面的玩家,LOL至今都没时间再玩了,时不时看看比赛倒也对青春有个交代。

研究生阶段无聊的时候,一般我会打开牛客网,在上面做几道题目,看着各种计算机网络和操作系统的知识,总觉得自己永远也学不完了。在浏览讨论贴的过程中,我渐渐发现网友会去做一些算法题的训练,一般在leetcode上。我也随之注册了这个网站,全英文的界面让我觉得很有范。

没多久我就决定要开始我的刷题之路,我仍然记得第一题好像是求两数之和,其实这个题目我在备考时的九度OJ上做过,感觉应该难度不算太大,磨了一些边界之后,当一个绿色的Accept出现在眼前,我觉得这种感觉就像是我用XX√√√完成了一局BO5晋级赛。

于是我的生活变得更简单了,能逃的课就在寝室和图书馆刷LEETCODE,不能逃的课就在课上刷LeetCode。我尽量保持在一天6+的题量,有时候会做到10+,我喜欢看到登录界面上的绿点连成一片的样子。

不过由于课程作业和考试原因,有时候也会中断好一会。我非常清楚的记得在一个下雪的午后,我完成了在Leetcode上的第一百个Accept,那一题调了两个小时,是LRU置换算法的实现。我激动的发了一条朋友圈,拍下100/1300的标记。

我觉得我好像会离字节这样的公司近一点了,在刷题的过程中我也会穿插着学习一些计算机网络的东西,主要是为了应付面试。搜索的资料很杂,大部分来自博客和B站。

包括在刷题的过程中我看的算法视频也是在B站搜罗的盗版,主讲人是左程云左神,也是我心目中永远的真神。那一版的视频左神的桌面还是齐天大圣飘着红色披风的背影,后来在北京时期我补上了欠左神的正版课,这也是后话了。

研一暑期我也开始投一些公司的实习,我惊奇的发现,大部分的笔试都拦不住我了,反正基本没有因为笔试挂过的公司,也拿到了一个不错的机会,但因为一些原因未能成功去实习。

后来看着同学们都出去了外面的公司实习,我的心里又开始痒痒了,打开牛客网,翻查着有限的实习信息,看到一个爱奇艺的招聘机会。

一轮大概50分钟左右的面试,主要是针对OJ项目,后面问到了Java异常机制,泛型的实现,FutureTask的实现思路,以及一些线程池的问题,线程池这个我没用过所以就说不会。

当天晚上八点,面试官问我公司在北京,能不能来实习,我想都没想就说地点绝对不是问题,于是我定了第三天最早的一班高铁,花了一天的时间收拾东西,其实我不是为了带走什么,只是要把它们放在朋友那里。

我带走的只有一个背包,里面放了两天的换洗衣物,我的各种证件,一小盒谷维素(改善失眠)和一本深入理解Java虚拟机。我觉得做Java的人,这个东西带在身上就很有安全感,有信仰陪着我,虽然我从来也没有翻开过。

房子是在高铁上租的,转租的人是个字节跳动的运营,地点就在人大旁边,离爱创大厦很近。

我还记得当时我的leader在做完新手教程后,就过来帮我搬电脑,带我整理工位,简单的交代了一下之后,就慢慢的开始了开发流程。

第一次进入大公司实习,第一次来到首都北京,红绿灯前等待的全部都是清一色年轻的面孔,有那么一个瞬间我恍惚地看到,斑马线变成了律动地音符,而这个城市年轻人的心跳就是它的节拍。

我喜欢早上骑着师兄传给我的美利达,再放一首Young For You, 我觉得我就是属于这个时代的年轻的人儿。

作为新人,要学习的东西很多,一般我会十点半以后下班。而且我喜欢前紧后松,所以会把心中的工期排的靠前一点。

我惊讶于自己学了一年没学懂的Spring框架在公司捣把捣把竟然就能上手一些项目了,这种学习的速度是我从来没有想过的。

周末我也会在公司赶需求或者自我学习,累了就去对面吃一个麦当劳甜筒,有时候也会去咖啡厅坐会。那通常是因为我解决了一个困扰很久的Bug.虽然在爱奇艺的生活很充实,但是心中还是有一份大厂梦。

19年的国庆,整整八天我都呆在公司看着各种字节跳动的面经和算法题,只要有一题我觉得我可能不能100%实现,我都会上Leetcode立马把它AC掉。

行内的朋友可能知道这是怎样的痛苦,因为一道题有思路和真正稳稳地实现它,中间的差距实在太大了。

7号的晚上,我坐在电脑前,关上所有的页面,打开Eclipse,花一分钟或者几十秒撸了一发快排,测试用例直接写在main里,一把过,我关上了电脑回家。

这是我自己的习惯,每逢大战,我都会在最后以一个快排收尾,因为当年就是这个代码断了我的保研路。开发的时候我用的更多的是IDEA,但是写算法题我只用Eclipse, 因为算法题对依赖环境的要求很低,基本上有个JDK就足够。

而我是个恋旧的人,所以我把自己最擅长的方面,留给我的老朋友Eclipse。

结果并不像过程一般顺利,也不是每个幸运都会眷顾努力。

12号一天两个公司面试,分别在早上10点和晚上7点开始。紫金数码园成为了我永远的痛,我记得他们问的都是比较深入的问题,诸如TCP,UDP能不能绑在同一个端口,Java的线程底层是如何实现的,TCP和IP的详细报文结构,报头,进程切换的上下文到底包括什么,哪些寄存器,CFS算法如何实现的等等。

最后我实在烦了,我说我就不会操作系统,他又问了个字符串匹配算法,我给他详细的讲了KMP的实现,然后他让写个树的深度遍历。我火一下子上来了,我觉得你可以挂我,但是不要用这种简单的东西来拖一下面试时间让我体面的离开。

我就说:这个东西太简单了,我不想写,你可以问个难点的。

他让我写Linux的定时器算法,我想了很久,没想出来,事实上我都没听过这个东西,自己设计了一个类似哈希表的结构希望来存放这些定时任务。他表示摇头,我知道今天就到这里了。

现在回想起来,我并没给到面试官足够的尊重,多少年少轻狂了点。   

直到最近这个月,我开始认真的阅读深入理解Linux内核,才明白当时我到底错在哪(当然时间轮算法是我在第二天就去看了的)。

字节的面试是在晚上,七天的努力好像什么效果也没有,因为我准备的面经基本一点也没被问到。

走在中关村大街上,我觉得今天有点格外的冷,只能把耳机的声音调的再大一点,宝石老舅的Disco让我的情绪稍微得到了一些缓和。

他后面是怎么拿到字节、微软offer的?他的面试之旅又有怎样的奇特遭遇和翻转?我们下期见

未完待续.....


©著作权归作者所有:来自51CTO博客作者mb5fdb09f39fed1的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 敖丙读者字节、滴滴面经(已拿offer)
  2. python入门之 字典算法实现及操作
  3. 解密算法思维
  4. Spark 背后的商业公司收购的 Redash 是个啥?
  5. 中美科技公司与印度科技独角兽的“缠斗”
  6. HBase调优|HBase + G1GC 性能调优
  7. 基于行列式点过程的推荐多样性提升算法
  8. 我,大厂离职,拿着千万美元融资搞了个近乎全是程序员的公司
  9. 【Github】NLPer-Interview: NLP 算法工程师相关的面试题

随机推荐

  1. Android系统开机启动流程
  2. android相关文章收藏
  3. Android学习——在Android中使用OpenCV的
  4. Android日历行程
  5. 保存BitMap,File到本地
  6. Nodejs 或 js 判断手机操作系统 Android
  7. Android系统Choreographer机制实现过程
  8. [Innost]Android深入浅出之Binder机制
  9. json解析查找指定数据字段
  10. android 微博客户端源码