看完这篇面经,我再也不用担心面试了!

lanqiao 发表了文章 • 0 个评论 • 10 次浏览 • 21 小时前 • 来自相关话题

  作者:全国花式撸管大赛总冠军 截止目前面试,除了阿里跪了以外(他的笔试我实在是不会。。。),其他的都是sp,分享一下经验吧: 最高的是快手,接近50W   先自我介绍一下 ...查看全部
 
作者:全国花式撸管大赛总冠军

截止目前面试,除了阿里跪了以外(他的笔试我实在是不会。。。),其他的都是sp,分享一下经验吧:
最高的是快手,接近50W
 
先自我介绍一下,双非本科计算机专业,986硕士通信专业。成绩年纪倒数..... 研一下册开始学Java,开启了我的Java后端人生.....
 
首先我觉得学习技术分三个过程:
 
1、要会用,熟练使用 ,例如你可以比较熟练的使用Java的各种容器拉,像LinkedList ArrayList Hashmap Set啥的,当然你要是学了框架,也要会用spring 的依赖注入啦,AOP之类的。这是用的层面。
 
2、理解运行原理:只是会用,是完全达不到面试要求的,面试官要求我们不但要会用,而且要知道其运行原理,例如你要知道LinkedList 底层是链表,ArrayList底层是数组啥的,要知道谁是线程安全的容器,哪些不是,知道线程池的运行原理,拒绝策略之类的。这些是面试官问的比较多的,考察候选人对知识是不是有仔细去钻研过。
 
3、理解为什么原理是这样,或者说为什么会这样设计:例如你知道HashMap的运行原理了,你肯定知道底层是一个数组+很多条链表实现的,那人家为什么要这样设计呢?想一想HashMap设计的初衷,想用key通过时间复杂度O(1)内拿到对应的Value,对吧,那现实中是会有hash冲突的,那有冲突咱们必须解决啊,所以链表就形成了,对吧?为什么要设计链表,知道了吧?因为要解决冲突,那链表的出现带来了一个问题,HashMap设计的初衷,想用key通过时间复杂度O(1)内拿到对应的Value,但是链表变长是不是就对时间复杂度O(1)相违背了呢(因为定位到一个数组之后,还需要遍历一下链表才能通过key拿到value)?于是乎有了链表长度达到8之后 会进行转红黑树,对吧?所以转红黑树这个事情其实 服务于HashMap设计初衷:用key通过时间复杂度O(1)内拿到对应的Value。这些东西可能需要看一下源码,你才能理解得更清楚。比如java的锁,synchronized 为什么反编译后 只有一个moniter enter,但是却有两个moiter exit?对吧,需要你琢磨一下,这样可能才会明白一个东西为什么这样设计。
 
上面三个过程
对于第一个过程:会用,我觉得看视频是最直观的了,对于这种实践的东西,别拿书来啃,弱智才会做这样的事情。有视频,跟着搞 一会儿就搞定了。看书 枯燥无味,总之凡是需要实战的,项目的 我都看视频,才不会去看书.....
 
关于看视频
2、看视频,我推荐我看过的慕课网的视频,慕课网上有很多好视频,但价格昂贵,但是建议去淘宝搜吧,10-20元就能买一个非常好的视频:
 
Java:
如果您什么Java基础都没有,推荐看 传智播客的 基础班+就业班,淘宝买吧 估计1元就能买到 哈哈哈哈
如果要提高和面试下面的教程不错,都是慕课网的
Java并发编程入门与高并发面试
一站式学习Redis 从入门到高可用分布式实践
Java开发企业级权限管理系统
Java秒杀系统方案优化 高性能高并发实战
Java从零到企业级电商项目实战-服务端
算法:
推荐三个:
牛客网左神教的算法
看得见的算法 7个经典应用诠释算法精髓
学习算法思想 修炼编程内功
算法看完了 还得多练
 
 
书籍:
深入理解JVM虚拟机 必看
Java并发编程艺术 or Java并发编程实战(注意!不是Java并发编程实战手册) 两个选一本看 我看的前者
 
欢迎加我qq交流:Cindy_ababy
啥牛客网 leetcode多刷一刷。
 
如果三面三个步骤都做到了,我相信一线互联网离你就不远了
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
补充一下 忘了说:
计算机网络  操作系统 问得也比较多, 数据结构多数以笔试的形式出现
计算机网络问得比较多的有:TCP 3次握手4次挥手   拥塞控制 流量控制 快重传 这一系列的
操作系统:啥线程进程区别 烂大街的问题了。。。还有内存分配  有些面试官还会问问协程
 
还有一点需要注意,我上面说的看书,例如《深入理解JVM虚拟机》  之前看到网上有人说,这个书一定要看完 多看几遍,我想说:放你妈的屁,如果为了面试,不要全部看完!!!太浪费时间 就把常见的问题看好 理解好就行了!!!!! 谁tm再说这本书需要看完 我跟谁急!!!!!!
听我说,就看看 垃圾回收算法 垃圾回收原理 常见垃圾回收器 类加载机制,双亲委派模型 然后 Java的逻辑分区 堆 栈 方法区啥的 搞清楚 一个对象在哪里 一个成员变量存在哪里 一个局部变量存在哪里 如果是局部变量是一个对象的 引用呢 存在哪里?

双非的秋招

lanqiao 发表了文章 • 0 个评论 • 37 次浏览 • 3 天前 • 来自相关话题

作者:感谢牛客啦啦啦 坐标深圳,本人双非一本,本科生,Java岗位,大一大二基本没学习,无开发实习经历。 秋招基本结束了,当故事看就好了,有心路历程,所以略长。 海能达:官网,三面,offer ...查看全部
作者:感谢牛客啦啦啦

坐标深圳,本人双非一本,本科生,Java岗位,大一大二基本没学习,无开发实习经历。
秋招基本结束了,当故事看就好了,有心路历程,所以略长。
海能达:官网,三面,offer
百度:官网,笔试,面试,没过
顺丰科技:官网,笔试,面试,二面,HR面,offer
华为:官网,笔试,面试,综面,录用排序,电话offer,offer
华锐:猎聘,测评,笔试,HR面,面试,终面,offer
平安科技:官网,测评,语音面试,笔试,面试,二面,HR面,offer
腾讯:官网,笔试,面试,二面,HR面,offer
迅雷:官网,笔试,性格测试,面试,二面,没过
招银科技:官网,笔试,面试,二面,HR面,没过
 
