2014年9月19日星期五

阿里面试归来

    一面被问得比较尴尬,好多问题都没有答上来,例如假如有一个8核心的CPU,内存64GB,是使用hash表存储的数据,将其全部倒入内存后,如何让其发挥8核心的威力,你有什么方法?我回答了互斥锁,读写锁,然后试着使用8位的数来判断,还试着说了下ARM big.Little中使用的两种调度方法:GTSHMP但是明显我不了解其原理,面试官让我说具体逻辑的时候回答不上来,太弱了。然后问熟悉操作系统不,我说还行,就开始问了,内核中线程和进程有什么区别?我说进程在内核中是用struct task_struct结构体表示的,线程是轻量级的进程,表示方法应该都一样,然后面试官说这是操作系统书本上的知识,具体描述Linux内核下是怎么表示的?懵了。。线程不太懂啊,进程还知道一点点,亏大发了,然后小声说pthread库??这是应用层的,不算。哎,还是自己技术积累不够。接着问算法和数据结构,问了快排的原理和思路,然后问你能写快排么?我说我忘了,汗。。真忘了啊!!哎。。接着是问我知道C语言里面的mallocfree函数么,问free的时候为啥不用指定需要释放内存的大小,我回答说是因为有个类似表的结构记录申请的内存的,然后接着问我知道这表在操作系统中如何存储的,第一次回答错了,说是环形链表;马上纠正是哈希表。接着面试官继续提问,让我在纸上写代码,写一个类似于动态增长的栈一样的数据结构或者类,主要写它的增加函数,我开始写代码,大体思路是使用链表,然后每个链表节点里面存储一块固定大小的数据,每次增加的时候判断是否需要动态申请新的链表节点,然后按需插入即可。
    写完之后面试官开始问了我一点项目的东西,就叫我在外面等一会。等了一会之后,有人出来通知让到另一个地方去2面,等待的时候太揪心了,自己一面答得不太好,很幸运能获得2面的机会,2面等了很久,大约2小时40分钟的样子,2面的面试官先让我做自我介绍,我就说了下我的性格和研究方向,然后开始问毕设做的什么,我就开始讲我毕设相关的东西(基于云的路由器系统设计),让我画设计简图,然后描述我具体的工作是什么,叙述完后接着让我分析就是当前的作品存在的问题,还有和市场上的产品做对比,我说了个ninja block(幸亏前几天看啊。。^_^),╮(╯▽╰)╭,然后接着问研究生做过的项目和平时玩的一些硬件,2410,6410,5420啊啥的,主要问了我5420有关Android LCD驱动移植的思路和具体做法,我说由于时间不够,我只是自己研究了下,没有精力去开发,就让我叙述下思路。完了后开始问我的家庭地址和对工作地点的要求等等。然后问我有问题没,我就问了下系统工程师和运维一样么?面试官说阿里里面岗位都是互通的,可以根据方向和专业来调整。就让我出去等一会。
    等了一会就是HR面了,HR是个美女,看起来很亲切,比较轻松,聊了下工作意向和个人性格什么的,比较快,30分钟左右就完了,然后让我在外面稍微等一下,等了一会有工作人员通知我可以走了,说应该是过了,可以网上查看。终于松了一口气,早上10点到下午5点左右面完,感觉收获确实很多很多,见了一些牛人,面试官都循循善诱,让你发现表面事物下的原理!!很不错!!静待Offer。。希望早点发啊!!没拿到offer还是心虚的很!!

后记:已经拿到阿里系统工程师offer!!#_#很开心,昨天阿里上市,已经超越Facebook成全球第二大互联网公司!!太牛了!!

今天你对我爱理不理,明天我让你高攀不起!! --马云

2014/09/12
jefby


没有评论:

发表评论