从简历被拒到收割今日头条 offer,我用一年时间破茧成蝶!

本文是 无精疯 同窗投稿的面试经历 关注微信公众号:进击的java程序员K,便可获取最新BAT面试资料一份

在此感谢 无精疯 同窗的分享
目录:
印象中的头条
面试背景
准备面试
头条一面(Java+项目)
头条二面(大数据+项目)
头条三面(算法+场景题)
如何经过头条笔试?
如何准备头条面试?
一个关于如何进大厂的小建议
1、印象中的头条
先说说我印象中的今日头条:
1.老板张一鸣跟我是福建老乡,龙岩市在我朋友说来就是山沟沟,能走出美团王兴和头条张一鸣让我卯足了去龙岩吃特产老鼠干的欲望。java

给的钱多,笔试也贼难 。
参加过头条笔试的同窗都知道,头条笔试能够笔试三次,就是不论你有没有参加都有三次机会。
笔试就5道算法题,两个小时,去年第一次看到算法题就自闭了,第一次挂了。第二次又很认真地作,作到一半放弃了。没过几天又邀请我作第三次,有一种强行被侮辱的感受。node

内推被拒 。
正如我标题所说,简历被拒。去年3月份在知乎上看到一个头条大佬说能够内推春季实习,因而私信并发了简历给他。看了我简历以后说头条竞争激烈,我背景不够,点到为止。。(打扰了)程序员

clipboard.png

2、面试背景
自从去年被头条笔试的算法凌辱和被头条的前辈指教了以后对头条没啥好感了,也感受进不去,因此后面大半年都没关注头条的招聘,直到如下两件事情的发生。面试

1.有一天,以前一块实习的哥们说进了头条,我也蠢蠢欲动打算开始搞了。那时有一个不成熟的想法: 「连他均可以进,我应该也能够吧」redis

clipboard.png

2.正好在健身房认识了一个在抖音作数仓的小leader,我以为这是天意啊。因而免费给他上了节私教课(ps:本人业余爱好健身,很有心得),上完让他帮忙内推。算法

3、准备面试
其实从三月份投递简历开始准备面试到四月份收offer,也不过1个月的时间,但这都是创建在我过去一年的积累啊。无数次的通宵自习室,图书馆的专属椅子都被我坐的陷进去。数据库

同时本身为了准备面试也整理了像BAT这种大厂的一些面试题,java核心知识点整理,在准备面试须要资料的朋友,能够加JAVA架构技术交流群:714827309点击连接加入群聊【JAVA高级架构技术交流】https://jq.qq.com/?_wv=1027&k...
下面是我在准备面试时候看的书单,对我拿到offer帮助很大数组

clipboard.png

都是比较不错的书单安全

如下是我去年给本身订的学习计划:
一月:
大数据入门。整个一月份都在刷入门视频和《Hadoop权威指南》,又临近期末,天天5点半起床,看两个小时的视频而后上课或者复习期末考。微信

二月:
剑指offer刷一遍、数据结构、JavaSE、JVM、多线程

①剑指offer有些搞不懂的直接跳过,等下个月第二遍再刷;

②数据结构重点是各类树、二叉树、红黑树的一些特性以及链表的特性;

③JavaSE主要是类对象接口的区别,能不能继承,Static的特色,各类Hashmap,ArrayList等集合框架的原理源码;

④JVM是根据网上整合的高频面试题进行学习的,刷了一遍面试题以后才去看周志华的《深刻理解Java虚拟机》。

JVM难的不是JVM布局,垃圾回收算法等这些理论,而是结合代码和项目场景。

好比说一段代码,有不少个类、方法,其中又有静态类和全局变量,这时候项目跑起来的时候哪些先加载,哪些变量存放在哪一个区

不止要懂理论,还要结合代码懂理论。还有就是项目中的OOM,栈溢出,JVM的参数调优等等。

⑤多线程也是刷网上面试题和博客的,几本多线程的书都是一坨一坨的,理解不来。

先动手把几个多线程实现方法实现了一遍,而后分析优缺点,再由此切进去线程不安全和各类锁。