8月份之前,在金蝶做运维实习,整理了这三个月学到的东西,发现最熟练的是看日志这个技能,头痛。暑假还剩一个月,秋招逐渐逼近,开始啃框架,买了Java疯狂讲义SSM框架那本,从隔壁宿舍的携程大佬要了视频资料,然而沉不下心来,每天只有下午在啃,这一个月效率很低。但是后来发现应付面试绰绰有余,秋招面试问到框架的很少,基本只问概念不问用法。
 
9月初开始陆续投简历,秋招一共投了三次简历,一共60多家公司,一半以上有反馈,结果投的时候发现秋招早就开始了,还没准备基础知识,脑壳有点痛,跟其他早早开始准备的人相比进度太慢了。参加过春招后,知道知识点不深入的话,学了也没用,面试官不可能只问你表面的东西,好在实习的那三个月每次摸鱼的时候都会偷偷学一点。
 
学习路径挺重要的,投完简历后本来打算花一天来确定思路,结果当晚就收到了海能达的面试通知。海能达是最早面的(9.2-9.5),投完第二天就去面试,周日一天三面,挺水的,基本是聊简历聊经历聊未来,问的几个技术性问题也是开放性的。周三上午录取签约会,然后拿到了人生中第一个纸质offer,现在还保存着。
 
海能达薪酬给了10k*14,每个季度还会发7k的绩效费,一年下来17w差不多。在金蝶实习的时候听说金蝶的运维8k、开发10k,导致我秋招一开始的预想是8k,挺心动的,我是一个知足的人。然而海能达8点就要上班,周一二四加班到九点,周六上班,业界人称小华为,而且确实喜欢拿自己跟华为做比较。好在当时学校还没发三方,而且周六加班有点接受不了,海能达又很偏通信,研发水平不高,就没急着考虑。
 
一开始没什么梦想,春招的时候一开始面了4次,腾讯提前批一面挂,腾讯正式批一面挂,跑去广州面微众也是一面挂,大姐帮我内推了阿里,结果电话面试就挂了。当时甚至连JVM是什么都不知道,刷了牛客后才知道这么多底层知识课堂上没有教。后面面试金蝶能过是因为岗位要求本身就很低,当时听说金蝶是个大厂就去了,结果到头来连开发的实习经历都没有。索性自暴自弃,想着能找到什么公司就去什么公司,结果秋招刚开始就拿到了海能达的offer,而且薪酬还超过了我的预期。
 
接下来就是被各种笔试轰炸,阿里(9.7)、用友(9.10)、迅雷(9.14)、百度(9.14)、顺丰(9.15)、腾讯(9.16)、华为(9.19)、微众(9.20)、招银(9.25)、商汤(9.26)、小米(9.27)、携程(9.27)、优刻(9.29)。宇宙条和追一科技拒了我的简历,连笔试机会都不给,阿里和商汤的笔试很难,被刷了,但是国庆某晚收到了商汤hr电话,当时在玩游戏,所以让她15分钟后再打,结果再也没联系过,估计是有人补坑了。至于微众和携程,做的时候觉得挺简单的,大题全AC,后面也没通知,可能太晚投,当时想的是越晚越好,能准备的东西越多,没想到还有hc满了这种操作。
 
9.20去面百度,我后来一直以为面百度是在9月初,不然自己怎么会面的这么烂,翻了下邮箱才知道这么晚,真的不知道20号之前在准备什么。现在回想一下,好像基本都没怎么学习,半个月啃下SSM太累了,回来之后颓废了两周。面试当天碰到了舍友,一起被叫了上去,百度是在食堂面试的,没被叫到之前要按位置做好,很严肃,很快就被叫到了,面试官挺胖的,没有自我介绍,直接问问题。 

  • 介绍一下MVC架构,听成JVM,越说越不对劲,赶紧回头将MVC,慌了,讲了一点后卡住。

  • 实习期间一直用Linux是吗,怎么对文本文件进行空格分割,不会。

  • 写个算法吧,二叉树求宽度,写了半天发现只是求出叶子结点数量,不会。

  • 那写个sql语句吧,有个成绩表,查出所有科目成绩大于85分的人,不会。

  • 那说下简历里面你觉得最有挑战性的,知道面试官什么意思,无奈说了浏览器。


 
百度面试的印象挺深刻的,透心凉,介绍实习经历的时候给自己挖了Linux的坑,二叉树宽度是烂大街的问题,那个sql也是非常简单,用not in反逻辑就好了,当时完全没复习编程题和sql语句,连思考都不会,真的菜。体验更差的来了,一面之后坐在最后一排等候结果,有位姐姐负责把没通过的人带下去,几轮下来,我一直没被叫到,还以为过了,开心的不行,结果坐了大概一个小时,我问那位姐姐怎么这么久,她查了一下,说了句“你今天的面试就到这里,可以先回去了”,然后就带我下去了,想骂人。期间还看着舍友面完了三轮,心情沉重,秋招第一次起伏,打的回去之后整个下午都很难受,在网上进行第二次海投,消磨时间。
 
不甘,第二天开始真正意义上的闭关,这样算下来实际上整个秋招只有9月21号到10月7号是真的用心在学习的,时间不长,我很怕自己毕业后会后悔,每天埋头苦刷,晚上偶尔玩一下。现在统计了一下,在此期间,我在leetcode上刷了38道easy/medium难度的题目,在剑指offer上刷了41道,在牛客上刷了250道选择题,同时整理了Java学习笔记,每个专题都啃到了源码阶段,JVM、GC、ClassLoader、多线程、设计模式、锁、集合类、并发包、常用关键字和API、二叉树,还有一些零碎但是经常问到的知识点,本来想着国庆期间把牛客上的sql专题刷一遍,后面复习完后觉得太简单,不再浪费时间。
 

 
Leetcode


 
剑指offer


 
到这里基本就差不多了,国庆回来之后更多的是在做整理,将知识梳理在一起,这么多内容,虽然实习期间也做了一部分,但是闭关那几天效率真的很高,还好头发还在。闭关第一周之后迎来了两次面试,第一个是顺丰科技(9.28),视频面试,视频面试也是一问一答,但是因为是视频面试,所以思考的时间被拉的很长,基本几秒下来就要出结果,不然气氛会很僵硬,好死不死在此时被问到了框架的具体用法。
 

  • SpringMVC运行过程,答只学了Spring跟Mybatis,不会。

  • 那介绍一下Spring框架,答IOC容器跟AOP。

  • Spring怎么通过注解来进行依赖注入,答放在Bean类的属性定义中。

  • 那具体用到了哪些注解,自动注解呢,不会,说了个@autowire。

  • 线程池实现原理,介绍了几个参数跟具体实现类。

  •  


