第一次电话面试就来自百度,可想而知,我还是有点小紧张的...导致自我介绍时忘了好几句台词,好尴尬...直接切入正题吧.
1.先做一下自我介绍.
这个其实事先准备好的,不过说的时候还是没能发挥到最好.忘了好几句台词,因此也提醒我,自我介绍一定要对着镜子多练几次,说的滚瓜烂熟才行.
2.对Linux的了解情况.
如实回答了,问了几个命令,都挺简单的,然后问在Linux下开发过什么项目没,也如实回答了,把那个分布式存储系统说了一下.
3.C语言和Python的对比
由于简历上写了擅长Python编程,因此被问到也在预料之中.但是还是问的比较深入,有两个没答上来,
3.1C语言和Python的对比. 我说Python封装的比较好,在异常处理上也特别方便,而且借鉴了函数式编程,比如map函数.又说个人比较喜欢Python,因为Python写出的代码很漂亮
3.2 Python和Java对比哪个运行速度更快
3.3 Python中的dict是用什么数据结构,我说不清楚,只知道C++里的map用的是红黑树(python中的dict采用hash进行键值配对)
3.4 Python那个部分影响效率. 我只说了I/O, 面试官又说Python的多线程是非常影响效率的.
4.接着上边多线程,问我进程与线程的区别.
说到进程的切换比线程的切换效率低时,问我为什么,这个真心忘了,我只是含糊其辞的说了个内存空间分配的原因(可能说多线程工程进程的内存空间,因此上下文切换时创建线程要比创建进程效率高)
5.问我对设计模式的了解.
这个...实话实说了,我说看过大话设计模式,而且从头用Java实现了,但是看过后的感觉和没看过几乎差不多,只记住几种设计模式,比如单例模式,工厂模式,策略模式,然后对这三个模式简单的说了一说,然后对面传来一句,如果不通过做大型的系统是基本不能掌握设计模式的,顿时产生共鸣.
6.简单常用的数据结构及使用.
一听到这个我就高兴了,从头开始说,希拉哗啦的说了一通,然后问我每种数据结构的应用,说出了大部分,其实还忘了说B+/B-树的,其实我知道忘说了,只不过B+/B-忘的差不多了,没敢提...
问到了哈希表的用处及查找时间复杂度.还有哈希表的缺点
(1)它是基于数组的,创建后难于扩展.某些哈希表被基本填满时,性能下降得非常严重,所以程序虽必须要清楚表中将要存储多少数据(或者准备好定期地把数据转移到更大的哈希表中,这个很费时)。
(2)也没有一种简便的方法可以以任何一种顺序〔例如从小到大〕遍历表中数据项。如果需要这种能力,就只能选择其他数据结构。
7.一个6位的密码,如何去破解它,密码只能是数字和字母.
我说最简单的就是枚举所有情况,但是这样这个范围太大,因为有36^6中组合方式,他说我说的太泛泛了,然后提示我是用6层的循环还是其他方法,我说用6层循环就是我说的枚举方法,枚举出所有可能情况,然后判断是否是密码.然后他又说有其他的什么方法吗,我说还可以用深度搜索的方法,然后就让我详解讲这个,说到这...好sad,因为我说了半天,就差把具体的代码读出来了,结果他问我具体的执行过程,然后我就说啊...但是面试官好像没和我产生共鸣,结果纠结了好久,最后他说基本理解了,顿时轻松不少,可是这样的效果...可想而知.
8.有成千上万个电话号码,每一个号码后面有一个ID,但是这些电话号码有重复的,用普通的机器如何找出重复次数最多的100个.
我先说了下思路.然后大概的说了一下,但是后来发现有些地方说的不对,回来顿时失落...忘了用HashMap了
9 让我说说我做过的项目.
这个....彻底是我的失误,没有准备充分,主要是电面太突然了,没有给我时间啊,之前也没准备过,因此说的没有条理.知识从头讲了一下.
10.问我对重复的工作有什么看法.
这种问题我当然要说不讨厌了,然后就说其实我本科到现在很多时间都是在做重复的事,每天都在写代码,我也很喜欢写代码,当然能不断接触新的技术和知识就更好了.
11. 问想找哪方面的工作
如实回答.
12.问我有什么问题没
我问具体职位做什么,项目组目前有多少人,以及今天的面试表现如何,能不能给我反馈,结果他说不能.一周内等通知,这是我就感觉够呛了...
如果没有二面的话,失败的原因肯定就是项目准备不充分,电话面试经验欠缺,没能注意语速等.还有就是基础知识需要一顿恶补了...整个面试整整一个小时,我的神啊,我知道面试官GG一定是吃过饭了,而我之前还在对着简历做准备呢,头晕晕的...