校招碎碎念
前两天拿了去哪儿(Qunar)的offer,不打算接着找了,心累,结束我的校招生涯吧,写写这段时间的经历。
本科生一只,普通一本,非211/985学校,出了省就没人认那种,计算机专业,目前大四。找工作大概从大三下学期开始吧,那时候各大厂开始招实习,接着陆陆续续的有七八月份的内推,九、十月份的校招,一路面试过来,跪了一路。个人是做Java开发的,做过爬虫,做过Web,学过一点机器学习算法,然后就踏上了找工作的不归路。
找实习的时候内推了几个公司,不过不多,只面了阿里和美团。心酸的面试经历就从这里开始了。
阿里实习内推面,先是简历面,挂了。面试就随便问问简历,问问个人情况,看什么书,学习涉及到哪些领域啊之类的,人生中第一次面试,也不懂什么面试技巧,跟面试官瞎侃,然后简历面就挂了,不开心。后来还有一次校招内推面试,下面会提到。
然后是美团实习内推面,电话面,一面就挂了。面试官不错,加了微信,用的微信打过来聊的。问了Java源码,HashMap的实现,问题比较细,实现方式,还有插入的时候是插入到链表的哪个位置,扩容是在插入前还是插入后,加载因子什么作用,默认长度和加载因子是多少。然后问到如果重写compareTo()方法或实现Comparator接口要遵循什么,就是自反性对称性传递性一致性这些,主要是为了问Jdk中集合类的排序用什么方法。Jdk1.7的实现方案由归并排序改成TimSort了,如果被比较的类实现的比较器不能严格遵守自反性对称性传递性一致性这些原则,原来在jdk.6中运行正常的代码在升级到Jdk1.7中、后会出问题,所以说面试点主要在这里,估计是面试官踩过这坑。当然,这些东西,当时的我是一点都不知道的。又问到虚拟机调优,用到过什么工具,又问了一道算法题,对有序数组中找出和为给定值的两个数,比较简单。又问到用命令在linux中找出某文件中多行数据中重复次数排前几的数据。问到项目,爬虫的url去重问题,bloom filter原理,项目中的测试,等等,最后又聊了聊机器学习算法,MapReduce,PageRank算法,以及一些其他的,给了我一些建议,面试官很nice。
有了这两次面试经历之后,查缺补漏,哦,不对,应该算是女娲补天了,认真补了补各种知识,然而大厂的实习已经过去了。所以后来暑假七八月份只能去了海尔某部门实习做后台开发。这期间差不多就是各大厂的校招内推时间,又是一波内推。这段时间其实也蛮无奈的,各厂都内推了一遍,最后得到面试机会的只有阿里和网易。
先是阿里内推的面试,面完hr之后挂了,内推了简历两天后,上午正在公司写代码,接到了阿里的面试电话,没想会到这么快。面试官上来问我知道Dubbo框架么,然后问到Hadoop,又问到数据库的一些知识,问到了丢失修改的解决方案,悲观锁或者乐观锁,我数据库一直很弱,当时没答出来。然后又问到我的项目,还是bloom filter,还有一个web项目,遇到什么问题,或者说有什么比较有创意的想法blabla....接着问到缓存啊,反向代理啊,以及分布式环境中怎么保证同一个用户多次请求,每次都能访问到它的session,解决方案是用一个缓存服务器来专门存储session,或者是用反向代理根据客户端的ip把请求交给相同的服务器来处理。框架方面问到了Spring的FactoryBean和BeanFactory,还问了什么记不清了,时间久了,最后让我问问题,我就问他那个防止丢失修改用什么解决方案,他也没直说,一步一步提示我,最后还是我自己给出了版本号方式的乐观锁解决方案。
本来对一面是不抱什么希望的,结果晚上就接到阿里二面的电话,吓死了好吗,怎么会这么快!二面应该是总监级别的,面试的时候总是乐呵呵的,但是分析总结能力极强。面试问到的多是一些安全相关的,问到了项目,遇到过什么反爬虫策略,还聊到淘宝会根据用户的行为轨迹来判断是不是爬虫,问到网络的几层模型,http和https,怎么加密的,公钥从哪来,还有项目中怎么防止sql注入。中间有问到在倒计时抢购时怎样保证客户端与服务器时间同步做到所有客户端公平,主要是用到了NTP协议。大体就这么多吧,当时以为gg了,没想到过了一段时间竟然接到了hr面的预约。阿里的hr面真的不想多谈,传说中的闻味官,第一次面到hr面,面试的感觉真是....如鲠在喉,很不爽。妥妥的,最后挂了。校招笔试没过,阿里的校招个人页面,笔试面试的记录,列的满满的全是Rejected。
然后是网易的面试,跑杭州去面的,顺便再杭州玩了两天,止步二面。一面面试官挺好,问到java内存模型,运行时数据区,辣鸡回收,volatil关键字的可见性以及是否线程安全,并发包,concurrentHashMap原理,synchronized底层实现,Redis数据类型,Spring框架源码,BeanFactory,ApplicationContext,AOP原理,动态代理,Spring事务原理Mybatis中#和$的区别。还问到了一些架构问题和高并发问题,限量抢购时怎么保证不超卖,给出四种解决方案,分别是悲观锁、乐观锁、队列、分布式文件锁,怎样防止服务器雪崩现象,可以采用快速失败。一面过程中聊得很愉快,虽然有些东西没答出来,还是给了机会二面。
二面就不爽了,主要是因为面试官似乎不怎么爱聊,态度很冷淡。去找面试官的时候正巧还有个同学跑去问他为什么二面把他给挂了。面试内容其实还不如一面难,问题主要都是一面中问到过的一些问题,没聊多久就结束了。最后前台hr告诉说面试没过。在杭州又玩了一天半,回青岛继续做码农。
一直到九月份,都没有任何内推面试,其他公司简历都没过,只能校招了。
校招也是跪了一路,先是京东,笔试过了之后去北京面试,中秋前面完技术面,中秋过后回学校hr电面。面试过程一直很轻松愉快,问题也没有跑出以前面试被问到的范围,然后我就安心等通知了,等到10月中旬,终于等到了...拒信。老实讲对京东蛮无语的。
面过京东后又做了n多笔试,一周之后收到了百度的面试通知,又赶去北京面试。一天面完,三面技术面,没有hr面。一面Java面试官,先是让手撸个快排,撸完之后拿过几张纸,上面都是题,让我一个一个指着说答案,有linux下各种操作和权限的问题,还有java基础的一些东西,一不小心就踩了很多坑。接着问设计模式,问到责任链设计模式,设计模式的六大原则,开闭原则是什么,问到项目等等,还有一些根据项目拓展的设计题,答的并不好,结果一面就过了,等了一会二面,结果是个c艹面试官,然后就是各种智力题各种手写代码,手写socket通信,写sql,聊项目,答得也不算好,面试官给个面子让过了,有幸来到了三面。好吧,三面又是个c艹面试官,以为不谈基础,结果上来就让我写了个链表奇偶位置交换的算法,然后对着我的代码拿样例一行一行的测试,卧槽。接着是个在数据中找有两个只出现一次的数的算法,又问了两个智力题,聊了聊项目,谈谈个人规划,目前怎么做的,平时怎么学习,等等,然后就回去了。至今仍未给消息,想必已经妥妥挂掉了。
百度面完已经是九月末了,就回家了。正巧又接到北京某IT教育公司的面试预约,回到家视频面了两面,轻松拿到offer,不过薪资略低,再加上岗位跟我方向不对路,没打算去,但也没立刻回绝,算是拿到的第一个offer吧。
其后投简历一直投的是一些银行证券或者金融类的科技公司,因为个人以后想做机器学习偏金融方向。做了n多笔试题,结果还是杳无音信。期间也拿到了几个面试机会,魅族,YY,华数,不过因为时间关系或者薪资太低就没去。最后意料之外的接到了去哪儿的面试邀请,第二天就坐车去北京面了,去的时候信心满满,也顺利拿到了offer。
一面又是c艹面试官,不过这次算是与c艹面试官聊得相当不错的一次了,问了道算法题,我说了思路,他貌似没太懂,就接着问了。问到设计模式,手写一个代理模式,什么是死锁,手写一个死锁例子,问到tcp,udp,握手挥手差错处理等一些老掉牙的问题,让我解释一下JVM的内存管理,辣鸡回收,运行时数据区,Java里面怎么解决的引用计数法中引用成环导致的内存泄漏,主要是因为Hotspot采用的是可达性分析算法,只要不可达,形成环也会也会被回收。问了一些项目的问题,最后就把我领到hr那里等二面了。
二面是个金融部门leader,先是问了一些机器学习的算法,又让我讲一下最熟悉的算法,就跟他简单聊了下推荐算法。问了下Object中有哪些方法,问了道算法题,然后是关于网络的问题,迅雷的浏览器在相同带宽下谁下载的快,为什么。我说迅雷下载的快,因为是P2P,面试官说不考虑P2P的话,其实是因为迅雷采用的多线程,而浏览器采用的是单线程下载,又让我解释一下为什么这样会下载的比较快。我说每个线程与服务器建立一条链接,而服务器对待每个连接都是平等的,所以迅雷多线程更快。然后他居然捏着下巴沉思夸道"平等"这个用的非常好,你是怎么想到这个词的呢?,我表示很无奈,不知道是不是这个拉高了面试的印象分。又问了些Java内存管理,运行时数据区,辣鸡回收,堆区的分区设计的原理。最后我问了他一堆问题,就让我去等着hr面了。
这时候已经基本算是拿到offer了,在去哪儿只要面到hr,基本都会现场发offer。等了会就到了hr面,聊的过程很愉快,hr很nice,不像阿里的hr,一趟面下来让人生厌。谈了谈各方面的东西,问了我期望薪资之后就直接把offer甩给我了,然后我问了不少问题了解公司情况,走的时候送了我一只小骆驼手办。
回去的路上想了想,薪资还可以接受,暂且决定去哪儿了,结束校招生涯。一路走来虽然面的公司不多,但是苦等不到面试机会也是难熬,面完之后等不到offer更是难熬,有段时间每天睡觉都睡不好,夜里做各种关于offer的梦,患得患失,白天精神状态也是奇差。也许是因为学校和学历的原因,两三个月以来饱尝挫败,不过毕竟大学是自己考的,没考到一个好的大学只怪当初自己不努力,人总要为自己的行为买单,现在或以后。过两天回学校拿三方,我的校招生涯告一段落。新的生活开始了。