其他问题还好,框架这部分答得很烂,9月基本在学习Java底层,框架的书再也没碰过,也没被问到过,突然深入,头都烂了,而且是第一次视频面试,很少时间思考和回忆。当时觉得自己凉了,但是第二天是华为的面试,只能压抑情绪,忍住不悦,急忙把框架的书重新翻了一遍,怕第二天又被问到。
 
然后就到了华为了(9.29),在大中华酒店,刚登记完坐下来就被叫进去一面,当时阿里笔试挂,百度面试挂,腾讯笔试大题做的不好,所以觉得bat都没了,只剩下华为了,导致自己又开始紧张了起来。一面问了很多,但是基本都是我闭关那一周学到的东西,记得很熟,张口就来,而且面试官问的问题很友好,基本都是从起点引进,让我自己发挥,然后时不时打断,问个深入的问题。全程基本是我在说话,说到后面喉咙都哑了。
 

  • 介绍一下建模过程,说了自己负责的内容。

  • 介绍一下安卓浏览器,说了自己做的一些功能,然后面试官开始拓展,估计他学过android,问的很专业,然而我基本忘光了,只求快点跳过这部分。

  • 怎么处理页面间信息交互,答handle类和intent类。

  • 这个浏览器是多页面吗,答单页面,但是开多一个线程就好了。

  • 任务下载管理是多任务吗,答单任务,但是开多一个线程池就好了,我真是找死。

  • 能缓存吗,答能,那缓存太多了要怎么解决呢,答4种引用里面的弱引用和软引用, 然后借这道题终于扯到GC去了,谢天谢地。

  • 回收算法,全都说了,还自己拓展了垃圾回收器,CMS、G1原理。

  • 类加载过程,拓展到了双亲委托机制。

  • 乐观锁和悲观锁,说了原理。

  • 事务,说了4大特点以及脏读、幻读、不可重复读。

  • 二叉树,简单说了下AVL树、红黑树和B 树。


 
面完之后叫我出去等一会,喉咙真的哑了,但是体验很好,面试官一直点头微笑,而且允许我自己拓展,面试的时候能自己带节奏真的很重要,否则很多会的知识没法展现出来。等候区有水果,不过没心情吃,二面很快就来了,坐下来的时候看了下桌上的牌子,写着综合面,技术性问题很少,主要聊项目,聊经历,然后笑着让我自己吹牛,看能不能打动他,大概是这么个意思。二面也扯了30分钟以上,面试官告诉我一面是个20级的大佬,华为几万员工只有400个20级的,吃惊,面试官最后跟我说觉得我对算法和数学自信的话,适合往AI方向走,然后开始造航母,不敢反驳只能点头,早就听说华为会随机分岗,没想到一点都不含糊,当面分岗。结束之前还给我推荐了几本书,说看好我,保持联系云云。出来之后拿着水果猛吃,心情很愉悦,总觉得自己过了,而且收到了半个口头offer,喜悦,开始心理上享受国庆假期,闭关还在继续。
 
国庆结束,银十来了,没记错的话回来之后并发包那一块还没看完,多啃了三天,然后就发烧了。十月份的笔试也挺多的,我还以为都是9月笔试10月面试,没想到回来后又陆续收到了笔试通知,华锐(10.9)、滴滴(10.10)、平安科技(10.10)、乐逗(10.12)、乐信(10.13)、深信服(10.13)、交通银行(10.17)、茁壮网络(10.17),后面三个笔试都拒掉了,等不到流程结束,也不想去,深信服是测试岗位,不过后来听说都是考编程,茁壮听说是个坑,一个月8k。十月份一直有在刷牛客,看各种帖子秀各种offer,很希望自己也是在等待开奖的那群人,然而只有华为走完了流程,其他的很多连一面都还没开始。
 
10号是顺丰科技的hr面,收到通知的时候有点惊喜,没想到自己一面能过,结果刷了下牛客发现顺丰hr面会刷人,急忙准备了一下常问问题。又是视频面试,依旧提前十五分钟打开网站进行无聊的等待,面试官是个中年女人,前面聊的还不错,聊到后面发现有代沟,而且有些问题我觉得挺无聊的。
 

  • 为什么不考研,答比较想直接出来,不想花一个学期准备,可能失败。

  • 了解顺丰吗,还好提前看了,答智慧物流、无人飞机。

  • 记忆最深的一件事,成就感最大的一件事,失败的经历,觉得自己有什么优势。

  • 个人规划,我说全栈,她说什么方向的全栈,僵硬。

  •  


12号是平安科技,面试前收到了华为的有缘再会短信。平安科技的流程很奇葩,先做了一套行测题,然后做了一次语音面试,再做了一次笔试,然后才开始通知面试。一面技术面,半小时差不多,问了很多基础,都答上来了,最后出了一道数组中找到和为目标值的算法题,剑指offer原题,很快写出来,然后就回去了,听面试官的语气就知道过了,当晚收到二面通知。同时还收到了腾讯的面试通知,不知道被哪个部门捞起来了。
 
然后就是一个短暂的周末,国庆回来之后的两周特别忙,面试数量特别多,还有好几家小公司的没写,15号下午去面了平安科技的复试和hr面,一群人在一个会议室里面等,我又是一坐下就被叫过去面试了,毕竟每次都是踩点到,问简历问项目,问了一大堆,出来刚坐下,又被叫去三面,旁边还在等的人估计很纳闷。三面就是hr面,平安科技的面试感觉跟海能达有的一比,总体下来有点水,我在hr面的时候还问了一下到底是靠什么刷人的,面试官说笔试和语音面试会占一定比例。
 
