找暑期实习总结

  1.阿里巴巴实习(后台开发,挂了)java

    阿里巴巴的面试官满牛逼的,气场很强,给人的压迫感也很大。这场面试没怎么准备,当时本身生病了,表现的不好,被面试官吊打的节奏,可是实话实说此次面试让本身也学到了不少,本身之后的学习更有针对性了。面试

    首先是自我介绍了下,而后开始问专业问题。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.腾讯面试(后台开发实习生,过了,这个真的是很惊喜)

  一面是在13号的下午四点收到次日早上九点面试的短信通知的,原本觉得笔试挂了,当时个人心情真可谓跌宕起伏你们能够感觉下。
一面面试的内容比较基础可是很全面。主要由计算机网络,操做系统与Linux,数据结构与算法,C++与STL模板四部分为主。首先面试官问的是个人兴趣爱好,我说跑步,能够锻炼身体还能够释放压力。(这个问题二面也问了,也是基本一样的回答)接着问的是你搞过Linux编程,我说是的,那你写过Makefile吗?我说写过,他说那你就写一个Makefile吧。我写完了给了他,他啥话没说,过后我查了下有一点点问题,主体框架是对的。而后问你用过gdb吗?我说用过可是用的很少,而后他就让我把本身知道的gdb调试方法说一下,我就说了几个print查看变量,break设置断点,而后我都忘了,他又问了个怎么调试正在运行的进程,我蒙了,我说我不懂你的意思,又解释了一遍仍是不懂,就过去了。
第二部分问的是C++和STL仍是那几个经典的问题,虚函数啊,纯虚函数啊,vector,map底层原理啊,这一部分比较简单。他问我map和set的区别的时候,我说我没用过set,我能不能解释下map的原理?他说能够。这部分比较顺利。
接下来是数据结构与算法部分,很简单,第一题手写快速排序,五分钟时间,我当时短路了,乱涂乱画了一下,直接用了switch元素的办法而不是挖坑法,可是他也没说啥。
接着问到了TCP的过程,创建链接,销毁链接的过程,为何要三次握手,为何四次挥手,拥塞控制和流量控制分别是什么概念,流量控制的过程,分别要解决什么问题。创建链接的第二个syn做用是啥,我当时也不知道怎么想的,说了个创建服务端到客户端的链接,由于tcp是全双工通讯,下来以后我才知道这个说法不对,当时他也没说啥,可见面试官仍是容许学生犯点错误的,只要说出本身的理解就好。而后还有就是socket的整个过程当中的函数调用。
接下来又是Linux中的问题,分别是会不会建立进程,建立线程,我说会,进程间通讯方式,我把那几种说了下,又问,建立共享内存会写吗?我说我忘了只记住一个shmget,他给我一支笔让我把建立线程,建立进程,建立共享内存写出来。分别是fork,pthread_create和shmget,最后一个我是死马当活马医,没想到这个函数既是建立又是获取共享内存。他看了看,这一部分算是过去了。
接下来又是算法题,很简单,单链表是否有环怎么判断,我说若是有环一定两个一块一慢指针某个时刻相等,他让我证实,我就画了个图证实出来了。
接下来就介绍了下部门是作游戏后台的,我这才回过头来,我报的SNG被调到IEG了。而后面试官说后面还有一轮技术面,我追问了一句,意思是我这一轮过了?他说咱们还要讨论下。次日中午十二点我查了下微信,过了。
 
二面:
  不一样于一面的和善可亲,二面明显脾气比较大,全程板着脸。二面的题目不能细说,由于签了个保密协议。
首先是死死揪住我为何是学通讯的要来搞游戏后台,我就扯了一通,他硬是不满意,又问了个你知道前台和后台有什么区别,我就说了前台重视人机交互体验,后台更注重高并发。他问高并发怎么解决,我说硬件上更新,软件上选择合适的模型(你们懂得,那三个模型)。接下来就是问这几个模型的区别,实现原理是什么,你写过吗?测试过吗?我写过,没测试过,看网上写的,他让我现场写出来,并建议我回去测试下。下一个题是一个算法题,红黑树或者最小堆解决。这时他忽然问,这些课你学通讯的都学过?我说都学过,你自学的仍是?我说老师教的。而后问了科研项目,这个大概有二十分钟吧。接下来是最后一个问题,哈希问题,纸上写出来。最后的解决方案不完美,他说你这种哈希方法很差啊,我说我知道很差可是我又没想到更好的办法,而后他说这就是面试。而后让我回去等消息。当天下午四点钟,查了下,过了。
 
HR面:
  这个就比较简单了,聊了下生活,聊了下理想。
 
总结:
整个面试下来仍是比较简单的,都是很基础的知识。四个算法题没有一个是特别难的,这更加坐实了个人一个观点,面试题难度不会超过二叉树,好好把基础搞定就好。我本科开始玩Linux,研究生在Linux上作内核开发,因此Linux基础还算能够。本科研究生通讯相关,TCP那一套就比较简单了。算法题,我是从3月4号开始在牛客网上刷题的,一共刷了43个题目,作完以后我真心感受本身的算法功底进步了很多。内核开发主要是C语言,没有C++,C++我刚接触一个月不到,这个地方特别简单,问题很死的。

 

  4.华为(研发部门,经过)

  这个是在腾讯招聘的间隙,第一面第二面中间的一个下午进行的。当时真尼玛累啊。看我学过Linux内核问了我一个啥“内存分配函数” kmalloc、vmalloc和get_free_page(s)而后第一面就过了。第一面的面试官人很不错,和以往印象中的不同,人很好,看样子蛮想要我去的,记了个人手机号,还问我是否是真的想去华为。还说你这第二个项目是实验室的仍是哪的,我说是我本身接的私活,他还说华为不喜欢学生这样干,你就说是实验室的就能够了,这也是保护学生。

  第二面就是传说中的压力面,这我的总是打断个人话。本科华中师范大学,他说他没据说过;我说就在广埠屯那里,他说就是那个很小的学校啊,我说也不算小,一年招收四千人左右啊,那么小的学校招收四千人老师管得过来吗?对华为坑比的压力面早有耳闻,固然难不住我啦。华师的师生比在整个武汉的高校里面都是很高的。大家班上多少人?四十个,你保送武汉大学的?是的。大家这种学校也能保送武汉大学?平常生活说这种话是很不礼貌的,不过我当时很冷静地说是的。还问了家里的状况,等等。总之全程黑着脸,很难受。可是最后也过了。

相关文章
相关标签/搜索