这里算是转贴,原帖发在
    http://www.delphibbs.com/delphibbs/dispq.asp?lid=3979245,
    原帖回复部分也有些自己的看法。    两个月前,开始招聘Delphi程序员,招聘前随手写了几道题,用来笔试。
    到现在还没有招到人,很无奈,标准甚至降到只要能做第1、3、5题就录用的水平。结果竟然没有人能够将这3题都答对。很多人连string和WideString的区别都不知道。
    近几年,Delphi的从业环境逐年下降,在网路上看到无数人在唱衰歌、转语言。想来原因有:
    1、行业开发方向往网络、嵌入式、分布式发展;而Delphi被大家当成做数据库开发的工具(甚至之前宝兰都这么宣传)。
    2、用Delphi的公司大都是做MIS的中小公司,产品附加值差,一味压低产品门槛和开发人员素质。
    3、开发人员大多只会拖拖控件,碰到点小问题就到处找控件,看看大富翁、CSDN Delphi的问题,一个个白痴得不行。
    4、关于Delphi的教材也是全篇一律的数据库开发,不亦乐乎地玩弄些数据读写的小技巧。
    我想说的开发人员的问题。过来面试的人,从77年到88年的都有,年龄跨度上较有代表意义。多数人的简历上都写着精通这个、熟悉那个,却只能做上3、4题,还未能全对,有写上名字交来白卷的,更有2个80年前后的应聘人,看了会题目后直接走了。我觉得题目还是比较容易的,而是很多人的开发能力差,从来没有想过理解开发环境、操作系统提供的能力,提高算法设计能力。因此,给人的印象用Delphi的都是些水平低下的人,公司没法提高开发质量、产品质量,也就无法开出有竞争力的薪资,最后是整个Delphi生态链的质量下降。
    说这些话,一来期望得到些共鸣;二是希望借此招聘,我对英才网上泛滥的简历几近绝望了。我姓李,联系方式是:[email protected],北京金钻石科技发展有限公司。
    
    笔试题目如下:
Delphi工程师笔试题
北京金钻石科技发展有限公司
答题人:_______________一、 Delphi基础
1、Delphi 内置类型 string 和 WideString 的区别。
2、简要描述Delphi代码单元中,以下关键字的作用。
   interface:
   implementation:
   initialization:
   finalization:
3、将一周七天声明成枚举类型。
4、现有Integer 变量 A、B,在不声明其它变量的情况下,将它们的值交换。
  如,A := 1; B := 2; 交换之后 A = 2; B = 1。
5、现有以下类:
type
  TBase = class
    function GetValue: Integer; virtual;
  end;
  TChild1 = class(TBase)
    function GetValue: Integer; override;
  end;
  TChild2 = class(TBase)
    function GetValue: Integer; override;
  end;
function TBase.GetValue: Integer;
begin
  Result := 1;
end;
function TChild2.GetValue: Integer;
begin
  Result := 2;
  Result := inherited GetValue;
end;
function TChild1.GetValue: Integer;
begin
  Result := inherited GetValue;
  Result := 3;
end;
用以下方法创建对象o1, o2: TBase:
  o1 := TChild1.Create;
  o2 := TChild2.Create;
那么调用以下方法的返回值是
  o1.GetValue返回:
  o2.GetValue返回:
6、如何模块内部获得自身路径?
  Exe程序:
  DLL程序:
7、描述一下TEidt和TListView的类派生顺序,并说明它们的来源区别。
8、用pascal 写一个双向链表。
9、设计模式中的单件模式,在Delphi中可以用什么方式创建。
10、Delphi快捷键
  快速搜索添加控件:
  打开工程属性对话框:
  切换编辑中的代码窗体:
  删除一行代码:
二、 Win32基础
1、写出Delphi声明Win32类型的库及其对应的Win32 Dll库(至少3个)。
2、如何在Delphi中完成多线程的内存保护。
三、 数据库
1、现有MS SQL Server 数据库 UserLibs 列举出所有用户表及其字段。
2、现有数据库A,数据库B和A相对应,在数据A中表增加时,或字段增加时,将结构同步到数据库B中,该过程不能损害数据。(上机题)