面完平安科技,回来之后急忙开始准备第二天早上的腾讯一面,然而复习到一半收到了平安科技第二天早上的签约会通知,跟腾讯的面试冲突了,愣了。当时海能达的offer已经失效了,如果平安科技的offer也放弃的话,手里一个offer都没有,未来都是未知数,跟朋友讨论了一番也没有结果,沉默。
 

 
可是还是太想去腾讯了,即便我学的是Java,16号早早出门,9点出就到了科兴科学院,熟悉的地方,大三来这里参加春招被虐,今天又来了。然而这次面试是固定时间的,没法提前,在催了前台工作人员的情况下,我还是10点半才开始面试,另一边的签约会已经基本凉了,心情复杂地走进面试厅,是位年轻小哥。
 

 
自我介绍完就开始问问题,我猜到了腾讯问的知识点很广,却没猜到可以问这么久,面试官明显是学过java的,从JVM问到了框架,然后就是一些操作系统和数据结构的知识,Linux常用命令、TCP和HTTP协议、Hashmap的源码、ConcurrentHashmap和CopyOnWriteArray的原理、多线程状态和死锁、搜索二叉树原理。深度都不会很深,也不会很偏,基本都在我的知识体系内,从闭关到今天,我的状态基本到了最高点,面到后面甚至有点兴奋,口若悬河,然而题量多到我面完之后已经完全忘了一开始问了什么,后背开始流冷汗。问答终于结束,考了一下手写,问了一道sql,几下做出来,让手撕搜索二叉树删除结点的代码,简单,左旋右旋,开始写代码,卡住了,左旋右旋是AVL树的,懵住了,面试通病又来了,越想进去越容易紧张,脑袋空白,百度华为腾讯都是。
 
面试官看我许久未下手,想说话,我先说了,大致思路说了一下,给了一个目前能想到的办法,但是心里确定正确的代码不是这个,果然,小哥看了一下,指出了漏洞,让我慢慢思考,然后开始看自己的电脑屏幕。心想完了,垃圾时间开始了,冷静下来,告诉自己不要再去回忆书上的代码了,按自己的思维走下去,终于想到了一个笨方法,告诉小哥,将思路走了一遍,没问题,但是太麻烦了,要交换太多结点,问我能不能降低复杂度,继续低头看电脑。这个时候我基本已经彻底冷静下来了,我在百度面试的时候已经吃了二叉树的亏,闭关的时候将AVL树的源码都啃了一遍,删除添加搜索都不能再熟悉了,倒推搜索二叉树的删除又有多难,最后还是推出来了,取左子树最大结点或右子树最小结点作为新值代替就可以了。这种一旦想到就知道答案肯定是这个的感觉略爽,立马跟小哥又走了一次思路,小哥点了点头,问我有什么想问的。
 

  • 如果这轮能通过的话,还有技术面吗,答有的,还有一次,哭了。

  • 请问我是被什么部门捞起来了,答IEG,差点站起来,最想去的部门。

  • 开始卖惨,说自己拒了平安科技签约会就为了一面,小哥有点惊讶。

  • 我是Java的,会不好通过吗,答不会,部门内部也有做Java的。


 
面试结束,出来看了下时间,发现自己面了一个半小时,身体有点无力,我到底经历了什么,一开始的时候发现舍友,对就是一起面百度的舍友,就坐在我后面,面试出来后他已经回去了,听说才面了二十多分钟,一面直接给刷了,估计碰到C 的面试官了。打了个电话给平安科技hr,被告知签约会已经结束了,offer没了,有点唏嘘,在楼下麦当劳点了个套餐,吃到一半接到个电话,是小哥的,跟我说他们小组基本是用C 的,接不接受转语言,知道自己大概率过了一面了,天空不一样了。
 
第二天早早醒来查面试状态,已经变成了复试,继续复习,同样的面试如果再来一次,难度再升一些,我怕是过不去,下午想放松一下,开了把游戏,结果打到一半3点左右收到了腾讯复试通知,4点半面试,真的是大爷,立刻打完出门了。二面面试官是运营部的总经理,然而问的东西非常少,问了下简历,项目经历,实习经历后,让半小时手撕快排非递归解法,然后就去隔壁忙活了。心里一堆问号,这种题目在leetcode上连medium难度都算不上,十分钟做完了题目,愣是活生生等了二十分钟他才过来,说了下思路,点了点头之后就跟我说面完了。愣了,一脸懵逼回去了,还感受了一下科兴科学园的下班高峰期。
 
在这之后就再也没学习过了,每天都在玩游戏等通知,期间面了滴滴一面和乐逗一面,拒了乐信一面,交通银行和茁壮网络的笔试,流程太久了,也没什么兴趣。滴滴一面面试官说我基础很好,估计是因为问了个Integer 127和int 127是否相等的问题,然后我自己拓展到了类加载去。
 
19号早上去面迅雷,传说中30w的pkg还是挺想试试的,然而听说不招java,迅雷在软件园二期,有点破旧,面试体验不错,每个桌子上都有零食,冰箱还有酸奶,舒服。又是很快就被叫进去一面,问的不难,但是有点偏网络,问到了三次握手四次挥手,问到了socket编程的细节,还问到了http协议运行过程用到的接口,有点生疏,面完被告知回去等通知,中午收到电话说下午过去复试。下午还有滴滴的视频一面,面完后出门路上突然收到了邮件,是顺丰的offer,突如其来的惊喜,不过冷静下来之后打开附件一看,发现工资只有9k,不过有3k补贴。
 
迅雷二面很难,爆炸难,问了一堆我不会的东西,很偏网络,什么P2P原理和前景、P2P的服务器要怎么解决性能问题、百万级访问怎么处理、两组上亿的url怎么查重、HTTP1.2有什么修进,头都给问烂了,错失30w的pkg,太偏网络了,毕竟是迅雷。
 
接下来就是痛苦的等待了,腾讯面试状态一直卡在复试,在牛客网上看到同时二面的人被叫去hr面了,是学C 的,周三面的复试,直到周五状态也没有改变,内心有点绝望,感觉Java真的很难进腾讯,当晚迅雷也没有再联系了。只能用第二天看半决赛的兴奋感来麻痹自己。没想到周末也是痛苦的,rng没了,到处都是rng,都在说些有的没的,看到员工哭了的视频之后心态也蹦了。
 
