从COBOL转换到C ++

时间:2009-04-11 02:33:12

标签: c++ cobol

我是一名相当初级的程序员,他的任务是采访一位经验丰富的大型机COBOL程序员,为Windows Mobile进行C ++开发。经验丰富,我的意思是候选人的整个编程生涯都是COBOL。

我对任何特定语言都没有偏见,只是略微担心我能够进行彻底的面试。

在面试中,如果没有COBOL经验,我怎么能对这位受访者的能力有一个良好的感觉?

我应该询问或寻找具体的事情吗?

我已经阅读了很多关于SO的一般访谈内容,考虑到候选人背景的性质,对于我寻找的任何具体事情会有所帮助。

4 个答案:

答案 0 :(得分:5)

最棒的是,给他一项任务,类似于他在贵公司必须做的事情。 告诉他他可以使用伪代码(所以不需要互联网)。

此外,Cobol人员的主要问题是掌握OO(因为Cobol主要是程序性的......我知道新的OO版本)。

Cobol人员的另一个陷阱是掌握范围概念,因为传统的Cobol每个变量都是从他所使用的应用程序的开头到底部。

答案 1 :(得分:5)

如果这个人是一名优秀的程序员,他/她就有其他语言的经验。 (说起来是一个从COBOL开始的老屁,甚至更糟糕的RPG / II。)即使这个人从未有过任何其他工作。

以下是您可能会问的一些事项:

  • “你是如何开始使用电脑的?”
  • “你做任何有趣的节目吗?”
  • “你为什么要迁移到C ++环境?” (这是一个特别好的问题,因为现在很难找到优秀的COBOL程序员。我敢打赌这个人想学点新东西。)
  • “你做过任何汇编语言编程吗?” (如果他们对机器感到满意,他们很快就会对C / C ++采取更好的赔率。)
  • “你能描述'面向对象编程'是什么意思吗?” (键:寻找“对象”是什么,“继承”和“多态”的描述。如果这样做,请问他们何时使用继承与聚合,即“是一个”关系vs“有一个”关系。)
  • “你家里有一台Windows电脑吗?或者你有一台真正的电脑?”

如果他们声称拥有任何C ++知识,那么一套非常好的筛选问题是:

  • “C中的声明定义之间有什么区别?”
  • “班级中'私人','受保护'和'公开'声明之间有什么区别?”
  • “什么是'朋友'?” (如果他们知道说“在C ++中只有你的朋友可以访问你的私人部分。”)
  • “什么是虚拟成员函数?”
  • “什么是'虚拟继承'?”

答案 2 :(得分:2)

确保他们了解并理解结构/类,类型,多态,模板,函数以及最重要的指针。 确保他们理解语法。例如,他们如何声明一个指向带有两个整数参数的void函数的指针?他们如何解决最令人烦恼的解析? 初始化列表如何优化代码?他们熟悉标准模板库吗? 他们可以手工编写原始链表或矢量数组吗? 这些东西是你想要的程序员能够编写高效和干净的代码。

答案 3 :(得分:1)

要弄清楚受访者对C ++的好处,是不是更重要,如果那是他应该做的事情呢?