解决方案 »

  1.   

    考试,如果不让google,题目再怎么实际,也是死记硬背才能占上风
      

  2.   

    从要求上看,要求是delphi高手(对windows编程很了解)及sqlserver高手
    貌似根据你们的实际需要出的题,这像是某个项目的开发人员出的题,而不是懂得招聘的管理人员出的
      

  3.   

    to youthon
      这个题不是表示要招Delphi高手,招聘情况,原文已经说明。
    to nbzip,mdejtod
      这个题,我昨天在大富翁和盒子都发了一份。考虑到每个人可能上的站不一样,也就抄一份到这里。
      

  4.   

    还不错 你出的delphi题目。我刚来北京 面试  10家单位有7家要做题  有六家给我出的都是c语言的题。如果靠你这样死机硬背的题,还不如找个有莫莫 资格证,他们都是考试高手。但是能不能干活就不知道了。
      

  5.   

    to qidahai985615
      貌似这些题也不能说是死记硬背的题吧,我希望得到的是对开发工作的理解,有些题我觉得你肯定在教科书里找不到答案。
      

  6.   

    4、现有Integer 变量 A、B,在不声明其它变量的情况下,将它们的值交换。
      如,A := 1; B := 2; 交换之后 A = 2; B = 1。 这个要是A,B小于65535的数字..我还会...如果是任意数就不会了..9、设计模式中的单件模式,在Delphi中可以用什么方式创建
    这个 看看 刘老师的书 编程模式 应该没问题..可以书买了 放在那里没怎么看10、Delphi快捷键
      快速搜索添加控件: 
      删除一行代码:
    没怎么用过...控件稍微找找就找到了..没怎么用过快捷键-----------
    2、现有数据库A,数据库B和A相对应,在数据A中表增加时,或字段增加时,将结构同步到数据库B中,该过程不能损害数据。
    ----------这条 楼主要是 知道的话..一定要告诉我啊...
    对做双机备份很有用..可惜我没想到什么好方法
      

  7.   

    呵呵,要是我,我也说不清楚,但不能表示能力很差。如果要考能力,可以在一台可以上网的机器上,让他们做一个实实在在的程序或小数据库系统。现在网络太发达了,人的脑子记忆力自然会变得有点迟钝,并且对网络有依赖。用了差不多十年的Delphi,虽然它很强大,但我只用它来写动态链接库(DLL)。
      

  8.   

    to hecongzhen
      答案肯定是有的。
    to PBGun
      我宁肯多问些基础,其实除了Delphi,我也在招其他语言的;语言并不重要,所以不同语言职位的面试题目背后的意味都差不多。我不是老板,我望得到是人,不是工具。
    to kwer
      呵呵,跳开开发,人活着还是有点激情好。
      

  9.   

    to leeky
      貌似有些误解。题里的确不乏基础,但是我希望得到是对语言(工具)及其外延(OS、算法等)的理解。
      因为具体的开发(我觉得这估计是你表达的能力)都是可以迅速学习或者找到答案的;只要有基本的理解,那么做什么开发,用什么语言还有关系吗?
      

  10.   

    to liangpei2008
        我也赞同你的招聘看法,或者说这种看法也折射了现实的无奈。发这个帖子,说这些感想,只是想描述一下我理解的delphi结症。我们看delphi老在说数据库什么,新人就以为delphi不就是一个Form、一些界面控件,加上ADO什么的,还是有折腾诸如效率奇差无比的MIDAS之类的东西,我只想说三个字——完蛋了!
      

  11.   

    我做了7年的delphi的开发,开发过大型ERP的软件 ,你这些题如果是考试的话,我估计我也不一定能做出来。这些题我也用过。但是每一个人不一样 。像我就是不愿意记忆这些东西,网络很发达,只要能理解,有思路就可以了。何必再几个知识点上去计较这些呢
      

  12.   

    to zzflover
      貌似没有理解我的意思。
      

  13.   

    to lsjf0341
      题和做了几年开发没有关系的;我想这是两个概念吧。
      

  14.   

    在网络时代我觉得要找的人有如下条件就好
    1:会利用网络和MSDN资料解决问题。
    2:会模仿并适当发散。
    3:熟悉业务逻辑。
    4:代码编写习惯要好。
      

  15.   

    这类面试的公司一看就是垃圾公司,曾经到一个管理软件公司面试,题目让写出加密算法代码,nnd,傻逼才背的过,我就写了个无法写出,最后说我的工资太高了,他们这的工资最高到6k,去他nnd
      

  16.   

    to jiheng999
      呵呵,公司是换地方了;你说的会计姐姐还在;至于面试,并不是想象中的海选啦。
    to youthon,gelinqing
      贴中我就说了,发帖的目的是发发感想,二来看看这种方式能不能找到人。
      各位所说的,我否认是一种工作方法。
      至于题,不就外延了点吗?难道都只剩下拷贝粘贴,没有自己思考了、丧失激情了吗?
    to bdmh
      我不知道你是不是以攻击人做为乐趣,不清楚你是不是受过什么非人的伤害,但也不用将自己搞得喝疯子一样。
      

  17.   

    出的题目不错,全部看了下,只是“8、用pascal 写一个双向链表。”不懂。不过像这类题目:“ 快速搜索添加控件:”,我知道有这个功能,也知道对应的菜单在哪里,但如果让我记住快捷键在笔试的时候写出来,那么还是记不住这个的,因为不常用。再说delphi7在这个菜单后面也未加注快捷键,所以很难答出来,但我知道该功能,也会用。就是不知道快捷键,现在还不知道!
      

  18.   

    to MinxSoft
      用Delphi的公司,有几个有人才培养计划?
      其次,是不是非要将人集中到一起送去上课,人才培养计划?
      我以为,依赖于环境驱动,还不如自我驱动。
      对于面试题不一定,实际工作中都能碰到;我写完题目的那天下午,我就将题目发给同事们,大家工作停一下,看看这些题你会如何去做;我们平时也会讨论很多开发的话题,和具体工作没有关系,和Delphi没有关系;所以,招聘的时候,我期望找到同道中人。
      和大家的讨论中,我觉得,不少人在观念上都很消极。
      
      

  19.   

    to LeonMtv
        我什么要求都没有提,不参考所谓工作经验、性别、学历。也没有说我在找高手;只是说希望找到相同理念的人。
        至于人海攻击,无所谓啦,只要不死人,没有什么问题是值得担心的。
      

  20.   

    呵呵,这一题在你之前,有人问过,我也答过.呵呵(给DELPHI的兄弟们丢脸了)
    http://topic.csdn.net/u/20091019/17/adf9d49a-f539-4ee0-afbf-2a2b7b35561c.html====================================
    我觉得面试题,取一些平时要经常性遇到的问题或功能就好了.
    因为行不行,在工作的前一二天之中就能体现出来.如果不行就是不行.当然如果是大公司,就得有培训机制,人都是可成长性.给一个月的学习期.
      

  21.   

    呵呵,面试本来就没有标准的方法。
    如果题很具体,那么肯定会有人说,能不能通用一点啊,具体的东西一查就知道,只要是基础掌握了。
    现在题基础了些,也引来一堆人说,应该考些具体点的,基础的东西平时也用不到,谁能记得住啊。我还是觉得应该在基础的东西多些了解,对开发环境自身(包括编辑器、库等)多些了解,在对OS多些了解,这样能知道在什么层面上开发,可以利用的东西有哪些,编译出来的代码运行在哪里;这样做出来的东西,高效、简洁、稳定,更重要的是易于维护。谢谢大家关注,这边我先结贴了,30号前我会将题的全部答案发在大富翁里(贴首有链接)。
    如果从我的帖子里,觉得有共同话题,可以加我qq701883。
      

  22.   

    這個大哥說的對 頂頂!!TO 樓主
    恐怕沒有幾個人 是專門為哪個公司準備的  像樓主你說的"一个个白痴得不行" 說這個 說明你本身就存在問題...........莫非你要將自己炒成IT招聘界的'芙蓉姐'~_~   ...............不由想起一句話 你可以指點但不可以指指點點   ............