周末结束了,IG的胜利减轻了自闭,银十的第三周到了,周一一整天都很安静,周二起来发现腾讯变成了hr面,爆炸激动,早上去面招银,一面技术面二面压力面三面hr面,整整一周没再翻过笔记了,又很心不在焉,脑子里全是腾讯hr面应该不会刷人了吧的念头,面得有点糟糕,最后也挂了,不晓得挂在哪一面,认识的好多人都拿到了offer。可能hr面说了句我不太了解你们公司。
 
秋招的高潮来了,晚上5点多出门找人吃饭,进地铁时一个电话过来了,腾讯hr,赶紧走出地铁站找了个安静的地方电话面试。全程半个小时,聊得很快乐,听到我的段位之后还让我分析了rng失败的原因,结束时说了句很希望我进去腾讯大家庭,开始哼着歌进了地铁,等着跟朋友分享。结果过了不到十分钟,第二个电话来了,华为hr,跟我说我在消费者bg,薪酬16k*15,而且还发现自己没有被调岗......
 
秋招跟这一个小时相比真的太漫长了,两个月的压抑,闭关那段日子真的很多时候都是压着情绪逼着自己学下去,真的很怕自己毕业之后踏入公司的那一刻会后悔,现在写文章来回忆这两个电话,真的没法再描述当时的心情了,人生大起大落不过如此。
 
当晚拒掉了乐信一面通知和滴滴二面通知,周五让师兄找朋友查了下简历状态,offer报批中,之后便是耐心的等待,边考虑要去哪边。等待,耐心的等待,第三周就这么过去了,期间陆续接到了之前一些发邮件的公司的反馈,全都拒绝了。第四周到了,华为的offer终于来了(10.29),紧接着第二天早上腾讯的offer(10.30)也到了,很好奇他们是不是故意的。内心又挣扎了一天,各方咨询,第二天还是乖乖选了腾讯,为什么offer只能选一个。
 

 
11月到了,去跟学院领了三方,寄了出去,地址是腾讯大厦,腾讯是我第一个投的,也是我最后选择的,金九银十,这段秋招经历只能说过于充实,大起大落,迷茫痛苦激动喜悦,闭关的时候每天都能感受到自己在进步,等待是焦虑的,丰收的那一刻又是这么突然。只会叙述不会抒情,也没有什么可以总结的,学习办法对于每个人来说都不一样,经历的事情也都不一样,海能达和笔试的顺利让我逐渐自负,百度让我回到现实,华为教我坚持下去,静下心来,每一步都很重要,能得到的情绪和经验也都因人而异,写下来只是为了留恋一下。
 
 

2018 这一年

lanqiao 发表了文章 • 0 个评论 • 8 次浏览 • 2018-11-06 10:05 • 来自相关话题

作者:CyC2018 前言 2018,有过迷茫,有过努力,也有很多收获。为了记录这一年以来的感受,于是有了这篇文章。Offer 情况 经过了长达一年左右的复习,秋招也收到了几个比较满意的 Offer,参加面试的都通过了。 ...查看全部
作者:CyC2018
前言
2018,有过迷茫,有过努力,也有很多收获。为了记录这一年以来的感受,于是有了这篇文章。Offer 情况
经过了长达一年左右的复习,秋招也收到了几个比较满意的 Offer,参加面试的都通过了。
  • 百度,企业智能平台;
  • 阿里,高德地图,部门已联系,目前还在申报 Offer 中;
  • 腾讯,IEG 游戏平台,后台研发,SP;
  • 字节跳动,头条后台研发,SSP;
  • 华为,Cloud Bu,十五级(未定);
  • 网易游戏,梦幻事业部;
  • 顺丰科技。
