B公司实习生电话面试经过与收获

来源:互联网 发布:js数组的遍历 编辑:程序博客网 时间:2024/04/29 18:42

B公司实习生电话面试经过与收获

本文由CSDN-蚍蜉撼青松 【主页:http://blog.csdn.net/howeverpf】原创,转载请注明出处!

 

过程时间点

  • 3.07 看到实习生招聘信息;
  • 3.09 涂涂改改,写了一天简历,投递;
  • 3.11 收到一面通知;
  • 3.12 电话一面;
  • 3.15 收到二面通知;
  • 3.16 电话二面;

 

一面经过(全程73min)

 

1.1 三分钟以内的自我介绍

       由于没有任何思想准备,一开始愣了十几秒,完全不知道说什么。只是一直想着,必须得说点简历上没有提到的东西。就随便扯了点本科的经历和兴趣爱好什么的。后来好算让我把话题转到了我写博客的爱好上面,勉强觉得凑够了时间;

 

1.2 一些基础问题

 

1.2.1 详细说下TCP三次握手的过程

       这应该是针对我简历上有一句“ 熟悉TCP/IP协议族”。

       这个问题很简单,手到擒来。

1.2.2 能否说下常见应用层协议所使用的端口号?

       这应该是针对我简历上有一句“特别是对HTTP、DNS、SMTP、POP3等应用层协议有深入的了解”。

       这个问题只是简单的验证,也很好回答。

1.2.3 是否了解动态路由协议和算法

       只记得RIP和OSPF这两个名词了,更熟悉链路层协议和应用层协议,网络层还真不熟~~~

1.2.4 简单描述一下快速排序

       其实我简历上故意没提数据结构和算法方面的东西,就是对这方面有自知之明。大二学的东西,当时没学明白,后面项目中基本也没用上,早忘干净了,回头赶紧补补。

1.2.5 是否了解socket的几种I/O模型?

       这应该是针对我简历上有一句“熟悉Linux平台上基于C/C++的网络编程技术”。

       我所说的网络编程很大程度上是指数据包嗅探、解封、解析、构造四个方面。socket的I/O模型有看过,但是印象不深,干脆回答不清楚。【可以参考:http://www.svnclub.com/?q=node/1815】

1.2.6 给定一棵二叉树上的两个结点,我们应该如何找出它们的最近父结点?

       这个,请参看1.2.4,呵呵……

1.2.7 是否知道进程的内存空间中有栈区、堆区之分?请问栈区的生长方向如何?又该如何用程序来验证?

       这倒是也有看到过,栈区的生长方向是高地址长向低地址,堆区反之。要用程序的验证的话,也明白可以利用函数调用的时候参数入栈来验证,但当时比较紧张,一时想乱了,只有放弃。【可以参考:http://www.cnblogs.com/xkfz007/archive/2012/03/27/2420158.html】

1.2.8 服务器上磁盘占用率高,主要由一个进程不停往日志文件写数据引起。现在删了这个日志文件,但是磁盘占用率依旧不停在涨,而排查后发现其他进程都没有写文件行为,请分析一下原因。

       这应该是针对我简历上有一句“熟练掌握Linux下的基本命令操作,可以进行简单的系统与网络维护”

       这个,我只能说估计是进程打开文件后,使用的是文件句柄来读写文件。我们虽然删除了文件,但进程内使用的文件句柄并未因此失效,因此进程依旧在不停写数据。不晓得对不对。

1.2.9 对于一个div标签,我们如何设定段落内文字的字体大小和颜色?如何用JavaScript自动生成div标签?

       这应该是针对我简历上有一句“了解html/JavaScript/xml,可以制作简单的网页”。

       对于html这东西,我只是大概能看懂,会修改,你让我完全自己写,基本也是不会的。所以我回答,印象中是在标签里面可以设定一些属性,其中大小和颜色的设定应该是一个m开头的单词,具体是什么不记得了,需要用的时候再查。后来翻了一下以前编辑的网页,发现基本全说错了。真是自作孽~~~