多线程学习不一样JVM,本身多动手,多调试一下,控制台都会告诉你答案。

三月:
剑指offer二刷,数据库、操做系统、网络、准备面试

①剑指offer第二遍重点刷第一遍时思路懂代码不懂的。

②数据库刷了牛客网SQL实战100多题的,其余都是索引原理,悲观乐观锁等理论。

③操做系统刷高频面试题。死锁的产生条件、解决方法等等,资源调度算法,并发和并行等。

④网络也是刷面试题。三次握手四次挥手以及为何要这样作、TCP和UDP、网页请求过程、DNS解析过程、网络模型、响应码的意思等。

⑤我每刷一道算法或者理解了一道面试题都会进行整理,因此到面试以前看看整理的文档和博客就行,异常轻松。

这个月也继续投递简历进行面试,从三月份开始都是边投边准备,不存在所有准备好再去投。

三月份收了京东、瓜子二手车等二线大厂的offer。
四月:
大数据项目、手写剑指offer、继续面试

①三月份被阿里菜鸟部门的三面面试官怼了一发,说简历没有大数据项目面大数据岗,理论会再多有什么用,因而打算在四月份补一下项目。

②在补项目的同时,不忘算法,练习白板写代码。

四月份收了腾讯、去哪儿一些offer,腾讯和去哪儿终面都得现场面,因此一天飞北京,一天飞深圳。

拿到腾讯offer的时候跟HR商量能不能去上海或者北京的base,HR说不行,因而就没去了。

我选工做和生活城市有一个硬性标准:离家远!那些在北方读书的同窗毕业以后一直要往家里跑,而我则是一直往外跳,或许是由于在厦门待了四年吧,家乡也是「围城」啊。

5-12月:
实习,看框架源码,面试,整理面经

最后选择了去Kyligence实习了,恰好趁这个机会学习了Kylin源码,看了Hadoop和Spark的部分源码。后面的面试也是为了倒逼本身学习,在面试中找不足,也顺便整理了一些面试资料。

总结:
首先,必定要列好本身的学习计划,也要学会根据本身的学习状况调整计划。项目是面试的敲门砖,也是面试的大头,我是从大二出去实习的,因此在项目这边能够花较少的时间,不用从零开始学。

其次,底层理论必定要会,否则大厂无望。算法必定要硬刚,总共就那几种题型。

我刚开始也很抵触的,以为太难了,后面迎难而上也就那么回事。第一遍不行就第二遍,否则就第三遍,直到如今剑指offer里面也有一些我不懂的题目,但我也不会去深究, 大局为重,不抠细节 。

别的同窗放寒假的时候,本身一我的在学校旁边租了个小房子学到过年前夕;为了巩固实习的项目更好地面试,跑了几回以前实习的公司请同事吃饭问项目细节;为了阿里面试用肝硬刚,连夜复习(不过这样对身体很差,仍是不建议)

简历投的太多,信息都被卖了,并且一听到手机响就觉得是面试电话;去腾讯终面,在深大的通宵自习室连夜复习。

clipboard.png

以上是我过去一年的准备,接下来再说说我从投递简历到收offer这一个月的准备。

复习算法 。把之前刷过的算法题分类整理了一下,由于以前有整理过,因此复习起来没用多少时间,还特地去理解了长长的KMP算法,LRU算法。

复习理论基础 。除了复习整理的面经和资料以外,还特地去了解了一下Golang,由于头条用的go语言。

特地准备了几个项目技术难点 ,能在面试的时候炫一下。

4、头条一面
(Java+项目)

头条一面的面试题,主要focus在java和项目,下面我列举了一些我还记得的,给你们看看:

讲讲倒排索引的原理? 讲讲redis里面的哈希表?happen-before的规则?

volatile修饰符,synchronize锁,聊一下你对它们的理解?

java单例模式的实现,懒汉、饿汉? 进程与线程的区别,多进程和多线程的区别?

HashMap原理,为何用红黑树,红黑树的特色? 快排时间空间复杂度,最好最坏的状况,优化方案?

