1.阿里巴巴实习(后台开发,挂了)
阿里巴巴的面试官满牛逼的,气场很强,给人的压迫感也很大。这场面试没怎么准备,当时自己生病了,表现的很差,被面试官吊打的节奏,但是实话实说这次面试让自己也学到了很多,自己以后的学习更有针对性了。
首先是自我介绍了下,然后开始问专业问题。1.首先是Linux多线程多进程,问我有没有写过,我说写过,他让我写出大概的框架,用到哪些函数。(蒙了啊,不是说考个基本的概念吗?)啥都不记得了,只是在之前写过简单的demo代码,用起来啥都忘了,结结巴巴的说了一大通。其实主要要记住fork、pthread_create、pthread_join、pthread_attch、pthread_detach的基本用法pthread_wait、pthread_cond等待条件变量基本框架记住就好了。2.线程与进程的区别,当时回答的也不好,好多基本概念也许你是知道的,但是面试的时候你啥都不记得了。现在想起来如果让我回答,主要是线程是资源调度的基本单位,不拥有资源,多个线程共享进程的资源;进程拥有资源,进程的创建开销要比进程更大。3.然后是多个线程共享了进程的哪些资源,硬是要我全部回答上来,总是问还有吗还有吗。4.在一个线程中new一个对象,在另一个线程中可以访问吗?怎么访问?可能当时自己的C++基础太差了,其实这是个很简单的问题,只要不delete,另外一个线程就是可以访问的。怎么共享也很简单,创建一个全局对象指针,在每个进程中共享这个指针就好了。或者是创建一个主进程的对象指针,在每个线程创建的时候传递这个指针,当然这要用到互斥锁来搞定并发问题。后悔当时自己没复习好。。。
然后问我对C++还是java熟悉,我说C++,其实我两个都不怎么熟悉。问了我一个模板的实现原理,我说编译时确定各种类型,他让我具体点编译器怎么实现的,我面试完了之后在网上都没查到是怎么实现的,我当时应该访问依据他是怎么实现的。
接着是网络问题,其实也很简单。socket调用过程,这个也是好长时间没有用到了,忘记了,只记得大概的过程,忘了accept这个函数。然后是拥塞控制和流量控制,流量控制直接忘了是啥。另外就是SYN状态转移图与socket函数之间的一一对应关系。
然后是算法问题,这两个题我都见过,可我还是不会做。一个是,后序非递归二叉树遍历,另一个是二叉树两个节点的最近公共父节点。
最后假装问了下研究生科研项目,其实我也都不准备说了,明显过不了的。
阿里面试完了之后痛定思痛,好好研究问题。接下来的三个星期,每天刷牛客网上的算法题,有意识的记一些基本概念,看别人的一些面试经验。
2.百度运维面试(挂了)
师兄内推的,百度运维部门的面试。这次面试感觉比较简单,为什么第一面就挂说实话我也是很不能理解。
首先是问了下科研项目,自己感觉讲的还行,他也没多问了。
然后问我对网络有什么了解,我就说了下七层模型。
问了我一个算法,一百万个数,每个数都是1-10之间的排序,我当时一瞬间就想到了,我说是哈希,他问我怎么哈希,我就说开辟大小为10的数组,统计每个数的个数。他也没说啥,准确的说法应该叫啥桶排序吧。
然后是C++问我知不知道虚函数,说了下虚函数在对象内存中有一个虚函数指针,指向虚函数表,虚函数表中记录了每个虚函数的指针。他也没说啥。
总之,百度的面试感觉没啥要问的,可能是效益不好本来就不准备招多少人吧。
总结了下经验,然后就是四月中旬的腾讯面试了。
3.腾讯面试(后台开发实习生,过了,这个真的是很惊喜)
4.华为(研发部门,通过)
这个是在腾讯招聘的间隙,第一面第二面中间的一个下午进行的。当时真尼玛累啊。看我学过Linux内核问了我一个啥“内存分配函数” kmalloc、vmalloc和get_free_page(s)然后第一面就过了。第一面的面试官人很不错,和以往印象中的不一样,人很好,看样子蛮想要我去的,记了我的手机号,还问我是不是真的想去华为。还说你这第二个项目是实验室的还是哪的,我说是我自己接的私活,他还说华为不喜欢学生这样干,你就说是实验室的就可以了,这也是保护学生。
第二面就是传说中的压力面,这个人老是打断我的话。本科华中师范大学,他说他没听说过;我说就在广埠屯那里,他说就是那个很小的学校啊,我说也不算小,一年招收四千人左右啊,那么小的学校招收四千人老师管得过来吗?对华为坑比的压力面早有耳闻,当然难不住我啦。华师的师生比在整个武汉的高校里面都是很高的。你们班上多少人?四十个,你保送武汉大学的?是的。你们这种学校也能保送武汉大学?日常生活说这种话是很不礼貌的,不过我当时很冷静地说是的。还问了家里的情况,等等。总之全程黑着脸,很难受。但是最后也过了。