1.2.10 对于系统架构、前后台交互、动态网页了不了解? 

       只是了解JSP、PHP的一些基本概念,知道的不多。对于我们自己的系统,我们前后台之间基于mysql交互,即后台把运算结果写入数据库,从数据库读入配置策略等信息;前台负责把用户设置的策略信息写入数据库,并从数据库读取运算结果显示给用户。系统架构方面的知识需要补补。

1.2.11 最近有没有看什么书?

       自知数据结构学的差,正在看《大话数据结构》。

 

1.3 针对我的项目经历提出的问题

 

1.3.1 什么叫嗅探?

       这是一个很简单但是不好说清楚的问题,我从分析网卡正常通信和嗅探的不同来解释这个概念。

1.3.2 基于SSL协议,两台主机之间怎样建立信任关系?

       这应该是针对我简历上有一句“熟悉OpenSSL开发库和工具,熟练掌握证书制作、OpenSSL编程、SSL协议分析”。

       说到了SSL连接建立的过程,还谈到了数字签名、CA证书的信任传递,勉强算是说清楚了吧。

1.3.3 HTTP协议的报文结构是怎样的?

       这应该也是针对我简历上有一句“特别是对HTTP、DNS、SMTP、POP3等应用层协议有深入的了解”。

       这个问题稍微具体一点,但我刚好以前专门给师弟们讲解过,而且这3年中不停有接触、深化,所以回答起来轻车熟路。

1.3.4 项目相关技术中你提到了mysql,你对它了解多少呢?你说你用到了mysql的C API,能举几个例子吗?

       这应该是针对我简历上有一句“熟悉MySQL数据库的基本命令操作与C语言编程API,可进行简单地数据库开发”

       就会常见的登录、建表、插入、更新、查询操作吧,会用简单的SQL语句。C API的话,主要是mysql_real_connect(),mysql_query(),mysql_store_result()这些吧

1.3.5 项目相关技术中你提到了libxml2,这个库你们主要是因为什么而采用的?

       系统使用了xml格式的配置文件,使用libxml2来解析配置文件。

1.3.6 项目中一些具体的的技术细节

       因为确实参与了很多项目,写的时候还分别挑了花费精力最多和最近接触的两个项目,所以这部分算是回答得不错。不过涉及到很多的项目细节,不宜透露过多,就不多说了。

 

1.4 你有什么想问的么?

 

1.4.1 请两位前辈评价一下我的简历,是否存在什么非常需要改进的地方?

       “倒是没有什么特别需要改进的地方。我觉得简历最重要的,就是呈现你会的技术,不要往上写不会的东西。经过这次谈话,我们觉得,你的简历基本还是符合实情的。”

1.4.2 根据此次交谈,两位前辈认为我在哪些方面还无法符合贵公司的要求,我应该从哪些方面提升自己的能力?

       “我们觉得你的项目经验还是很丰富的,但Linux开发这个方面,可能还是偏弱一点吧。对于开发来说,数据结构和算法方面的基础肯定是都需要的。如果你想要补这方面的话,我推荐你看严蔚敏老师的《数据结构》,这本书比较基础。网上还有严老师的教学视频,你可以下下来看看。”

1.4.3 您觉得,以我现在的情况,是去贵公司实习更能提升自己;还是说不去实习,努力补补相关基础更好?

       “两样都可以吧。”

1.4.4 贵单位主要做什么工作?我如果被贵单位录取,主要从事什么工作?

       “我们这边是属于运维部门的,具体工作的话,主要分为两类:一类是做具体的运维工作的,需要熟悉Python、Shell脚本等等;另一类是开发运维工具的,就要求熟悉Linux开发技术、数据结构、算法这些。如果你过来的话,主要看你自己兴趣,当然,也要考虑我们这边具体的情况”

1.4.5 我要多久才能拿到本次面试的结果,以什么形式?如果通过本轮面试,后面还有几轮?

       “本周内,电话通知。还有两轮,也是电话面试的形式。”

 

 

二面(全程43min)

 

2.1 对我的提问

 

2.1.1 请描述一下TCP四次挥手的过程

       好吧,这个我还真记不清了,只能按照自己的理解来尝试还原这个过程,结果还推错了……

