秋招总结

前前后后面试了将近一个月之后,最后终于收到了腾讯发来的offer,半年以来的努力兑现了当初给自己许下的诺言,终于有机会写下这篇总结,这篇面经,这对我意义非凡。
我是某985院校经管学院的,信息系统与信息管理专业硕士,听过这个专业的人应该知道,这是一个致力于用计算机技术提升企业管理效率的专业,管理为主,计算机为辅。所以要说我是完全的非科班也不太对,我跟别人介绍的时候,通常说我自己是半个科班生。尽管这样,在到达终面的时候,还是不少总监级别的面试官会发出这种惊讶的声音:“你居然是经管学院的?”。
是啊,我是经管的,但是我能通过你们的技术面试,说明我不比计算机的差。其实我是今年3月份才决定要做一名研发工程师的,在这之前,我一直觉得自己应该去做产品——我们专业的学生技术上实在太三流。

先说说春招

我当时的技术有多糟糕呢,我是做java的,3月份的时候,连面向对象三大特性:多态、封装和继承是什么我都不知道,集合类和多线程简直听都没听过。当时我基本就知道一些java基本语法,sql会写一点增删改查,课设做过一些很水的项目,就没了。
我的第一次面试是蚂蚁金服一面,也是我印象最深刻的一次面试。面试官连着问了四五个问题,我都一脸懵逼。他无奈了,说那我问一个简单一点的吧,什么是双向链表?够简单吧,整个面试我唯一还知道一点的问题,但是很遗憾,就这我还给答成了二叉树。这是一次极其耻辱的面试,不过即使我表现的像个白痴,面试官还全程安慰我,说没事,没事。这里不得不赞一下蚂蚁金服的面试官,包括之后的秋招又面了蚂蚁,面试体验都非常的棒。
整个春招我前前后后投了将近二十家公司,不全是大公司但都是我听过的,我觉得去一家我听过的公司,是我求职的底线了。二十家里面有十三家有反馈,笔试或者面试邀请,其中十家的笔试挂了,仅阿里、今日头条和远景能源给了面试机会,最后都是一面挂了。持续将近两个月的春招,仅面试了三次,最后颗粒无收。
那段时间心态接近崩溃,每天就是刷拉钩实习僧,看到java开发就投,然后石沉大海,重复着这个无聊的过程,平静的生活终于在5月中旬出现了转机——我接到了小米的面试电话。
说实话,小米的一面也面的稀烂,挂了电话我就觉得又TM挂了一家,没想到,十天后接到了二面电话。二面的面试官是我们学校的校友,不知道是不是这个原因,二面比一面还简单,又过了十天,顺利收到了实习offer。后来去小米才知道,一面面试官就是我的leader,人超级nice,他也承认我一面答得稀烂,不过还是想再给我一次机会,二面是我们部门的老大。至此,实习的事差不多就告一段落了。

再说说秋招

三个月的实习很快过去了,转眼就来到了秋招,因为已经确定小米可以转正,所以秋招没有选择海投,只投了一些我认为不劣于小米的企业,大概有十一家左右,都收到了笔试邀请,网易、京东和头条笔试挂了,网易游戏和4399给了面试但是面试地点在北京所以放弃了,剩下六家都参加了面试,并收到了其中四家的offer,分别是华为、美团、百度和腾讯,加上小米,秋招总共收到了五家公司的offer,剩下的,蚂蚁三面挂了,搜狗一面挂了。蚂蚁很可惜,因为我是在阿里内推快结束的时候才投的,三面面试官说技术面的还不错,但是java岗的hc已经所剩无几了,问我愿不愿意转测开,我拒绝了,最后理所应当的挂了。其实要是早投一点的话,我可能就能实现当初拿满BAT的豪言壮语了。
在面完这么多场面试之后,我发现BAT面试的难度还是明显高于其他互联网公司的,BAT面试难度比小米、美团和搜狗等二线公司面试难度高了一个档次,比华为高了两个档次。我觉得他们面试的区别就是,像美团小米这种公司,他们的技术面都很套路,往往问的问题都是很常见的那种面试题,算法题也基本在剑指offer里面能找到,本质跟笔试没太多区别,我猜测他们都是有一套题库,随机出题来考察面试者的。而BAT的话,在套路之外,还会有一些面试官的临场发挥。比如你某个点答的比较好,他可能会抓住这个点继续深究下去。比如之前腾讯一面面试官问了我volatile关键字的问题,我就给他介绍了这个关键字作用,场景,优缺点之类的,然后他继续问,那你知道怎么实现安全读取和写入的么,我说读取会强制从内存而非缓存中读取保证读取正确,写入的话,以前的cpu是用lock原语锁总线保证写入安全,现在的cpu是用缓存一致性协议。他又继续问,缓存既然存在失效的可能,那为什么要设缓存?我说因为缓存读取速度比内存更快。他又问,那为什么缓存比内存快?我说因为缓存离cpu更近,并且工作方式更简单,缓存的硬件设计也以速度优先去设计的,所以更快。他又问,那内存又为什么比硬盘快?我说内存是靠电位变化读取数据的,而硬盘是机械结构存储的磁信号,光寻址就得花不少时间。
你看,从一个volatile关键字一路问到了计算机组成原理,我想这肯定不是题库里的题,而是面试官临场的发挥。在面百度的时候,面试官从java,到spring,到机器学习,到linux都给我问了个遍,而且并不是泛泛而谈的那种,基本都深入到了原理,比如问我写一个controller,spring在后台会为你做哪些事,svm核函数的区别,对linux内核的了解,git原理等等。百度一面面试官是我见过知识面最广的面试官,从开发到机器学习都有不俗的深度。所以,BAT还是BAT,从面试官的水平就可以看出来了,其他公司都要差那么一点意思。

