引言
我在某大型P2P公司已经做了两年半之久,考虑到未来的职业和行业发展,我深思熟虑之后,决定开启人生的第二次跳槽。
第一次跳槽我的想法比较单纯,就是希望能够找一家比较大的公司,能够有很好的升职空间。结果我如愿以偿,找到了一家P2P行业的巨头公司,并且也如愿在一年半的时间内升职为SM兼PM。自我感觉,这一次跳槽还算是比较成功,没有留下什么遗憾。
此外,在正式开始此文之前,我要强调的是,文末会有面试题内容提供,因此,如果是想从本文看到面试题的猿友,可以跳到最后。再说明一点,以下面试经历基本上是按照时间顺序进行的,但并不绝对正确。毕竟有的公司去了好几次,各个公司面试的时间也是交叉着的。
篇幅有点长,一定看到最后!文末会有面试题内容提供
19年年前与互联网巨头的对抗
阿里巴巴:
说起阿里巴巴,我真是爱恨交加。爱的是阿里是Java的天堂,恨的是阿里的人似乎只认可拥有高并发经验的人。
前前后后,我共面试阿里两次,分别是两个不同的部门——菜鸟网络和支付宝。电面一共三次,面对面的面试一次。其中支付宝的电面直接挂掉,菜鸟的电面收到了阿里当面面试的邀请。值得称赞的是,去杭州菜鸟网络的这次当面面试,是阿里给我定的往返机票,并且报销了所有的路费,包括出租车这些费用。更巧的是,我是第一次坐飞机,没想到竟然是阿里给我掏的钱。
阿里的面试主要侧重于高并发,缓存,JVM这些方面,比如memcached,redis这类缓存组件,可以问你到死。当然,因为我面试的是专家职位,因此也会问很多你在工作中遇到的高并发或者一些奇葩问题,并且你需要详细的解释你是如何解决的,包括会问你有没有更好的方案等等这类问题。这里需要特别说明的是,阿里似乎只招收实习生和专家(或以上)。
总体来讲,去阿里就是纯靠实力和经验(当然,也有运气成分),只要你对高并发有足够的了解,并且拥有相当多的经验,处理过一些奇形怪状的问题,我感觉应该问题不大。当然,遗憾的是我一直以来做的都是企业应用,并发量不高,遇到的问题对于阿里一帮子人来讲,可能都还比较初级。因此很遗憾,我没能进去。
不过遗憾归遗憾,我当然不会在一棵树上吊死,此处不留爷,自有留爷处。阿里还是有机会再战吧。
百度:
既然远在杭州的阿里LZ都尝试了,我又人在北京,怎能不去百度尝试一下。BAT三大巨头,除了总部远在深圳的腾讯LZ实在没有想法之外,百度也在我的考虑范围内。
不过说真的,这次百度的面试经历,让我对百度的印象一落千丈。百度问的问题相对于阿里来讲,不是特别深入,但也绝不简单。比之阿里,百度多了一些项目管理,敏捷开发这方面的问题。当然,这也和我面试的职位有关,我面试的是百度工程效率部的职位。
我深居东四环,而百度却远在北N环,前前后后,我跑了三次百度。前两面为纯技术面,每一次一个人,第三次去百度面试了两个人,第一个人是领导,第二个是一个小兵,又是技术面。最让我无语的是,第三轮面试的领导竟然不知道我已经去过两次。我在想,如果没有之前的两次技术面,难道百度的领导都是不经过筛选直接面试的吗。
答案是当然不会!
不过这就奇怪了,领导怎么会不知道我已经来过两次?这让我感觉莫名其妙。第三轮面试最后来的一个小兵,感觉就是第三轮的那个领导派来找茬打发我的(我觉得那个领导估计一直都没搞清楚状况,就来面试我了),各种奇葩问题,什么玩意都问,也不管我简历上到底写的啥。我也不傻,自然一眼就能看出来这是故意打发我的。依我的性格,对方既然是来挑衅的,我自然不会退缩,中间讨论过程中,我果断与这个小兵展开了一场没有硝烟的厮杀。
总而言之,对于百度的印象,真是差到了极致。既然觉得不合适,就有点素质,不要浪费我的时间。前前后后让我去了三次,害我请了三次假,还浪费了几十块钱地铁钱(当时北京地铁已涨价)。
想去百度的同志们,三思而后行吧!至少对我来讲,这次面试的体验,百度与阿里差的不止是一个档次。
15年年前与互联网二三线公司的对抗
搜狐:
搜狐是我的朋友内推过去的,经历简直是痛苦不堪。我原本想着去互联网好好锻炼自己的技术,结果搜狐的面试官在让LZ画了自己项目的架构图以后,竟然直接告诉我,“不好意思,我们这个是项目管理部,如果你进来的话,可能不太会做开发的事情。”
听到这句话,我只感觉空中无数只草泥马飞奔而过。当然了,我也不会忘了推荐那哥们,这推荐的是什么玩意啊!不过他也是大喊冤枉,说分明给我推荐的是一个Java工程师的岗位,不知道为何会是这样。
不管怎么说,搜狐就这么轻描淡写的过去了。对于搜狐,就两个字:坑爹!【不会被喷吧】
国美在线:
国美也是我的朋友内推过去的,相对而言,国美的速度是非常快的。一轮纯技术面,一轮总监面,就已经定下来了。面试问到的问题也差不多,JVM,并发这类问题几乎是所有互联网公司必不可少的面试宝典。
可惜的是,我开始的薪水写的少了,后来我就在薪水上与国美展开了一场小小的战役,结果是两败惧伤。不过说实话,当时还有一个很主要的原因是马上就到年底了,原因自然是大家都懂的,年底嘛。
结果最终我也没能去国美,因为薪水,而究其根本原因,是因为我在开始填表的时候(就是面试的时候大家经常填的那个报到表),把薪水写低了,以至于后来再谈的时候有些尴尬。对于国美,我是有那么一丝遗憾的,毕竟面试官对我非常看重。有一个看重自己的上司,有时候是可遇不可求的。
19年年后与二三线互联网公司的对抗
京东:
过完年以后,或许是之前的小小面试把我的心面野了,也或许是互联网在召唤我。我思来想去,还是应该离开现在这个温馨的大家庭,去寻找更多的挑战。
于是,京东,我就这么去了。
京东的面试相对而言会比阿里简单很多,能看得出来面试官对我也比较满意。同样,我也在一直观察着面试官,感觉也比较满意。毕竟面试是双向的,咱们也有对面试官考察的权利。很多时候,面试官的水平也在一定程度上,代表了公司的技术水平。
京东问的问题比较基础,比如集合框架,算法这类的。当然,也有万年不变的并发,JVM,缓存这类内容,不过没有阿里问的深入。此外,京东的面试官也问了不少项目中的一些细节问题。总而言之,面试所问的问题还是比较中规中矩的。
不过可惜的是,由于我年前与国美的擦肩而过,导致我狮子大开口了一次,结果就是,我与京东再一次擦肩而过,同样是因为薪水。所以经过这两次的擦肩而过,我郑重的告诫各位,在面试时要薪水是一个很重要的技术活。要高了对方可能会直接pass掉你,你会直接错过一个offer。要低了可能会导致你后悔不已,就算隐忍着进入公司,也难免带着一丝悔意。
花絮1:
经过京东和国美的两次面试,我开始重新审视自己,重新定价。这两次失败都是因为薪水没谈拢,那到底是我要的高还是公司太抠门?
思来想去,我还是觉得是自己要高了,为什么这么说呢。主要原因还是因为换行业的原因,这么说吧,我要的那个数,如果能把我的行业背景用上,还是差不多可以达到的。但问题就在于,京东和国美都是电商,而我之前的金融行业背景是完全没用的,因此也不怪人家不给这么多钱了。
从此可以看出,跳槽的时候,最好先不要投你的意向公司,而是应该先找几个练手的公司探探身价,然后再客观的给自己定价。一旦定好价之后,就不能再轻易的改变了,比如我去国美的时候就不经意的降低了标准,结果导致最后想多要也难了。
想想也是,你跟别人谈好价了说要10块钱买对方的东西,结果对方在卖的时候又说要卖15了,换你你还会买吗?
58同城:
接着刚才的话题继续,在去过京东之后,我就去了58同城面试。58同城面试共见了三个人,第一个面试官是HR,简单问了一些问题,大约十分钟左右。接着就来了一位技术官,开始无限的技术攻击。
58的技术官让人看起来非常不爽,精神萎靡,面试的时候一直在打哈欠。而且从对方的神态举止上,能明显感觉到很傲慢,我当时对58的印象大打折扣,这尼玛是什么玩意啊,大牛就这德行?
技术官面试完以后,对我的评价是,技术一般,思维能力和理解能力很好,接下来第一面的那个HR就让我回去了。本来我已经走了,还没出58同城的大门,一面的HR又来电话,说有个组的组长想见见我。于是,我就这么又被叫回去了。
第三面的人给我的感觉是完全不懂技术,一直问我如果是这种情况你怎么设计,那种情况你怎么处理。比如我印象比较深的是,说有一堆数据要处理,你会怎么做。我当时给了一个过滤器链的方案,说这样做扩展性会比较强,如果要增加新的数据过滤规则,可以随意扩展。
还有一些其他很实际的问题,不过第三面的面试官给我的整体印象是,没做过开发,对技术只有一个模糊的了解。这样的人做我老大,能学到什么东西?当时58面试的部门是他们的信息质量部,现在想想,我犯了多大的错误才会来面试这种部门。
总的来说,58给我的印象也不咋地,尤其是二面的那个技术官,实在不敢恭维。
艺龙:
艺龙的面试源自于我一个朋友的推荐,总的来讲,艺龙是给我印象最好的一个公司。为什么这么说呢?
艺龙发offer几乎就是当场发的,不像百度,58这类公司,简直是坑爹。不过58更坑爹的地方在于,当时我收到艺龙offer以后,就给58的面试官打电话问进展,结果58的面试官说让我等等,说是总监还没回来。于是我天真的以为58真的是在等总监,结果到现在也没来电话,真尼玛坑爹。既然没通过,我也明确说了收到了offer,58为何不能给句痛快话,直接说你接受其它公司的offer就好了。幸好我也不傻,既然你们让等,那你们就慢慢琢磨去吧,这边先答应了再说。
吐槽就到这里,说说艺龙的面试,艺龙问的问题比起阿里百度来讲,确实是简单了太多,基本上我都回答上来了。其实还是那一套东西,jvm,缓存,并发,集合框架等等,只是各个公司问的深度不一样。比如阿里当时问过memcached的内存模型,我只知道memcached是基于内存的,哪里知道memcached的内存模型,也是后来翻阅了一下,才知道memcached的内存模型是slab,item等类去描述的。
刚才已经说了,艺龙是当场发的offer,不过工资不是我想要的数字,而是压低了不少。不过这个时候我已经明白了自己的身价,因此也就没有拒绝。原本以为,这次的面试之旅也就到此结束了。
360:
360是我的朋友的老公介绍的,既然有面试,我也不会拒绝,因此面试之旅依然在继续。截止到目前为止,我只拿到了两个offer,一个是艺龙,一个是国美。原本京东也是有offer的,不过由于工资要的高了,所以没有收到。
这一趟360跑的确实非常值得,因为在所有我见过的面试官当中,我最中意的面试官,就是360面试我技术的那位。表现很低调,但是能感觉的出来,这个人的技术非常牛B,对底层的一些东西了解的非常深入。印象比较深的一点就是,面试官和我聊TCP聊了很久,我自我感觉在大多数同样三年编程经验的程序员当中,对TCP还算是比较了解的,但我能感觉出来,这位面试官比我要厉害太多。
总的来说,360还是比较可惜的,虽然距离比较远,但是就冲那位面试官,就让我有去的冲动。不过其实后面的那位领导也明确说了,就算我进去了,第一位那个技术面试官也不会带我的,我会加入到一个新成立的项目当中,大约目前五六个人的样子。
360的面试体验,总体来讲还是非常不错的,认识到了自己的一些不足,而且面试官的态度包括各个方面也都非常好。赞!
网易:
网易的面试来自于一次偶然我原本投的是北京的职位,不知道怎么就变成了杭州的职位。
网易第一次是电话面试,总的来说非常顺利,我和面试官聊的非常投机,其中问到的技术主要从项目所使用的技术展开,逐步深入。比如memcached,集群,session共享,tcp协议,gc策略,jvm内存模型,并发等等。
因为这次电面非常顺利,所以我有自信能收到下次面试的通知。果然,没过多久,网易HR就打来电话说要我前往杭州进行面试。因为当时艺龙的offer已经收到,而我已经初步决定去艺龙,况且网易并没有阿里那么大方,直接机票帮你订好,你只管去坐就可以了。因此,最后和HR协商之后,决定了视频面试。
视频面试一共有三个人,两个技术,一个应该是领导或者是产品经理这一类的。技术方面没有什么新鲜的,毕竟第一次电面问了一个多小时,已经很详细了,主要是聊一些业务方面的。因为网易这个职位也是做P2P的,和我现在的行业是匹配的。
聊到最后,感觉也都差不多,我这次毫不犹豫的狮子大开口,要了一个绝对天价的数字(算下来大约年薪为35w,就算进了阿里,在不考虑期权股票的情况下,也就这个数了吧)。之所以要这么高,主要是因为网易那边的团队只有十几个人,原本是一个创业团队,被网易收购了。因此去那边的话,风险非常大。这个团队随时面临被网易撤掉的危险,到时候我不管是留在杭州,还是回北京,都会非常不值得。就算对方真给了这个工资,能拿多久也未可知。
后来HR联系我说,我要的工资太高,老大要亲自过一下。不过等了几天,一直也都没有下文,想必是对方放弃了,觉得代价太高。其实很明显,对方看重的不是我的技术,或者说技术只是一方面,对方最看重的是我的行业背景。
总的来讲,因为这次网易的面试从一开始就是一个不太靠谱的开始,因此结束的这么不靠谱也没啥奇怪的了。总而言之,如果这个职位是在北京,我也不会要那么多薪资,最后说不定就成了,实在可惜。
万达电商:
去万达电商其实纯属意外,主要是万达的工作地点和我现在的公司走路只需要三分钟,这么近的情况下,能去看看我当然不会拒绝。去了以后,我才知道万达是如此坑爹。为什么这么说,主要有以下几个地方。
- 面试的地方走来走去的都是西装革履的大侠,这我一个技术屌丝实在是无语。
- 上来HR就给了我一份笔试题(备注一下:这是我面试了这么多家公司,第一个让我一个面试高程的做笔试的),笔试就笔试吧,还全部都是Java基础题。(数万只草泥马从我的脑中飞过)
- 最无语的是,面试的内容几乎全是脑筋急转弯,我只想说,你们是在知道答案的情况下秀智商吗。
这次面试,给我的感觉就是,一个土豪很不客气的把钱甩到我的脸上说,“写代码的,给我写一个系统”。
对于万达,我只想说,我去年买了个表。
15年年后与互联网金融公司的纠缠
与互联网金融公司的纠缠就非常顺利了,我的技术还算过关,加上比较硬的行业背景,offer可以说是手到擒来。实践证明,互联网金融这类公司,我拿下offer的几率为100%。
具体的面试内容LZ这里就不逐个列举了,总的来说,这类公司面试的内容也都大同小异,大部分面试内容都是一些项目经验和并发,缓存,算法这类的问题。还有一些公司,会临时(也或许是早就准备好的)出一些题,让你现场写出来。
我就说一道题吧,是我当时没想出来的,现在想想,我还真是在这方面有些欠缺。题目内容是,写一个函数,它的作用是接受一个整数(假设为length),返回一个数组,数组的长度为length,数组中的内容为随机的0至(length-1)的值,并且不能重复。比如length为5的话,数组可能是[1,0,3,2,4]。
题目的解决方案如下(当然,这只是方案的其中之一)。
import java.util.ArrayList; import java.util.List; import java.util.Random; /** * @author zuoxiaolong * */ public abstract class RandomArray { public static int[] random(int length){ if (length <= 0) { return new int[0]; } List<Integer> list = new ArrayList<Integer>(length); for (int i = 0; i < length; i++) { list.add(i); } int[] array = new int[length]; for (int i = 0; i < length; i++) { array[i] = list.remove(new Random().nextInt(length - i)); } return array; } public static void main(String[] args) { int[] array = RandomArray.random(10); System.out.print("["); for (int i = 0; i < array.length; i++) { if (i < array.length - 1) { System.out.print(array[i] + ","); } else { System.out.print(array[i]); } } System.out.print("]"); } }
小结
这次面试之旅,我有非常多的收获,简单总结一下,希望对各位也有参考意义。
- 如果可能,不要轻易更换自己的行业。
- 给自己定价一定要谨慎,否则可能错过很好的机会。
- 如果你喜欢技术,公司的技术氛围很重要。
至此,找工作之旅就基本上结束了,我最终还是选择了互联网,也选择了自己原本赖以生存的金融行业。现在回想起来,还是有些后怕的。倘若我在面试了一堆互联网公司以后,没有及时醒悟过来的话,或许若干年后,我每想到此都会后悔不已,后悔当初没有在一个行业深入下去。
马上就要迎来秋招,还有所谓的“金九银十”相信很多人也都走在跳槽的路上,祝愿大家都能找到一份自己钟爱的工作。
资料免费领取方式:需要获取资料文档的朋友 可以关注+转发后点击这里免费领取
- Dubbo服务框架面试专题及答案整理文档
- 面试常问必备之MySQL面试55题
- 面试必问并发编程高级面试专题
- Spring面试专题及答案整理文档
- JVM与性能优化知识点整理
- 面试常问必备之Redis面试专题
- java筑基(基础)面试专题系列(一):Tomcat+Mysql+设计模式
- java筑基(基础)面试专题系列(二):并发+Netty+JVM
- 分布式数据库面试专题系列:Memcached+Redis+MongoDB
- 分布式通讯面试专题系列:ActiveMQ+RabbitMQ+Kafka
- 分布式限流面试专题系列:Nginx+zookeeper
- 开源框架面试题系列:Spring+SpringMVC+MyBatis
- 微服务架构面试专题系列:Dubbo+Spring Boot+Spring Cloud
更多Java架构进阶学习笔记及导图分享
- docker学习思维笔记
- Git基础学习笔记
- Java并发体系学习思维笔记
- java基础笔记
- kafka知识导图笔记
- MySQL优化学习思维笔记
- mybatis学习笔记
- JVM和性能优化学习思维笔记
- Spring学习思维笔记,SpringCloud学习笔记,springboot学习思维笔记
- 设计模式学习笔记
- 算法和数据结构
有文档和笔记复习资料还有整理了面试高频问题的视频解析
- 面试必备-API接口安全
- 面试必备-服务器推送技术
- 面试必备-匠心独运手写MyBatis框架
- 面试必备-Spring AOP源码讲解
- 面试必备-JVM性能优化
- 面试必备-zk分布式锁
- 面试必备-Redis进阶问题讲解
- 面试必备-快速搞定RabbitMq中间件