论坛首页 招聘求职论坛

深圳财富大厦阿里巴巴面试架构师职位的详细过程,实在让我不吐不快

浏览 122836 次
该帖已经被评为精华帖
作者 正文
   发表时间:2012-02-19  
今天去深圳财富大厦参加阿里的面试了,整个过程总觉得有些让我不舒服的地方,不吐不快。
首先跟前台说明自己是来面试的,前台小姐很快就递一张简历表让我填,我心里就在想,我的电子简历已经写得很详细了,为什么还要再填呢,现在很多软件公司面试都不需要让应聘者手写简历了,我已经闻到一点不对劲的味道了。而且前台没有我的电子简历,也懒得找,直接问我有没有自己带简历,我掏出U盘给她打印了。
练了十分钟的汉字,等面试。我一直奇怪阿里的面试为什么对时间的要求是这么随便呢,我很快就找到答案了,原来阿里是海选,5个一堆地叫进去面试,5分钟叫一次,里面有10个面试官,叽叽喳喳地热闹得不得了。我很快被叫进去了,面试官是一个看起来28岁左右,稍胖的白脸男生,他用3秒就扫完我的简历,然后要求我自我介绍。我说我在Java上做了10年,做过了某些项目,担任了某些角色,解决了什么问题,用到了什么技术,写过哪些通用框架。我也不知道他听懂了没有,他没有对我的简历没有任何问题,他就开始问了让我汗颜的技术问题:“你知道Object对象有些方法?”
我一听就呆了,我真的没有去认真记,我估计他是想问关于并发和泛形的问题吧,我说我没特意去记,如果用到并发和多线程的话主要有wait和notify,常用的clone,toString,equals等。他接着问我wait和sleep有什么区别,我一听又晕了,Object有sleep方法吗?我怎么不知道的,我很淡定地说,sleep是对象自己休息了一会儿,然后时间到了就自己醒来继续干活,而wait,是要别人通知它醒来干活。
他接着问:“inputstream和reader有什么区别?”
我心头又一震,这么高深的问题,我还一时还真的说不出来,我继续淡定:“inputstream是读二进制流的,reader通过指定编码而读取不同格式的编码,比如UTF8或GBK之类的。”
第三个问题,“List有几种实现?”
这个问题我考过无数面试者,我觉得这只是例行的问题,我很干脆地回答,ArrayList和LinkedList,ArrayList的数据结构是数组,LinkedArray是链表,如果插入和删除的操作较多,可以考虑用LinkedArray,如果是修改或查询数据,用ArrayList比较合适。
第四个问题,“如何理解Hashmap?”
我实在看不出有什么难度,我说Hashmap就是key对应value的一种结构体,Hash是一种快速检索算法,非顺序存储,不能前缀检索,不支持太大的数据量,一般来说几万条没问题,通常可用来做缓存机制,而数据库索引一般用btree而不会用到hash算法。
我觉得这些问题都是Java的基础,我应聘的是架构师,我等待着更有深度的问题。“谢谢你的面试,如果合适我们过两天会有人跟你进一步的联系的。”我一听这话几乎晕倒,继续淡定地问:“据我所知所有的复试都会在今天完成,听您的意思我不太合适,请问可以告诉我原因吗?”
结果已定,我只是想知道为什么!
面试官说了我没有一个问题回答正确,我完成不懂hashmap,hashmap在超大数据量如几千万条记录时,会有可能出现hash碰撞,不同的key有可能被覆盖。
我晕,我写了这么多年的java真的没遇过这事,阿里的系统就么猛连hashmap都会因为数据量过大而出错?我直说我真的没遇过这事,我用hashmap最多就处理过10万左右的记录,2GB的JVM内存都提示内存溢出,即使控制在5万条之内,虽没内存溢出都感觉到检索的速度慢了很多,比数据库要慢多了,所以我认为太多的数据不应该在Hashmap处理,而是应该交给数据库去计算,我用hashmap写业务逻辑一般控制数据量在5000条左右为上限。我回来google了关于hashmap会出现碰撞的问题,但查到的结果是有碰撞是正常的,但绝不会出现不同的KEY会因为hashcode相同而覆盖,这跟我的理解完全一致,碰撞会影响性能,但不会出错。另外,有一个前提是KEY的hash算法别写错,而且hashcode()返回是int型,不知道面试官指的KEY会被覆盖是否是因为int类型的问题了,如果是这个问题的话,我早在2003年就已经解决过,根本就不是问题,但已经无法求证他的想法。
面试官说我不懂处理超大数据的系统,我说如果真的有这问题也不难解决啊,换一个能处理大数据的hashmap就好了,或者用memcached,用C写的,性能比JAVA强多了,用得着这么复杂吗,我问那你会如何处理,他说可以考虑hashtable或vector或其他的JAVA类,我说hashtable和vector是线程安全的,性能比hashmap要慢,但有并发时肯定不能用hashmap。我现在想他是否把并发问题造成的key覆盖与大数据量时hashcode所造成的KEY覆盖搞混了,否则怎么会把问题扯到并发上来。
我说OK,我的确不知道这问题,但是就这问题你就否定我了吗?
面试官说还有很多,比如我不懂inputstream和reader的区别,我说就是一个支持编码一个不支持编码,我这个回答有问题吗?那正确的答案是什么呢?
面试官说reader是按字符读取的。我又晕,只要对java有一点经验的人都知道这点吧,一个读byte一个读char。我说我的回答也对啊,指定编码就是为了按字符读取啊。他又说我你知道UTF8,GBK,GB18030和unicode的区别吗?reader为什么能转换不同的编码,我说UTF8就是unicode,汉字占3个字符,GB18030包含了所有的汉字,一般来说用GB2312也就足够了,但UTF8更通用,JAVA内核用unicode处理字符的,所以编码转换成任何编码格式都是自然而然的事,我们开发不需要关心这细节,当出现乱码时一般就是编码有误,转换一下就行了。我感觉我一直在跟一个java小学生在聊天,而且我还是该小学生的学生。
我问了我很关心的一个问题,请问你们公司的Java架构师主要的责任就是写这些hashmap吗?
面试官回答我说,我们公司的架构师都做要经常写hashmap,要处理系统的一些BUG,要明白其中的原理才能解决问题。
我已经有点冲动忍不住说了:每个人的知识面都是有限的,时间也是有限的,不一定所有的场景都会接触到,这些技术问题每个公司都应该积累了不少相应的解决办法,而且网上随便都能google一堆解决思路和办法,当遇到时自然就能解决,一个有能力的人不能光看他做过什么,没做过什么,而是要看他的学习能力,解决问题的能力才是最重要的。架构师要考虑的不仅仅是代码,而是要从整个系统去考虑,要分析子系统之间的关系,数据架构,开发架构,用户需求等方面。
面试官表示很淡定:我觉得我要求的就是要这些,你不符合我的要求。
面试已经束,回家。