2.1.2 你提到XX项目是从师兄手中接手的,那么请说下这个项目中哪些是原先就已经做好的,哪些是你做的?在这个过程中,你遇到了,解决了什么问题?又有什么收获?

       最早接触时,是底盘不动,根据师兄提供的接口做上层扩展,这段时期主要是遇到一些编译问题,语法问题;

       中期是针对已有底盘在不同网络环境下,以及针对不同目标时可能出现的问题进行分析解决,遇到的多是协议分析问题;

       后期对底盘做功能性扩展,遇到的主要是一些系统开发问题,架构设计问题,线程通信问题。

2.1.3 项目中你用到了什么进程间通信机制?

       这是一场意外~~~其实我是先写的下半年要用的通用简历,再删了一部分信息作为实习生简历投递给B公司。进程间通信是一个当前正在做的项目打算用到的,计划采用消息队列。还没有实际使用过,但是删减的时候漏了。所以…………赶紧实话实说,求谅解~~~

2.1.4 假设你要删除某个指定日期以前的日志文件,应该用什么命令?

       我只会用rm简单地删文件啊!!!好吧,这我不会~~~ 

 

2.2 我的提问

 

2.2.1 后面的三面还是技术面试么?

       “不是。如果你通过本轮面试的话,三面将由我们经理给你打过来,基本不谈技术了。”

2.2.2 你能否给我一点改进的建议?

       “就我个人通过这次面试的感觉,我觉得你的程序开发基本功还有待加强。当然,一次简短的电话看得不一定准确,我只是从你的回答中(你说主要解决一些编译、语法问题)得到结论,你的编码能力还不够扎实,需要进一步加深。当然,你能在短短的时间内,做那么多项目,还能在已有系统的基础上做出那些扩展和改善,我觉得作为一个学生来讲,还是很不错了。(我说导师总是一个项目刚做完就马上布置下一个项目,没时间深化、加固)我以前也是那么过来的,知道很多导师确实有你说的那些问题,但不管怎么说,我们都需要一个积累的过程。不然,你就只是为了做项目而做项目,没有一个消化积累的过程,那么下次又是从头开始了。积累,是我们这行必须注意的。”

 

 

本次应聘的总结与收获

 

       一言概之:知不足,有方向;心有谱,不再慌。

       第一轮面试,两位面试官相对问得比较宽泛,涉及了较多的技术领域,主要目的应该是想对我整个人做个相对比较全面的了解,核对简历上的内容是否真实。

       第二轮面试,面试官一方面是从自己更关心的、与前两位面试官不同的方面对我发问,对我做更多了解;另一方面,部分问题和第一轮有重叠,这可能也是起到对第一轮面试结果核实的效果。

       总的来说,两轮面试主要还是根据我的简历来发问的,所以写简历的时候一定要谨慎,不熟悉的东西千万不能往上写,当然也不能过于谦虚,否则连面试的机会都得不到,也丝毫没有意义。

       有些问题是必问的,想逃也没用,必须用心准备。一个是自我介绍,基本到哪都少不了,是时候准备一段高大上的了;一个是数据结构和算法,对于我这样一个以后倾向于做开发的孩纸,这是绕不过的门槛,不论我有多少理由告诉用人单位我现在的环境中很难有机会用上这两样神器,用人单位一样有更多理由告诉我,你要是连这都不懂,我们这不需要你!剩下的半年时间一定要抽空好好补补这方面的东西了!

       有些东西可能曾经很熟,但是久了不碰,也会生。适当回顾一下网络方面的东西,加固一下自己的长处,也是很有必要的。

       以前只是一直听说、想象面试是怎么样的,只有真正经历过,才知道,它其实也就这么回事。这次的经历,让我对“面试”有了更直观的体会,减小了我的心理恐惧,对于公司比较关心的问题有了部分认识,不至于求职的时候一抹黑。

       最后不得不说的是,B公司不愧是我们国内的行业翘楚,员工素质挺不错的~~~特别要给B公司的三位面试官点个赞,他们营造了一个相对轻松的面试氛围,让我不至于太紧张。更感谢的是,他们针对我的具体情况,给了我很多建议,让我很受启发。灰常感谢B公司这次实习招聘!

 

------本文由CSDN-蚍蜉撼青松【主页:http://blog.csdn.net/howeverpf】原创,转载请注明出处!------

 

2 0
原创粉丝点击