前期准备也是在去年十一月份左右,看着身边两年制的同学经历了长时间而又艰难的秋招,我开始意识到自己应该提前准备了,否则自己的秋招会很惨。 本科的时候,虽然学过计算机网络、操作系统和数据结构等课程,而且 Leetcode 也刷了一两百题,但是离招聘要求还差的很远,学的都很浅只够应付考试,也没有实际的项目经验。 我的研究生方向是计算机图形学,研究生期间主要做一些科研项目。在选择招聘方向的时候,我也纠结了是不是找图形学相关方向的,但是考虑到图形学的选择不是很多,所以还是决定投后台研发相关的岗位。 于是开始收集各种学习资料,也买了很多纸质书。最开始的学习效率并不是很高,很迷茫,觉得要学的内容很多无从下手。那时候看别人的面经,感觉自己太弱了,很多内容都没接触过,于是更加迷茫。迷茫的时候总想着逃避,要是不复习多好,玩玩游戏每天多简单。但是游戏玩的越多,那种焦虑感越是强烈。解决焦虑的唯一办法就是想办法解决当前问题。当慢慢地从消极的学习态度中调整过来,掌握的知识越多,那种焦虑感也随之消失。当然这个过程并不容易,不仅需要很好的毅力,也要根据自身情况找到问题的有效解决方法。春招开始三月份各个公司就开始春招了,那时候刚把一些基础知识简单地复习了一下,Leetcode 刷到了三四百题。但是没有后台研发相关的项目,于是花了一个星期左右用 PHP 做了一个微博系统。当时做简历特别痛苦,没内容可以写,看着其他人简历各种新技术,自己都没掌握,所以很虚。阿里一轮游最开始投的阿里,实验室大几届有个师兄在天猫精灵团队,所以给我内推了。于是我人生中第一场面试就是阿里,很自然地被虐了一遍。记得当时约好下午两点电话面试,午饭都没吃,怕吃完之后犯困影响状态,然后找了一个很安静又没人的地方呆到了两点,调整自己的状态。可是面试官突然打电话来说有个会议要开,所以推迟了大概一个小时。苦苦等到三点左右,面试正式开始,不出所料面得非常糟糕。首先自己表述的很有问题,很多内容没回答到关键点上,自己会的内容也不怎么继续扩展回答。其次知识掌握得确实不够,连线程安全、ThreadLocal、函数式编程都不会。虽然被虐的很惨,但是也有好处,知道了面试到底是怎样的,自己还有哪方面的不足,该怎么准备。腾讯被鞭尸第二场面试是腾讯,在经历了阿里的面试之后,并且又继续复习了一段时间,我对面试就比较有信心了。一面其实回答的挺理想的,虽然很多问题没有立马回答出来,但是经过面试官的耐心提示之后都能回答一些内容。当时面了一个半小时,面试体验特别好。印象比较深刻的题目有,阅读一个 Redis 源码,分析存在哪些问题。 其实就是一个计数器实现的限流算法,会有临界值的问题,但是当时没回答出来,只能听面试官给我解释。还有一个微信扫二维码,这个过程发生了什么,也没回答得很好,不过面试官也很耐心地纠正我回答上的错误。一面顺利通过了,但是总监面挂了。总监面没有问什么技术问题,就是问了问项目和职业规划。 自己的项目确实比较 Low,我自己在介绍的时候也说得很不堪。职业规划我说自己希望在一些方面深入学习,因为自己现在在这些方面还很薄弱... 面完之后我就知道挂了,因为整个面试过程我都特别虚,还主动说自己技术能力不行。不出所料,面完的当天晚上,状态变成了不合适。 但是过了几天,突然收到腾讯的电话,问我是否愿意去深圳参加面试(笔者学校在广州)。当然我毫不犹豫地答应了,很开心腾讯还能给我机会。经过了上一场面试的启示,这次面试我表现地非常自信,自己知道的知识都很有信心地表达出来,被问到不会的内容也不会那么慌张,和面试官探讨一些细节,然后说说自己的想法,还有自己看过相关的内容。由于这是腾讯云部门,对 Linux 内核和 C++ 有很高的要求,问了几个相关的问题我都没回答出来,比如如何实现守护进程,Linux 信号机制,Linux 线程的不可中断阻塞状态如何进入等等。除了这些问题,其它地回答的都还行。遗憾的是,当天晚上面试官打电话告知我面试没通过。但是他说我其它方面都很不错,所以问我愿不愿意参加腾讯云 Java 部门的招聘,于是第二天我又去了一个新的部门面试。 这次面试是在部门的会议室进行的,进到公司之后说实话没有自己想象中那么好,工位很挤环境一般。一开始就先随便聊聊,学校的研究工作,学习之类的。然后看了看项目,看完之后我就知道凉了一半,这个项目确实太水了,面试官看了之后没有接着问,也能感受到面试官有点嫌弃。然后他就问了一些基础知识,问到进程调度算法,面试官让我实现一个任务调度系统。因为是第一次手写代码,而且之前确实没考虑过这个问题,然后就胡乱写了一堆代码,特别乱,而且到处涂改。显然面试官是不满意的,写了也有十几分钟之后,我自己都知道已经凉了,然后面试官没让我接着写,也没给我任何提示,说就到这里,面试结束了,还有没有什么问题想问的。当然看过任务调度系统相关的文章会觉得挺容易的,比如使用时间轮实现等等。我依然记得面试官送我出门时候的热情,送我坐电梯的时候还很热情地和我说,非常感谢参加本次面试,辛苦了。虎牙过于自信经过了阿里和腾讯的面试之后,我觉得自己大概已经知道该怎么面试了,面试时候该注意什么,该怎么表达等等。而且腾讯面试表现也不差,虽然最后没通过。所以在虎牙面试的时候特别放松,觉得应该能通过。前面面的也都还行,虽然有几个问题没回答好,比如分析一下微博的时间线。 通过了第一轮面试直接等第二轮,等到了晚上七点多才等到我。虎牙面试还是很注重技术的,虽然问的都不是很深入,只要简单回答到点上就不会接着问下去。二面也有一些问题没回答好,比如 ConcurrentHashMap 的并发机制,问 Spring 直接说不会。也有一些问题回答得比较乱,没有条理。但是我觉得大部分问题都回答的不错,应该能通过。 可是面试完之后,面试官问有没有什么问题要问他,由于太过放松,我就问你们都加班到这么晚不吃饭吗,好饿啊,周六周日还加班吗... 问完之后面试官就很严肃了,说平常不加班的,我突然意识到了问题的严重性... 最后还是凉了。百度第一个 Offer被三家连续拒了之后,都开始怀疑自己了,不过还是提醒自己要保持信心。幸运的是,百度的面试非常适合我,三轮都是技术面,而且手写算法题目居多,而我准备最多的是算法,所以很顺利通过了面试。但是面试表现并没有特别好,过了比较长的时间才被捞,而且是工程效率部门,做内部工具的,对个人成长并不好,所以不是特别满意。网易游戏最好的面试体验其实最开始没有打算投网易游戏的,因为被脉脉洗脑,已经放弃了做游戏。但是因为前面面试基本被拒了,担心没有实习 Offer,因此就试试看。 因为没有特别想去网易游戏,所以面试过程也比较放松,就当去聊聊天。面试官非常 nice,那天下午挤了很久地铁,比较口渴,然后面试官看我说得沙哑了,到门口帮我买了一瓶可乐,非常感激。面试之前我就提出我对 C++ 不熟悉,最近主要看 Java 的内容。面试官还是说没关系,尽量回答就好。 当然最后我都把问题往 Java 那里回答了,比如 Map 的实现,内存管理等等。最后聊了一些玩过的游戏,就让我回去等消息。网易游戏就一轮面试,确实就一轮。周五参加的面试,下周一就给 Offer 了,效率特别高。微众玄学面试通过微众面试我自己都非常吃惊,一面的时候就简单自我介绍了一下,然后面试官开始介绍他自己的工作经历,以及现在部门在做的内容。之后问了我一个场景分析问题,我想了一会儿没想出来,于是面试官拿起草稿纸把各种需求详细说了一遍,然后把系统架构图也画了出来... 最后他问还有什么我优势的地方他没问到的,我问他怎么不问问算法题,他说笔试都通过了没必要再问。 面完之后我觉得聊得很开心,但是技术问题没回答好,出乎意料收到了二面通知。二面没问技术,就让介绍了项目,再问问家住哪之类的问题,也顺利通过了。HR 面就不用介绍。收到了微众的 Offer,得知了部门是贷款科技部,非常核心,很吃香,近几年也在扩展一些业务,还是有点小心动的。 虽然最后没选择去微众实习,但是一面面试官加了我微信,我很感谢他一面非常耐心给我讲解,并让我通过。他说我是他面试的第一顺位,也就是第一个面试者,所以会放宽很多,也希望我秋招能加入他们。实习选择其实最理想的是去百度实习,秋招也会容易很多。但是考虑到百度是在北京,部门很边缘,而且需要实习很长时间也不一定能转正,所以还是放弃了。最后只能在网易游戏和微众选,虽然自己不想做游戏,但是考虑到网易游戏的平台认可程度比微众好,秋招肯定会更容易一些。而且秋招如果还想进微众的话也会比较容易,因为面试官和 HR 都说秋招的时候会优先考虑我,所以最后还是去了网易游戏实习。实习之前的快速学习期经历了春招之后,认识到了自己身上的不足,比如交流表达能力的欠缺,知识积累得不够,项目深度不够。因此在实习之前的两三个月,开始针对这些问题逐个解决。
  • 交流表达能力欠缺,就提前准备好各种非技术问题,然后对着镜子回答,把自己当成听众,并且也用录音机录下来。
  • 知识积累不够,采取的策略是保证广度优先,并且在重要的内容上保证深度。其实之前基础知识已经掌握的比较好了,再学其它技术的时候都有很多相同的地方,所以学起来很快。
  • 项目深度不够,就把那个微博系统做了一点改进,学了 Spring 之后改用 Java 实现。

