二本院校非科班的,从简历被拒,到拿下头条面试,我花了一年时间
Posted java路人甲乙丙丁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二本院校非科班的,从简历被拒,到拿下头条面试,我花了一年时间相关的知识,希望对你有一定的参考价值。
字节跳动的offer到底有多难拿?
是二本院校非科班的,从简历被拒,到拿下头条面试,我花了整整一年的时间。
内推被拒,正如我标题所说,简历被拒。去年3月份在知乎上看到一个头条大佬说可以内推春季实习,于是私信并发了简历给他。看了我简历之后说头条竞争激烈,我背景不够,点到为止。。(打扰了)
准备面试
其实从三月份投递简历开始准备面试到四月份收offer,也不过1个月的时间,但这都是建立在我过去一年的积累啊,无数次的通宵自习室,图书馆的专属椅子都被我坐的陷进去。避免误导大家,这次也不做标题党,写了准备一年,踏踏实实干事。
以下是我去年给自己订的学习计划:
一月:
大数据入门
整个一月份都在刷入门视频和《Hadoop权威指南》,又临近期末,每天5点半起床,看两个小时的视频然后上课或者复习期末考。
二月:
剑指offer刷一遍、数据结构、JavaSE、JVM、多线程
①剑指offer有些搞不懂的直接跳过,等下个月第二遍再刷;
②数据结构重点是各种树、二叉树、红黑树的一些特性以及链表的特性;
③JavaSE主要是类对象接口的区别,能不能继承,Static的特点,各种Hashmap,ArrayList等集合框架的原理源码;
④JVM是根据网上整合的高频面试题进行学习的,刷了一遍面试题之后才去看周志华的《深入理解Java虚拟机》
⑤多线程也是刷网上面试题和博客的
三月:
剑指offer二刷,数据库、操作系统、网络、准备面试
①剑指offer第二遍重点刷第一遍时思路懂代码不懂的。
②数据库刷了牛客网SQL实战100多题的,其他都是索引原理,悲观乐观锁等理论。
③操作系统刷高频面试题。死锁的产生条件、解决方法等等,资源调度算法,并发和并行等。
④网络也是刷面试题。三次握手四次挥手以及为什么要这样做、TCP和UDP、网页请求过程、DNS解析过程、网络模型、响应码的意思等。
⑤我每刷一道算法或者理解了一道面试题都会进行整理,所以到面试之前看看整理的文档和博客就行,异常轻松。这个月也继续投递简历进行面试,从三月份开始都是边投边准备,不存在全部准备好再去投。
三月份收了美团、瓜子二手车等二线大厂的offer。
四月:
大数据项目、手写剑指offer、继续面试
①三月份被阿里菜鸟部门的三面面试官怼了一发,说简历没有大数据项目面大数据岗,理论会再多有什么用,于是打算在四月份补一下项目。
②在补项目的同时,不忘算法,练习白板写代码。
四月份收了腾讯、去哪儿一些offer,腾讯和去哪儿终面都得现场面,所以一天飞北京,一天飞深圳。拿到腾讯offer的时候跟HR商量能不能去上海或者北京的base,HR说不行,于是就没去了。选工作和生活城市有一个硬性标准:离家远!那些在北方读书的同学毕业之后一直要往家里跑,而我则是一直往外跳,或许是因为在厦门待了四年吧,家乡也是「围城」啊。
5-12月:
实习,看框架源码,面试,整理面经
最后选择了去Kyligence实习了,刚好趁这个机会学习了Kylin源码,看了Hadoop和Spark的部分源码。后面的面试也是为了倒逼自己学习,在面试中找不足,也顺便整理了一些面试资料。
总结:
一定要列好自己的学习计划,也要学会根据自己的学习情况调整计划。项目是面试的敲门砖,也是面试的大头,我是从大二出去实习的,所以在项目这边可以花较少的时间,不用从零开始学。底层理论一定要会,不然大厂无望。算法一定要硬刚,总共就那几种题型,我刚开始也很抵触的,觉得太难了,后面迎难而上也就那么回事。
以上是我过去一年的准备,说说我从投递简历到收offer这一个月的准备。
1.复习算法。把以前刷过的算法题分类整理了一下,因为之前有整理过,所以复习起来没用多少时间,还特意去理解了长长的KMP算法,LRU算法。
2.复习理论基础。除了复习整理的面经和资料之外,还特意去了解了一下Golang,因为头条用的go语言。
3.特意准备了几个项目技术难点,能在面试的时候炫一下。
4.资料准备
各大厂的面经
这些也都可以找小编分享一下,转发此文让更多在求职的程序员看到!
一面
- 在校项目后端是怎么搭建的
- 答:tomcat,springboot, mybatis
- 备注:
这里没答好,应该扩展一下,说当时大三水平有限没有做高可用,如果现在做会用VIP+双ng+双服务做简单高可用
- “小程序不支持缓存二进制,因此将小图片BASE64编码后缓存到本地”,还有没有其他优化方案
- 答:优化方案是CDN,讲了CDN大概原理
- 备注:
还可以答图片压缩
- 结合项目讲下加解密方案
- 答:讲了非对称加密(两种应用场景)、数字摘要、数字签名、对称加密、SSL,讲了很久
- 报表接口怎么写的,怎么支持免部署灵活修改
- 答:各种CASE WHEN、IFNULL,把sql存数据库,从db取出sql再执行,有管理后台随时改
- es怎么聚合计算
- 答:不会
- es怎么做range查询
- 答:讲了es的分片、路由,暴力range方案
- es分词原理
- 答:答了分词过程、倒排索引等
- new一个对象的生命周期
- 答:讲了jmm,答了很久
- 老年代除了空间不够,还有什么时候会触发fgc
- 答:System.gc()也会触发,生产环境一般叫DisableExplicitGC禁用System.gc()
- 新生代的对象年龄达到15的时候,会晋升到老年代,为什么是15?
- 答:应该是经验值,如果定得太小,可能对象到了老年代之后很容易死亡,如果太大,可能对象在新生代一直复制,增加开销
- 备注
正确答案,应该是因为对象头的markword部分,存分代年龄的age字段的二进制长度是4,所以最大值是15
- mysql为什么要有最左前缀原理
- 答:是B+树的结构决定了最左前缀,答了mysql的页结构(空闲区,用户记录区,页目录..)、索引结构、聚簇索引、二级索引,答了很久
- 算法题
- 父串里找子串,即indexOf 答:没写出KMP,写了暴力
备注: - 面试时,有提问“子串不存在时返回什么”,“子串出现多次是否返回第一个”,还有一个特殊情况没有考虑到:子串为空字符时返回什么
- 还有比KMP更快的字符串匹配算法: BM(Boyer-Moore)算法 暴力代码运行通过后,让我回忆KMP,没回忆起来,只说了有个next数组...
二面
- 结合项目问
- 项目里F5怎么实现会话保持
- 答:加cookie
- 追问ISO七层模型,F5加cookie在哪一层,ip hash在哪一层
- 备注:
cookie是http协议才有的,所以在应用层ip hash有可能在应用层,也可能在网络层,如果是client->lb lb->server这种模式,就是应用层,因为需要重新发起http请求,如果是通过DNAT协议修改目标地址实现的,那就是网络层
- F5跟Ha区别,为什么F5性能比Ha好,硬件配置相同的情况下,F5还比Ha好吗
- 备注:
“为什么F5性能比Ha好”当时没答出来,正确答案应该是一般情况下,F5是四层负载均衡,Ha是七层。但是F5也可以七层负载均衡,这个时候性能应该不会差太多
- lvs的dr模式
- keepalived的VIP漂移原理
- 备注:
没答出来,答案是VRRP协议
- 讲自己比较擅长的技术
- 讲了innodb页结构、索引原理
- sql调优经验
- 项目整个数据库的最大的表有多大
- 微服务框架熟悉哪个
- 看过哪些源码
- 答hashmap,问hashmap的容量为什么是2的n次方
- 最近在学什么,为什么学
- 怎么理解高可用
- 面试官:你有什么要问我的吗
- 问:有哪些方面需要补强
- 面试官:项目比较传统,其他还好
三面
- 介绍项目难点
- 零拷贝
- FGC的几张情况,怎么排查问题
- 手机刷抖音的时候,视频突然卡住,有哪些原因
- 为什么离职
- 没有算法,总共半小时差不多
总结
准备好一些高频问题,包含技术类和非技术类
- 技术类:
- 看过哪些源码
- 对哪个技术比较熟悉
- 最近在学什么,为什么
- 项目有哪些地方需要改进
- 项目有哪些难点
- 怎么应对突发流量
非技术类:
- 平时怎么学习的,新知识怎么学习
- 自己有哪些优缺点
- 同事怎么评价自己
- 为什么离职
- 还有什么要问的
介绍项目技巧
- 讲项目一定要慎重,讲太深的话,任何一个名词,面试官都可能深入提问,导致自己答不上来;讲太浅的话,面试官会觉得项目难度不够,没兴趣听;
- 说项目的时候,说完痛点,然后说解决方案一二三,以及各自的优缺点,最后生产选了什么方案,面试时,逻辑是否清晰也是很重要的考察指标;
- 突出对业务的深刻理解;
- 用具体的数字说明情况,如qps、db数据量等;
- 把八股文穿插到项目里
算法题技巧
- 注意代码规范,比如注释先行(先写注释再写代码)、对特殊情况的返回值写好注释(比如入参为空时返回什么)
- 善于向面试官提问,体现自己的逻辑能力,以“从父串寻找子串为例(即实现indexOf方法)”,可以提的问题有: 子串在父串中没有出现,返回什么 子串为空,返回什么 子串出现多次,是否只返回第一个位置
- 如果时间足够,按上面的来,如果时间不够,就不要考虑太多边界情况啥的,能过一个case就行
其他技巧
- 语速不要太快,不然面试官理解不了;
- 至少要有一个功能足够牛逼,可以吹很久很久,问项目难点等时候才可以吹;
- 至少要有一项技术足够深入学习,redis、mysql、jvm...都行,吹上了就大大加分;
- 回答问题的时候,先说结论,再说过程,知道结论的前提下,听你讲过程,容易理解;
- 不要一开始就投一堆公司,很可能面完一两场发现简历需要修改;
- 大厂hr面不要撒谎,hr相当专业,很容易看出来;
- 面试其实就是八股文、项目、算法三个方面,三方面都没问题,那就稳了。八股文可以背,项目可以包装,但算法只能靠积累。想进大厂,先刷题,半年起步。
常见问题示例
一个关于如何进大厂的小建议
我一直崇尚「曲线救国」的做法,也一直在向别人传播这种做法。现在能力背景不足没关系,只要规划好自己的学习路线,一步步阶梯式往上爬,总可以实现目标。因为我自己二本出身,但我意识得早,大二就开始实习,用项目和实习经历弥补我背景不足,然后一步步走到「offer自由」。很多时候并不是只有巨人才可以成功,你只需要做到行动上的普通人,就可以超过很多思想上的巨人,行动上的矮子。
1、做到不被同学影响的去学技术,做到和朋友、陌生人多交流,学会做人。
2、网上多找最新的学习视频,多做项目,别总盯着学校教的一分三亩地,学校更多是打基础,只学学校的其他的一律不管在面试时候很吃亏的,脑子里对学的知识有复盘、归类、掌握细节很重要。
3、普通大学生想进大厂请先找个大公司实习,哪怕是外包实习,大公司背书进去更容易,进普通公司更是分分钟的事。
4、从实习开始没事就去面试,没事就看看网上面试的例子。不然直接去大厂那么多轮面试,不挂甚至能说显得不正常。
5、要有项目,如果平时自己做不出来,实习时候也可以直接说明参与公司更大的项目。工作中有经验的人就是比没经验的好用。
6、多找关系多找关系多找关系多找关系(实习时期也是找关系的时期)
最后需要小编的Java基础-中级-高级面试集合以及学习资料分享的话记得一键三连(点赞+收藏+关注)后
以上是关于二本院校非科班的,从简历被拒,到拿下头条面试,我花了一年时间的主要内容,如果未能解决你的问题,请参考以下文章
字节跳动Android岗面试被拒,理由竟然是:背景不够???
字节跳动Android岗面试被拒,理由竟然是:背景不够???
入职四个月后,我当了一回面试官,面试了一名二本院校学生,结果。。。。
双非院校非科班的学弟,刚刚拿到了腾讯网易美团等大厂Offer