我的方法

背景终于介绍完啦,下面是我自己的一些经验之谈,不保证一定适用于每个人,但是java方向的同学看完一定会有一些收获的。我基本上是面完阿里之后就决定做研发的,所以我也是从那个时候开始学习技术的。
我首先要做的就是把计算机的基础课程补回来,这里提醒一下,复习之前多看面经,多看别人的总结,做到有的放矢,因为面试常考的东西,其实就那么几章重点内容而已。我简单列一下我复习的进程吧。
《疯狂java讲义》半个月看完
《计算机网络》谢希仁:一周看完重点章节
《计算机操作系统》汤晓丹:一周看完重点章节
《计算机组成原理》零碎的挑了几章看
《数据库系统概论》萨师煊:一周基本复习完,之前看过
《数据结构》严蔚敏:一周复习完,之前学过
《大话设计模式》:看了两天,抽象工厂模式,单例,适配,观察者够了
牛客BAT精品课(推荐):半个月左右,期间也刷了些别的算法题
完成上述过程我觉得拿到一个大厂的实习offer已经没问题了,总时间也就两个月多一点。下面是进阶的
先推荐java方向的三个帖子:
Java研发方向如何准备BAT技术面试答案(上)
Java研发方向如何准备BAT技术面试答案(中)
Java研发方向如何准备BAT技术面试答案(下)
我实习的时候趁晚上的时间基本上是把这三个帖子中的每一个问题都过了一遍,范围涵盖各个科目的常考题。进阶的书目没有表明我花的时间,因为基本上都是我一边实习一边看的,比较零散
《深入理解java虚拟机》主要看GC,内存模型
《java并发编程艺术》多线程并发的问题在面试中很重要,这本书建议通读
《鸟哥的Linux私房菜》linux入门
《程序员代码面试指南》左神的书,推荐
《剑指offer》经典,必看不解释
《算法》我也没怎么看这本书,不过看过的几章觉得写得很不错,有余力可以看看
《高性能mysql》主要看了索引,查询优化,复制,可扩展和高可用这几章
《设计模式之禅》闲书,有空看
另外说一句java的,java进阶一定得看源码,这部门很重要但是没有固定的书籍,像集合类,cocurrent包下类的源码几乎是必看的,经常考。源码怎么看呢,不是直接在ide里面反编译去看,那样效率很低。而是去看别人的分析源码的博客,或者源码解析的书籍,事半功倍。要想拿到BAT的offer,知其然必须得知其所以然。如果以上的你都做到了,BAT之外的互联网公司基本就很简单了,现在我回过头看实习生面试,简直小菜一碟。不过要拿到BAT,还需要一些运气,临场发挥,和聪明的头脑(腾讯和搜狗都考了我数学和智力题)。除此之外,可以看一些架构的书,服务器宕机怎么办,IO负载高怎么办,用户请求超过服务器极限怎么办,这些都是比较常见的问题。可以看一看下面两本书。
《大型网站技术架构:核心原理与案例分析》
《大型网站系统与java中间件实践》
内容不多,我基本几天就看完了,先就这样,其他细节想好再补吧

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值