不那么安心的实习
去实习的时候还是挺惊喜的,因为我被安排的工作是游戏引擎相关的,和自己的研究生方向紧密相关,我觉得做完实习项目之后自己的毕业论文也会比较有灵感。
但不幸的是,在去的第一天部门接待聚餐上,服务端主程就说,我们部门工作制是九九六,现在互联网都是九九六。在实习之前我了解的是实习生六点就可以走,而且只用上五天班,听到他这么一说心都凉透了,因为已经想好了晚上和周末时间用来复习。如果知道是九九六,我会选择去百度。
其实网易游戏部门氛围还是不错的,对员工很好,而且我的实习导师人也很好,在我生病的那几天很关心我。但是九九六的工作制对秋招复习还是有很大影响的,而且每天上下班花在路上的时间超过了两个小时,下班回寝室之后总想着看会儿视频休息一下,然后又要早早睡觉赶着第二天上班。没办法只能在上下班地铁上复习,还有就是午休时间接着复习。秋招开始
实习之后已经是九月份了,那时候已经错过了所有提前批。而且实习的时候没怎么复习,九月初还是感觉没怎么准备充分,所以就又等了半个月才开始投简历。
但是这个时候和春招相比,已经把大部分后台研发相关的知识点过了一遍,很多重要的内容前前后后也看了十几遍,没有春招时候那么迷茫和焦虑。即使被问到没有掌握的知识,我也有把握通过讨论的方式,给出大概的思路,因为很多技术确实是相通的。阿里看不懂的内部流程
秋招第一个投递的依然是阿里,最开始系统自动发起了一个新的流程,然后过了几天自动回绝了... 八月末的时候也找人内推了,但是又被阿里直接回绝了... 那时候已经觉得可能是春招面试表现太差,此生无缘阿里了。可是过了一段时间,正式校招的时候,阿里又发起了一个新的流程戏弄我,收到笔试通知的时候,我还犹豫了到底参不参加,因为那时候已经九月中旬,听说阿里已经没有 HC 了。而且按前面回绝我的态度,感觉即使笔试通过面试也通过不了。笔试那天晚上,本来准备看个电影放松一下,后来想了想还是参加了笔试,笔试各种机器学习和数学题,感觉拿错了试卷,笔试完我已经把阿里从我的公司进度列表中删除了,不再纠结阿里。可是过了一段时间收到阿里的面试通知,我以为是走走形式,可能参加笔试的人很少了,所以才选中我参加面试。那时候阿里招聘官网状态一排的已回绝,让我对阿里有一种恐惧感,觉得面试肯定挂。但是真正面试的时候却意外的顺利,收到二面通知的时候特别激动,然后面完二面又让直接等 HR 面,HR 面虽然不是很理想,但是没有很大的问题。又过了很长一段时间,在我去深圳参加腾讯招聘的高铁上,收到了高德地图 HR 的电话,问是否愿意去。虽然得知部门在北京有点小失落,但是还是很开心终于被阿里认可了,摆脱了对阿里的恐惧。
实验室上届毕业在阿里云的大佬某天突然和我说,他们部门有新的 HC,让我把简历发给他,他要帮我内推,会帮我安排一场线下面试,如果通过的话,到时候和高德的 HR 沟通一下,直接把我从高德捞过来。很感谢大佬向他老大极力推荐我,给我了这次面试机会。线下面试也很顺利,聊聊实习项目,问问我的开源博客,然后问些 Paxos 等分布式的问题,还有就是手写代码,信号量实现生产者消费者,以及一个位运算的问题。其实位运算的问题面试的时候写的不完善,面试官让我之后完善了再发给他,因为面试一个多小时有点长了。过后我写了详细文档讲解了思路,以及使用 JUnit 进行了详细的单元测试,把文档和代码都发给了他。现在面试已经通过了,但是最近阿里集团 HC 比较紧张,也不知道能不能批到 HC。百度又是不那么满意的部门
虽然阿里是最先开始流程,但是第一个参加面试的是百度。因为实习的时候通过了百度的面试,所以这次面试还是比较有信心的。百度面试连续三天,都在同一个地方,最后签约也在同一个地方。还记得每次都坐一个小时左右的地铁去那里,路线已经非常熟悉了,和每天去实习的感觉类似。百度面试比较注重技术,三轮面试基本都是问技术问题,而且问的也比较深入,内容也非常广。但是面的不是那么理想,有两点原因,首先是因为确实有些知识点还没掌握好,比如 AC 自动机,系统故障分析等等;其次是对实习项目的描述上还不够好,没有把实习内容的闪光点描述出来,也没有讲清楚为什么做这个项目,自己通过什么方法去做,以及最后的结果。
最后百度给了白菜价,部门是企业智能平台,主要是内部系统,虽然会接触到机器学习和大数据。腾讯虐我千百遍
秋招腾讯第一场面试和实习参加腾讯面试的感觉非常像,第一轮技术面感觉很好,手写堆排序算法,二部图分析等等。面完之后通知待会儿二面,听到之后还是很激动的,觉得这次应该没问题了。我在等二面的时候,碰到了室友(他经常不住宿舍,所以不清楚他也去面试),聊着聊着居然发现我两是同一个面试官,而且他是来二面的,也就是等一下我两就要一前一后进去面试。二面的感觉和实习二面非常像,非技术问题回答的支支吾吾,然后面试官开始质疑我说的内容,给我压力,我没有当场反驳,就说了哦,好像是这样的。因为面试官全程都绷着脸,所以我也比较紧张,很多问题没回答好。过了几天,室友和我说收到 HR 面试通知了,我去官网看了一下状态,已经变成了熟悉的不合适。这次面试失败的主要原因是自己在应对这种压力时处理地不是很好,主要体现在失去信心以及紧张。解决方法也简单,做好充分准备来保持信心,受到质疑的时候积极反驳,紧张的时候计时调整心态,可以试试深呼吸或者喝水。
因为实习有被捞起来的经历,所以被拒之后我特别希望能继续被捞起来,然后把简历上的面试城市改成了深圳。苦苦等到深圳场面试的前几天,在不经意的一个下午手机突然响了,我记得是短信邮件同时收到面试通知。于是又开始了新一轮被腾讯虐的面试之旅。
一面和之前一样也是意外地顺利,虽然问了一些 C++ 的问题,但是我都说到 Java 相关的实现上。在一些问题上确实回答的深度不够,比如网络编程里面的水平触发和边缘触发等问题。然后问了几个算法,本来要求手写,我说我实现过,所以就讲了讲思路。面试和腾讯第一场面试一样持续了一个半小时,面试官也很好,很多问题都会给提示,即使最开始回答的有问题。二面面试官也很好,问了问实习项目,然后再聊一聊一些技术,经过了之前的面试,到这次面试真的就像在聊天一样而不是面试,我们都会说一些对技术上的理解。HR 面其实面得很差,对于非技术问题的吹水能力我还是不太行。最终和我预期的一样,给了我 SP 的 Offer,因为觉得自己面得还可以,但是也不够好到给 SSP,有些 C++ 问题还是没回答的特别好。头条意外的惊喜
之前看到学弟收到头条的 Offer,薪资非常诱人,所以也想去试试。也听说头条面试难度非常大,主要考察手写算法,因为自己算法方面准备得比较充分,所以觉得会比较顺利,但是也没有特别高的预期。前两面中规中矩,算法题和其它问题我都回答的比较好,到三面的时候,问了一个错排问题,其实最开始我给了正确的递推公式,但不是面试官想要的答案,所以让我再想想。我想了十几分钟还是觉得没问题,那时候觉得自己已经凉了,因为面试官一直不满意。后面的几个问题也没回答的很好,分析一个 SQL 语句的具体执行过程,比如会怎么利用索引,怎么优化之类的,虽然在他的提示下还是回答了,但是感觉并不好。面完之后我立马查了一下那个错排问题,证实了我的答案是正确的,于是写了一个详细的文档,联系 HR 让她发给面试官。出乎意料的是,HR 让我不用担心,他说面试官对我的评价很好... 不过最后还是让她把文档发给了面试官。之后收到了加面通知,头条加面有两种情况,一是三轮评级都是 4 可以评 SSP,二是面试官评价差别很大,再面一轮决定是否录用。收到加面的时候完全不知道自己属于哪一种,感觉两种情况都有可能。加面回答的也不好,主要是问项目,面了 25 分钟就草草结束,最后面试官说有些内容需要找一些文献参考参考。面完之后我觉得,即使我属于第一种要评 SSP 的情况,加面面的那么差应该也没希望了。苦苦等了好多天之后,最后确定是 SSP 之后,还是很惊喜的,感觉是对自己这么长时间复习的一个认可。顺丰最后的保底
投顺丰是因为九月中旬很多公司都结束了招聘,所以那时候比较慌,就投了顺丰当做保底,顺便也练练手。最开始还担心顺丰笔试没通过,因为编程题最后一题没做出来,那题的题目都出错了,而且题目是网上直接 copy 过来的,网上的源码都不能通过,更别说我自己的实现了。顺丰面试主要问了数据库的内容,而且问的特别深,几乎把每种日志的实现和作用都问了一遍。面顺丰的时候也比较早,那时候有些问题的回答上没有组织好,回答得比较凌乱,虽然最后也算给了一个小 SP。华为特别纠结的部门
去华为面试确实是没有压力的,因为都知道华为面试不怎么问技术,虽然还是问了我一些技术问题,不过不是问的很深。面试主要介绍项目,我对自己的实习项目还是比较有信心的,因为觉得做的确实不错,而且面了很多场了,知道该怎么介绍项目。面试官问我个人意愿,我说自己对分布式中间件等比较感兴趣,于是面试官把我推荐到了 Cloud Bu。本来没打算签华为的,现场签约也就去看看到底给我开多少。最开始其实给我开了十四级最高的薪资,我本来不是很想去,虽然对这个部门感兴趣,但是薪资确实比不上头条。然后随口问了一句可不可以给十五级,HR 居然说可以... 但是只在绩效加 1k,要是真给十五级确实很有吸引力,股票分红之类的。而且华为也在大力发展这个部门,所以突然就很纠结了。当然升一级需要部门讨论之后才能确定,但是我后面说了我有很多 Offer 可以选择,她也对我这些 Offer 很满意,大概率能评上,但是薪资涨得不多。小结
很多人都说,面试和考试一样,要背很多没用的东西。最开始我也认同这种看法,可是参加了几场面试之后,我就不这么认为了。因为面试出的问题,有很多是实际开发中碰到的,所以准备面试相当于提前做入职准备。而且面试中考察的思维能力、交流表达能力、应对压力能力,都是真正工作中所需要的。
 
我觉得自己比别人做的好的地方是,有很强烈的想找到好工作的意愿,才驱使我不断学习,所以态度很重要。
信心源自于充分准备,有了信心,面试的时候才能游刃有余。而毫无依据的自我感觉良好,在每次失败之后都看不到自身的不足,而是怪罪于外界因素。