这股不对劲的味,我想应该是官僚味吧,整个面试过程HR部门并没有参与,阿里方表现得非常随意,感觉是较低档次的面试会,这种情况是我这两年来已经很少遇到的了,或者阿里比较牛,高手如云,不太在意从外部招聘人才吧。但是,这样的面试,通过面试的人能感受到阿里对人才的认同感吗?进去之后是否要面对更多的官僚问题呢?不得而知。

我知道我自己一定做错了什么,或者我的水平真的不行,或者阿里并不需要像我这样的人,或者阿里hr并没有告诉我,我面试的只是初级程序员的职位,或者我应聘的渠道错了,或者我遇到了错误的面试官,或者,我没告诉阿里,其实我不懂java。

实在让我很羞愧,让阿里的JAVA同行见笑了。
   发表时间:2012-02-19  
凭我感觉大哥的知识层面还是只是限于使用,而且最重要一点大哥态度问题!不管结果如何,我个人觉得最好多向人家学习好的方面。这样才不亏了这次面试。
0 请登录后投票
   发表时间:2012-02-19  
楼主已经有10多年的从业经验,那么面试应该是主要从工作经验着手,从项目经历中慢慢挖掘出楼主的强项,然后看是否和自己公司职位需求相匹配,而不是简单的从几个技术问答来判断。不过现在很多招聘上写的架构师,其实也就是找高级程序员,现在简历上也没人写自己是个初级程序员吧。楼主淡定,其实是你的期望和他要找人的目标不匹配,他们也就是找个高级点的程序员而已。还有一点,估计阿里这些人天天面试,已经是面试疲劳了,所以么态度不会那么耐心。这种还是要内推,10多年经验直接去投简历,容易被面试官看低。
0 请登录后投票
   发表时间:2012-02-19   最后修改:2012-02-20
LZ你就直接和他说,这些题目不够档次,能不能换个有点档次的面试官,阿里面试官就这个能力档次所,告诉他,偶面试的是架构师,构架师呢,问他认识中文字,和理解中文字的意思不,不是拿些吗弄的题目就拿来糊弄就行了,和他墨迹啥



LZ,其实我就是那个面试官,不爽怎么样呢
0 请登录后投票
   发表时间:2012-02-19  
raojl 写道
凭我感觉大哥的知识层面还是只是限于使用,而且最重要一点大哥态度问题!不管结果如何,我个人觉得最好多向人家学习好的方面。这样才不亏了这次面试。

LZ大哥是去面架构师的,面试官面试这些东西我估计都忘得差不多了。“List有几种实现?”这类问题,架构师能记得吗?
0 请登录后投票
   发表时间:2012-02-19  
samfisher 写道
楼主已经有10多年的从业经验,那么面试应该是主要从工作经验着手,从项目经历中慢慢挖掘出楼主的强项,然后看是否和自己公司职位需求相匹配,而不是简单的从几个技术问答来判断。不过现在很多招聘上写的架构师,其实也就是找高级程序员,现在简历上也没人写自己是个初级程序员吧。楼主淡定,其实是你的期望和他要找人的目标不匹配,他们也就是找个高级点的程序员而已。还有一点,估计阿里这些人天天面试,已经是面试疲劳了,所以么态度不会那么耐心。这种还是要内推,10多年经验直接去投简历,容易被面试官看低。

感觉问的问题是初级程序员的。
0 请登录后投票
   发表时间:2012-02-19  
整个过程就是驴头不对马嘴,我告诉他分析很重要,文档很重要,他说这个很容易,请人写就好了,最重要的是写好代码。他的问题决定了他的水平,说实话,我很怀疑他刚毕业满一年没。这种海选,真的不太尊重人。以后只接受猎头和内推的职位。
0 请登录后投票
   发表时间:2012-02-19  
不去阿里不就行了,可以试试别的公司,别较真!
0 请登录后投票
   发表时间:2012-02-19  
他们搞错了吧,架构师职位通常不会问这些问题的
不过,总的感觉就是,阿里面试很混乱,大多数面试官水平一般
0 请登录后投票
   发表时间:2012-02-19  
我可是坐了3小时的长途车来到深圳面试的,给足了阿里的面子了,想不到阿里表示很满意:你看,我说还是要当面面试才能看出水平的吧,差点没被这老家伙给忽悠了,还过来想当架构师,连我这种毕业生都不如。
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics