【面筋已到】面试BAT、360实习生有感

来源:互联网 发布:临沂知豆电动汽车租赁 编辑:程序博客网 时间:2024/04/30 00:28

[自我介绍]

我先自己来段介绍吧,本人不才,就读天府之国的一普通高校,IT相关专业,热爱C/C++编程,写嘛嘛香,不过对网络编程、windows的底层有一些爱好研究,虽然年纪尚小,但是已经有一些经验了,之前在中科院做过客户端,参与过某些国家项目开发。C++功底还行,TCP也很在行,数据库还有待一些提高。下面呢,我将简要介绍下我在2016.4-2016.5之间面试官问的问题,80%都回答上了,也都面试到最后一轮了。

如果你对我有什么建议和纠正,希望您能在文章下面留言。

[面试W公司]

约定了电话面试的时间,准时就打过来了,充满信心地接了电话~

1、您好,我们是W公司,我们可以开始面试了吗。您先做自我介绍吧。

本人做了简单的自我介绍并且将项目经历、以往的实习经历、技术博客等等都做了简单介绍,最后说明了自己对这个岗位的希望。

2、你说下你为什么从Z公司离职吧?

本人很真诚说了下自己的想法,很希望进入W公司,大公司有大发展。

3、你说下你的项目中最有特色的一个吧。你之前做的什么岗位,主要参与哪个工作呢?

4、对这个职位的看法?

5、我看那个项目中,主从切换是比较复杂的,你能把我讲明白吗?

本人梳理下思路,然后给面试官说了下。

6、给你出个题,某个软件的设计、开发、测试。

我刚开始从功能分析开始,面试官中途打断我了,就那个小功能,你说下你的设计。滔滔不绝说了很多,从设计、功能实现、安全防御各个方面做了鲁棒性较高的设计。

7、你对你毕业设计初步构想是什么?你觉得能完成吗?

8、你能实习多久呢。下学期课程多吗?

9、好的,我这里结束了。后面会有同事继续面试你,谢谢。

[面试B公司服务器-三面]

晚上10点钟,接到电话,面试官说很抱歉,因为之前的同学太多,面试到现在比较晚了,打扰了。本人说没关系,面试官辛苦了,的确蛮辛苦的,我们现在开始面试吧。

(具体内容下次更新)

[面试B公司]

向百度部门的HR投了简历后,过了几天,一面面试官在某天下午突然打电话过来,我一看是北京的,马上去一个安静的地方接了电话,问了我简历上面的那些技术,哪些比较熟悉,回答对C/C++,Socket通信,内核模块编写、TCP/IP熟悉,对数据库不熟。他说行,大概问问情况,又问了我能实习的时间,毕业论文想在哪里完成等等。

第二天中午11点过,意料中的电话打来了,010北京座机。

刚开始面试官问了下我的实习时间段和入职的时间,接着就开始了面试。面试官看了简历后说对C++比较熟吧,我这边虽然做Android的,不过你对C++和TCP比较熟悉的话,也是可以的,我说OK,我能接受,准备好了。

1、先说下你最熟悉的排序算法吧?

2、好的,我看你对快速排序、选择排序用的比较多,说下选择排序的思路吧。

3、选择排序你是怎么选出最小数的?选择排序的时间复杂度是多少呢?稳定吗?最坏的情况复杂度是多少呢?

4、好的,你说下数组和指针的区别吧?说四五个区别吧?

5、static 、extern作用域的范围,static变量在堆栈中什么位置呢?

如果static在一个fun函数里面,函数结束后会不会释放?另一个文件能使用和这个static变量一样名字的吗?

6、什么叫进程,什么叫线程,区别是?Linux多进程和多线程区别?

7、你用过循环和递归吧,两则优势和劣势?递归会有哪些危险?

你说的这个问题,你是怎么防止这个递归导致栈溢出的呢?

8、const用吧,int const *p 和 int  *const p 两个区别?const 和define和inline特点有哪些,简要说下。

9、说下函数参数、局部变量、返回地址、入口地址存放在哪里?内存中哪个位置?字符串常量、全局变量等放在内存哪个位置 ?

10、你这个项目中用过多线程吧,多线程同步有哪些方法?你最常用的是互斥量对吧,互斥量怎么用的?如果用了互斥量还没有实现线程完全同步,用什么办法?

11、你说下你项目中的这个软件逆向分析用的什么技术吧

12、你有什么问题需要问我的吗?

以上就是一面问的一些问题,大部分都很基础,刚开始很紧张,后来就边想边回答,因为之前他说是做Andriod的,我居然还看了下安卓,结果一个安卓也没问。

===============================================================================================

下面是我面的另外一个B公司部门的面试题,也是一面问题

0、说下你印象最深刻的项目吧,仔细讲讲。

1、同学你好!我看你项目比较丰富,很好,那你在做C++项目遇到过内存泄漏问题吗?你是怎么调试的?用了什么工具呢?

2、内存溢出和内存泄漏有什么区别?

3、会调试Core文件吗?(因为我没做过Linux内核调试,不过我会Dump呀)

我回答:虽然不会core文件,Linux异常抛出的文件,我会windows的dump文件调试,加载符号连接,动态跟踪,查看堆栈。。。。

面试官:Linux调试常用哪些命令,怎么做的?

4、好的,你对TCP熟悉吧,TCP和UDP的区别?

5、socket通信过程你简要说下吧?

6、C++用的比较多吧,那你说下C++如何实现OOP的?相比C语言,特点是什么?

7、C++什么时候用虚函数,析构函数用虚函数的意思是什么?可以不用吗?构造函数可以用虚函数吗?为什么?

9、你说下一些常用的Shell命令吧,比如sed、awk、sort用法?grep命令会用吗?

10、你会用mysql数据库查询吗?比如插入,查询,从一个表中找到前十条?

11、说下堆栈的区别吧?哪些情况会堆栈溢出?

12、说下进程同步有哪些方法吧?

13、你有什么要问我的话?

==============================================================================================

另外一个部门的一面

1、先做一个打动人的自我介绍吧,不要流水账,要能打动人的那种?

2、你对网络这块做的比较多吧,你说下你项目中觉得很赞的那个吧?

3、OK,这个项目是多少人呢,你主要做的哪一段,你觉得自己做得最好的是哪部分?

4、你项目中的网络心跳一般采用什么方法实现呢?心跳包间隔时间是多久呢?为什么是1秒不是0.5秒呢?

5、你项目中主从服务器切换时怎么实现的?你怎么实现切换能无缝?如果在切换中间,用户正在发送数据,会造成什么问题?你该怎么解决?

6、如果我给你一个100万个数据,找出其中最大的10个,你怎么处理?怎么读取到内存中并且处理?

7、你说的那个快速排序方法是怎样的原理?时间复杂度是多少?引入一个变量,计算下处理这个海量数据业务的空间时间复杂度?

8、说下TCP的拥塞吧

9、OS的作业调度会吧?(嗯,会的,操作系统学过),那你说下常见的调度算法有哪些?如果这些算法讲给你爷爷奶奶听,你用最通俗的话讲出来。

10、DNS解析过程是怎样的?DNS污染你关注过吗?大概是怎么一个过程?

11、说个数据结构中的单链表,怎么检查它是否有环?

12、你对这个职位的认识?你觉得大学中哪个课程最有意思呢?

13、你有什么想要问我的吗?

重点考察了TCP协议和对项目细节的考虑。有几个问题也打不上,毕竟对网络底层不是很懂。

=============================================================================================

[二轮面试]

下面也是B公司的二轮面试,主要是一个leader或者负责人面,问题有一定的深度了,不完全是基础。有些问题很有意思。

1、你好,请问下你之前在中科院实习主要做什么工作呢?

2、你为什么想来百度呢?你觉得百度可以给你提供什么东西?

3、我给你出一个题吧(这个题很大,我就不详细说了),其实就是设计一个健壮的软件,从各个方面考察鲁棒性。

(本人回答了30分钟,面试官对我回答很满意,问我:冒昧问一句,你这个阶段是从哪里学到这些安全编码知识的?你是通过什么途径学到的呢?)

4、我对你的实习觉得很有兴趣,你能说下你对新岗位的一些规划吗?你为什么不在老东家一直干?

5、你的那个项目用了什么网络理论呢?后台使用了多线程吗?说说多线程同步有哪些?你最喜欢哪种?

6、你说下你开发过程常用的同步方法?为什么你觉得好?为什么其他的不常用?

7、你懂shellcode攻击吗?你说下这对自己编码有什么影响?

7、基本了解了,你过来的话,会从事XXXX等工作,你有什么问题问我吗?

这个leader很有意思,我觉得人特别好,我很喜欢自己的BOSS有想法,画个大饼!哈哈哈~开玩笑的,其实从言语之中可以听出很nice!

=============================================================================================

下面是我面试的另外一个B公司部门,这个是完全不一样的二面:

因为之前一面过了,预约了二面,远程白板面试,直播写代码!真的是直播写代码!

1、你对C++用的比较多,写一个二叉搜索树吧,要求有三个模块:添加节点、删除节点、查找结点。

我写了接近半个小时,在白板上写代码,类似QQ群直播,面试官可以直接看到我写代码的过程,主要是白板!要想好了才能动笔,不然写出来很不好看。好在本人在中科院实习时候认真看了公司的代码规范,命名规范,写出来的代码虽然不全对,但是规范性还是很不错,最后面试官提了点小问题。

2、继续写代码!这个代码是C风格的,我现在需要你用c++类进行封装,并且暴露出模块的接口。

我瞬间想到了虚函数实现多态,然后很顺利写出来了,面试官也很满意,问了下虚函数用法,构造函数能不能用虚函数,析构函数呢?

3、继续写代码!这个题OK了,我们再来一道题吧,我现在白板上给你画N*N的方格,有一部分有障碍物,请问从A点到B点,绕过障碍物运动,有多少个路径可以走?写一下代码。

我想了下,就是个递归嘛,然后吧伪代码写了出来,不过写的不是很好。

4、你觉得你写的这个代码安全吗?

我说不安全

5、你觉得不安全在哪里,你如何分析这段代码是否安全?

因为是个递归循环,递归风险我也是知道的,栈会溢出,检测递归深度并且返回递归点,而且防止溢出导致的溢出攻击,防止溢出攻击可以....返回ERP点,并且对ERP点进行检测。我很详细说了这个问题,面试官也很满意,说还好。

6、你有什么问题问我吗?

你对我今天表现有什么建议吗?他说是面试这么多同学里面,算是还不错的童鞋了,数据结构的话,灵活应用,处理业务要思考哪种数据结构更加适合业务。

至此,1个小时20分钟的面试结束,整个过程还是蛮愉快的!哈哈哈~

====================================================================================================

三面以及360面:

1、就问了一些简单的入职问题,

2、路由分发原理?

3、TCP/IP协议?

这里就不赘述了。






























0 0