TCP的拥塞控制,具体过程是怎么样的?UDP有拥塞控制吗?如何解决?

讲讲了解的垃圾回收算法和回收器,何时执行STOP THE WORLD?

了解Go语言吗?

5、头条二面
(大数据+项目)

二面重点则转移到了大数据,针对大数据相关的技术的各类问题,炮火依旧猛烈:

Kylin的项目架构?Paxos和ZAB协议, CAP理论,分区容错性的意义?

HDFS的读取、写入,容错处理(从源码级别解释),N amenode HA,脑裂,Yarn的调度机制。

大表Join小表优化,如何处理数据倾斜? 讲一下最大堆和最小堆

MapReduce的过程(初版和第二版的)、MapReduce shuffle,Spark shuffle。

Hive的内部表和外部表区别、数仓建模模型、数仓分层、雪花模型和星型模型。 了解ClickHouse吗?它与Kylin的区别?

6、头条三面
(算法+场景题)

三面就来算法了,总得来讲还好,没有遇到变态级别难度的题目:

LRU算法实现(伪代码) 链表倒数第K个数(讲思路)

一堆螺丝和螺母用最短期匹配(代码实现)

求天天浏览页面的新用户(Hive QL实现)

求抖音小视频每日点击量最高的10个(Hash + 最大堆)

7、如何经过头条笔试?
此次的笔试里总共有5道,我AC了2.5题,第一题90%,第二题90%,第三题70%,不算好,但勉强经过了。

去年的这个时候我但是连题目都看不懂的,看得懂的只知道用嘴怎么说,不会用代码实现。

经过这段时间的算法训练,总结了以下几点算法笔试经验:

平时刷题必定要总结概括,最好分类 。
好比关于树的题型,链表的,数组等等,观察它们的解题思路,总结出解题套路。

积累工具类算法 。
什么叫工具类算法?就是你解一道算法题须要用到另外一种算法,这个被调用的算法就是解决这道算法题的工具。

好比常见的「深度优先遍历」、「广度优先遍历」、「01背包」、「KMP算法」以及常见的选择和排序算法都是常用的工具类算法。

学会抽象题目 。
笔试算法题不一样于面试算法,不会直白跟你说要使用哪一种算法去解答,更多的要本身学会抽象。

你须要抛开题目自己,要明白内部讲的是什么,别被题目的糖衣炮弹迷惑了。只有把题目抽象成最原始的算法你才能更好地使用工具类算法进行解答。

8、如何准备头条面试?
头条面试和其余大厂可能大同小异,但就是这个小异才是关键地方,能异于其余人的地方。能够从以下几个方面去作准备:

特地准备几个面试题源码
像我在回答一些中规中矩面试题的时候,都会从源码角度出发。好比常见的HashMap等集合类,多线程的各类锁以及大数据框架的部分源码。

特地准备项目难点
面一些大厂的时候避免不了被问到项目难点,不可能用普通Bug含糊过去啊。

这边能够从项目用到的技术栈出发,去寻找技术栈在项目中会存在的难点,而后套进本身的项目,找个本身能懂,最好能全懂的。

针对性去了解公司的技术栈使用状况 。
好比头条使用Go,众人皆知,那为何我不突击学习一下呢?

好比我从业内人士得知头条最先使用的是Kylin框架,后面慢慢转为ClickHouse。

那既然这样, 我必须了解一下二者的不一样啊,并且还能够结合头条的业务场景来进行了解。

9、一个关于如何进大厂的小建议
我一直崇尚「 曲线救国 」的作法,也一直在向别人传播这种作法。

如今能力背景不足不要紧,只要规划好本身的学习路线,一步步阶梯式往上爬,总能够实现目标。

由于我本身二本出身,但我意识的早,大二就开始实习,用项目和实习经历弥补我背景不足,而后一步步走到「 offer自由 」。

不少时候,并非只有巨人才能够成功,你只须要作到行动上的普通人,就能够超过不少思想上的巨人,行动上的矮子。

相关文章
相关标签/搜索