生活在真空中的程序员

来源:互联网 发布:ubuntu下qq安装包下载 编辑:程序博客网 时间:2024/04/16 21:56

生活在真空中的程序员

 

六年编程经验,月薪8K高不高?不高。六年编程经验,程序都写不好,更别提设计能力,该不该?不该。今天帮同事面试了一个六年工作经验的软件工程师,说实话,在这段时间我的面试过的几十个人中,他的水平还算中等,没有必要数落他。但把能力和经验、期望待遇相比,还有点意思。

 

因为是帮别人面试,事先没有准备,太概看了一下试题:对C语言的基本知识点倒也明白,不过编程能力似乎稀松平常,连几个像二分查找这样简单的算法都没写出来。

 

我一边看简历,一边问问题:

 

简历内容:黑体

我:正常

他:斜体

画外音:(括号内容)

 

l         熟悉VCMFC

 

1.         你对熟悉COM吗?

熟悉,就是用DLL嘛。

 

2.         (是不是误解了我的意思) 我是说COM,微软件的组件对象模型。你能描述一下如何调用一个COM组件中的函数吗?

很简单,用LoadLibrary加载,再取得它的函数指针。

 

3.         (我怀疑他是否真的懂COM) 你知道IDispatch这个接口吗?它有什么用处?

好像是双接口吧。不知道有什么用。

 

4.         对不起,你能讲一下COMDLL的区别吗?

COMDLL的区别有吗?我一直认为是COM就是DLLDLL就是COM

 

5.         肯定有区别,否则没有必要提两个概念了。

不骗你,我真的写过ATL程序。

 

(他的脸有些红了。有人说脸红是一种美德。知耻而后勇,孺子可教也。)

 

6.         你对MFC熟悉吗?

当然了,用了这么多年了。

 

7.         你对DOC/VIEW模型是如何理解的?

可以用多种形式表现同一种数据。

 

8.         大多数应用程序都只需要一种形式去表现,为什么还是要采用DOC/VIEW模型呢?

不知道。

 

9.         一般提倡把用户界面和内部实现分离,你知道有几种方式可以把用户界面和内部实现分离吗?

不知道。

 

10.     (我见试题有道题目错了)SetWindowText这个函数你不知道吗?

API谁记得。

 

11.     你不觉得记住最常用的API,可以提高编程效率吗?

可能吧,不过VC里有提示,你输入..Set,它会提示你。

 

l         熟悉面向对象和UML

 

1.         你对面向对象怎么理解,你觉得面向对象的特性中,哪一条最重要?没有标准答案,随便说吧。

当然继承了,面向对象嘛。

 

2.         多态不重要吗?

也重要,同一个函数名,可以参数不同,使用起来很方便。(看来没有真正明白多态)

 

3.         你能讲一下序列图吗?可以举个例子。

他画了一个简图,两条竖线,还有两个水平箭头把它们连在一起。

 

4.         竖线顶部是不是少了点什么?不是吗?

 

5.         再想想,序列图的功能是什么?不是用来描述对象之间的交互的关系的吗?

(似乎有些火了)理论有什么用?你们到底是招程序员还是招系统分析员啊!!

 

6.         别着急,只是随便探讨一下。我们不招程序员也不招系统分析员,我们招软件工程师。即要懂编码也要懂设计。除了在大公司里,一个人只编码,一点设计也不懂,不太现实吧,是不是?

 

(等他平静下来)

 

l         熟悉HTTPFTP协议、熟悉TCP/IP

 

1.         你知道HTTP协议对应的RFC编号吗?

什么编号?

 

2.         R.F.C,我写在了纸上。

(看样了RFC对他来说是个陌生的概念)...不知道。

 

3.         你能写一个简单的HTTP请求头出来了吗?

GET … HTTP/1.1

Host: …

Accept: */*

Cookie: …

 

4.         GET方法类似的有好几个,除POST外,你知道其它的吗?

就知道POST

 

5.         你知道Cookie的格式吗?

不知道,乱七八糟的。

 

6.         你知道Host关键字用来做什么的吗?

不知道。

 

7.         你能画一下socket服务器端的流程吗?

socket

bind

listen(…, 5)

accept

 

8.         你知道Listen的第二个参数的意义吗?

同时处理客户端的数目。(看来他误解了这个参数)

 

9.         你能说说服务器端处理并发的几种方式吗?

好办,来一个请求就创建一种线程去处理。

 

10.     你不怕拒绝服务(DOS)攻击吗?

 

l         其它

 

1.         你们平时加班多吗?

不多

 

2.         那业余时间一定挺多,一般会在业余时间看书吗?

看,不过看得很杂。

 

3.         没事儿,我也看得很杂。你能提几本你认为最经典的书吗。

(思考状)《深入浅出MFC

 

4.         是本好书。还有吗?

C++编程思想》

 

5.         是本好书。还有吗?

(痛苦的思考状),不好意思,今天面试没有准备,实在想不起来了。(这也要准备?)

 

6.         没事儿。你看过《C++编程思想》。我问你几个C++的问题吧。你能说说拷贝构造函数和赋值操作的差别吗?

差别?

 

7.         (没听得太懂,只好问其它的) new分配的指针,你可以判断指针是否为空吗?

切,怎么可能为空。现在PC上的内存大的是。

 

8.         能谈谈你对设计模式的理解吗?

设计模式?是一本书吗?没听说过。(不会吧,又不是生活在真空里,至少听说过吧)

 

9.         可以认为它是一本书吧。你常上网吗?(经常上网的人,想不知道设计模式这概念都难啊)

当然经常上。

 

10.     你期望什么样的待遇。

我现在的月薪是8K。最好不要低于这个数。你们能给多少?

 

11.     不好意思,我们给不了那么高。最多45K吧。(我强调最多两个字,即使3K我也不想要他,不过是给台阶他下)

那算了,谢谢。