C ++面试准备

时间:2009-10-15 00:58:25

标签: c++ logic

我接下来将与一家在金融软件行业工作的公司接受电话采访。面试主要是用C ++,解决问题和逻辑。请告诉我这次面试的准备方法。我已经开始浏览C ++中的Thinking并刷新概念。还有其他方法可以准备吗?请帮忙。

编辑:

谢谢大家的建议。我只是想补充一点,我目前刚从研究生院毕业,没有以前的经验。那么你能否提出一些问题,这些问题将被问到新毕业生?

8 个答案:

答案 0 :(得分:53)

确保您了解基本数据结构和算法。你更有可能被问到这些东西而不是食物链上的东西。这些通常是为面对面访谈而保存的。

换句话说:坚持基础和坚实的C ++语法。此外,STL和Boost等常见库的知识也不会受到影响......但请确保您知道这些库给您带来了什么!最后,电话屏幕会剔除那些无法完成基本操作的人。证明你可以,你应该继续下一步。祝你好运!

以下是一些面试问题的链接:

现在,为了完成起见,有些书:

答案 1 :(得分:46)

我已经采访了几位专注于他们的C ++知识的候选人,如果有一个问题能够很好地将人们对C ++的了解放在梯度上,那就是这个:

尽可能强大地修复此内存泄漏:

void doSomething()
{
Foo* pFoo = new Foo();
[do some stuff]
}
  • +1将删除pFoo放在最后
  • +2用于将pFoo放入std :: auto_ptr
  • +3用于了解RAII是什么 - 概念,如果不是首字母缩略词
  • +4提及auto_ptr的异常安全保证
  • +5用于将pFoo放入boost:shared_ptr
  • +6用于了解何时可能无法释放shared_ptr。
  • +7用于讨论垃圾收集技术以修复循环引用

这始终可以显示某人使用C ++的时间。这是一个数据点,您可以用它来告诉您C ++知识的规模。

编辑:我建议有人在3级或以上级别聘用。

答案 2 :(得分:8)

  • TopCoder上尝试一些练习题。

  • 查看Marshall Cline's C++ FAQ。如果决定向你提出一些“知识”问题,而不是“解决问题”的问题,这是学习一些新东西并掌握你已经知道的事情的好方法。

答案 3 :(得分:3)

即使他们正在面试C ++职位,并非所有问题都可能是C ++特有的。例如,在单一C ++职位的同一组访谈中,我遇到了与以下所有相关的问题:

  • 众所周知的排序和搜索算法的算法复杂性
  • 多线程编程
  • 多进程编程
  • 套接字编程
  • 软件开发理念/方法
  • 软件测试和验证理念/方法
  • 调试
  • 基准
  • 代码的动态和静态分析(例如,运行时内存泄漏检测与编译时)

就我而言,电话采访是筛选过程的一部分,以确定我是否可以进行在线C / C ++知识测试(例如通过BrainBench)。然后,在线测试结果确定我是否会飞出现场采访,其中还包括更多的“动手”软件开发测试。

YMMV。很大程度上取决于你在简历上的要求。

面试官经常试图通过给你提示来帮助你,以便他们能够看到你是否能够得到他们正在寻找的答案。除了衡量你的知识外,他们还想看看你的想法。有时,你可能会得到一个既没有帮助也没有积极的蹩脚面试官。关键是要对自己的能力充满信心并保持诚实。

HTH祝你好运!

答案 4 :(得分:2)

除了语言的明​​显部分之外,我发现雇主会想看看你是否完全理解指针,引用,复制构造器如何进入一切,可能是STL,当然还有类的基础知识。

答案 5 :(得分:2)

抓住一位知识渊博的朋友,让他们问你可以在白板上解决的一些C ++编程问题。很多采访都会让你在白板上解决一个问题,如果你不习惯,就可以站起来思考并在别人面前写出来。

答案 6 :(得分:2)

我开始相信的一点是,在将编程视为业余爱好的人与那些认为“只是一天工作”的人之间,有时存在明显的分歧。

即使您不知道具体问题的答案,也值得一提的是,通常您会在<上查找答案。你最喜欢的资源> (例如StackOverflow)。

根据您的经验,我认为面试官不会期望您能解决所有问题。他们最有可能试图决定你是否有“潜力”。

如此放松并尝试享受它!

答案 7 :(得分:1)

John Lakos阅读(或略读,取决于您需要准备多少时间)“Large-Scale C++ Software Design”。有可能,你需要它。