我的面试经历--尾声

    距上一篇Blog发布已经两周左右了。终于来填这大坑中的最后一铲土了。最近工作有点忙,所以一直没能腾出功夫来解决这最后一篇。压轴的两家是宜信和阿里巴巴。至少阿里算是重量级的公司了,BAT么。相信会有很多人希望知道阿里面试的情况。希望能为大家提供帮助。

    宜信:

        公司背景:

            互联网金融,目前线下P2P的老大,有名的产品:宜人贷

        职位描述:

            架构师,通用技术平台部门

        面试过程:

            笔试:

                无

            一面:

                电话面试,面试官职位未知

                总时长近2小时的电面。面面俱到。

                自我介绍、对于宜信的了解。

                更多的介绍了产品的部署结构,为什么这样部署。

                能够支撑多少用户访问。为什么这样设计。

                红包平台刨根问底的了解了如何设计,如何测出的2000并发单台。

                如何弹性的扩容。

            二面:

                面试官职位未知。

                自我介绍,介绍项目情况,画部署结构图。

                算法题:

                    已知一个int数组,内部数据不重复,先单调递增,再单调递减。编写代码求最大的数。

                典型的二分法解决问题的情况。但是我答的不是很好,因为考虑的过于复杂,考虑了先递减再递增的情况。

            三面:

                面试官职位未知。

                由于面试官做过OpenFire所以对IM服务器感兴趣。

                先问了如何保证消息推送的可达性。

                我答,两个机制,分别保证在线客户端和不在线的客户端(ios)的消息可达性。

                第一个机制,引入消息反馈,客户端收到任何消息都需要反馈给服务端一个确认收到的消息。否则服务端间隔一段时间后再次发送消息。

                第二个机制,ios使用pns服务,所以消息的推送是由苹果保证的。但是苹果是没有推送确认的机制的。所以不知道发送到苹果pns的消息是否正常送达。于是,在发送一部分正常消息后,跟一个确定的错误的消息格式的消息。如果pns反馈了错误,证明之前的消息正确送达pns。否则,重发。

                然后是考并发。问题1:一个应用,高并发时发现无响应了,大概出现了死锁。使用什么命令来查看是什么原因导致的。

                命令我记不住了,每次都是现查。。。不过答案应该是top,ps,jstack这几个。当然,当时我就直接说记不住。

                问题2:检查出是因为高并发put数据到一个HashMap对象中。为什么会死锁,如何解决。

                当时先给了一个答案,替换为concurrenthashmap。但是因为没看过源码,无法答出为什么会死锁。然后回答了改造一个hashmap使用读写锁。其实当时有点懵。乱答的。。。不过有并发包相关的内容,也知道读写锁。也就过关了。

            四面:

                面试官,技术总监。

                基本上是聊天,介绍部署结构,如何解决服务上线切换等。

                这是第一个关心我在公司获奖情况的面试官。问我获奖的原因。

                问我更愿意写代码还是出方案。我说更偏写代码一些。不写不敢出方案。

        面试结果:

            拿到offer

        总结:

            1.如果不知道的就老老实实说不知道。

            2.有些公司还是很看重稳定性,在一个公司长待,有好处。

            3.一些常用的东西,要了解如何实现。不要想当然就用了。否则也会像我一样尴尬。

            4.常用的排查问题的方式,尤其在线不能停机的情况下。要准备充足


    阿里菜鸟网络:

        公司背景:

            阿里的地网战略。除了当年马云高调3000亿做物流的新闻之后就一直很低调

        职位描述:

            资深Java开发工程师,大概P6

        面试过程:

            笔试:

                无

            一面:

                一面是电话面试。

                面试官级别未知。

                开始是对方的自我介绍,了解阿里菜鸟的背景。

                然后是我的自我介绍,按照时间轴将自己的学历,工作情况,技能情况串起来一一说明。

                面试官根据履历先问了开发套件的问题。都做了什么,为什么自己做框架。

                然后问的是目前的项目是什么,在里面扮演了什么角色。

                面试官非常细致的下载了这个项目的手机应用。从注册到功能使用一一的提出改进意见。

                整个面试持续了一个半小时。80%的时间都是面试官在谈应用的设计思路。

                阿里人的为用户思考的习惯已经变成强迫症了,这是面试啊。。。

                然后,就是应用的统计信息,比如日活,用户停留时间等。

                整个面试过程,细致入微。让我非常感动。

            二面:

                二面,两位面试官,至少P7以上。

                面试官自我介绍,介绍阿里菜鸟在做什么,同时了解了我对阿里菜鸟是否了解。

                然后自我介绍,根据简历和自我介绍的内容,一一的问了最后一个项目的工作内容。主要涉及产品架构。

                到此为止其实与其他公司没什么不同。

                之后他们问了产品的pv和在线人数。问出了一个问题,为什么你们的用户数量这么少,却设计容量如此之高的系统。

                里面的分布式和缓存分片,异步队列等组件其实冗余非常大。

                这个问题是很多公司都没有问的,一味的认为架构的容量越大越好。

                最后,我说这是因为产品预计要达到这个容量,所以才这样设计。

                面试官给我的反馈却是,有多少用户,做多少事情,遇到问题,再进行扩容等做法。

                架构是生长出来的。不是一开始就那个样子。

                我说,淘宝最早也是PHP的,我看过子柳先生的《淘宝十年》。

                其中一个面试官说,我都不看,因为我经历了淘宝十年。

                这样,我就懂了,阿里这样伟大的企业,其实还是因为有这些思考正确的人。

                就这么聊了近3个小时,二面结束。

            三面:

                终面,两位面试官:技术面试官阿里云P9、HR

                自我介绍,还是老套路,按照时间轴进行自我介绍,维度为:学习、工作、技能

                对红包平台感兴趣,介绍红包平台的设计。

                面试官针对一致性和可靠性提出疑问。我根据详细架构进行解答。

                了解并发如何控制访问,保证前端不受后端限制影响。

                然后问了个基本算法题:

                    有一个文本文件,里面全是非结构化的英文文本,如何统计每个词出现的频率。

                这是一个典型的hadoop问题,如果按照普通的map统计词频,list+collection排序进行回答,面试官肯定会接着问,文件很大、内存很小如何处理。

                我是直接说这个是一个hadoop的词频统计问题,hadoop我不会。

                面试官说,那就普通解法,不考虑内存大小。

                然后我就按照最简单的方式回答了。问题通过。

                其实面试官还可以问,如果不考虑hadoop,就自己手写,如何考虑在有限的内存中解决大文件的词频统计问题。

                这个就得分步骤了:文件分割,部分词频统计,统计结果合并,统计结果分割,统计结果排序,统计结果归并排序。

                技术面试就这么过了。HR面主要是一些方向性,稳定性的问题。这里不提也罢。

                

        面试结果:

            拿到offer

        总结:

            1.阿里这样的传奇的公司是因为有一些苛求着细节的人。我认为,只有有实力的公司或个体才能够苛求细节。

            2.对于架构不要追求和痴迷,并不是越大越复杂越好。这个度是很难掌握的。一流的架构师要有这个自觉。而不是吹嘘自己的能力。

            3.沟通能力很重要,阿里这样的公司喜欢这样的人:技术过硬、学习能力强、沟通能力强

            4.快速学习能力是必备技能


    好吧,终于按照约定写完了这个面试系列。算是给自己个交代。咱这个拖延症患者也算见到了治愈的希望了。还是希望能够帮助到同行业的其他朋友们,早日找到自己喜欢的窝。还有,不要打听博主入职了哪个公司哦。哈哈。

    

    声明:此系列文章只代表个人观点,如果任何个人或团体对文章有疑问,请联系本人沟通,我会考虑修改。

    还有,禁止转载,禁止人肉


    之前的文章:

        1.我的面试经历--缘起

        2.我的面试经历--起伏

        3.我的面试经历--转折

    

你可能感兴趣的:(面试,阿里,宜信)