一面:
3月11日下午,一点半午睡起来看到了一个北京的陌生电话,开始以为是骚扰电话,后来一想会不会是前两天内推的百度有消息了,赶紧打过去。结果真是百度说约定下周一下午三点半给我打电话进行电话面试准备好电脑和网络,要进行在线编程。
太突然了,以前根本没有面试的经验也不知道准备什么,在网上搜索了一些面经,于是把以前的项目看看把网络编程的书也拿出来看基础知识(恨不得多出几个脑袋)只有三天的面试准备时间。。。。
3月14日下午准时打来电话,直接进入面试环节:
1.自我介绍一下,巴拉巴拉说了些个人信息和自己做得方向和东西。
2.简单介绍一下你的项目,巴拉巴拉说了一些简单的项目,然后我说了最近在做一个线程池加epllo的服务器程序,于是他就抓住线程池进行对我的提问,什么是线程池啊,为什么使用线程池,线程和进程的区别,我的线程池是怎么实现的。可惜不是直面,要是能画图会好讲很多,巴拉巴拉说了一堆 主要就是线程的并发问题(pthread_cond_wait)感觉自己没有说清楚。
3.他挑了我做的一个项目进行提问,问项目的具体实现,架构什么样子的。 我做的事一个网络连接的中间件,简单说就是基于socket接口开发的通信接口软件,一个运行在服务器上的通信程序,他负责把client方发送过来的数据送给应用程序,并且把应用程序处理结果传送给相应的client 1>client到通信进程 多进程并发形式 2>通信到应用进程 进程间的通信(消息队列) 环境为unix操作系统。
4.接下来问我了解java么,我说明吧一些,,,然后就让我讲下GC的原理(哎 自己挖的坑啊)。我大概说了下年轻代,年老代,持久代什么什么的,,,真的是不太明白。
5.估计他也看出来对java不是太熟悉就问了C++的问题(我简历上写的主要学习语言为C ,C++) 问我const char *a, char const*a这类的经典问题。
6.他看我简历上写的熟悉linux操作系统 于是就让我说几个我用过的API函数。 脑子里崩了几个最近用的关于IPC的API说了说。
7.最后他说我们来做两道题吧,他通过邮箱吧在线编程的网站发给我,不知道怎么邮箱有延迟遇到了下小尴尬。。。
第一题是一个二叉树,给了前序和中序,让我写出后序
第二题是 大概是两个有序的数组合并求出中位数 (给了些提示 做出来了,,)
最后他让我问他几个问题。一时想不出什么问题,就问我学网络编程方向发展怎么样,还需向那方面努力。
回答是:学自己感兴趣的东西,坚持住就行。
之后说面试结果会在三天内通知。
晕晕忽忽的一面结束(回头写第二天的电话二面)。