当前位置:  开发笔记 > 编程语言 > 正文

什么样的面试问题适合c ++手机屏幕?

如何解决《什么样的面试问题适合c++手机屏幕?》经验,为你挑选了2个好方法。

好奇得到人们的想法.我经常接受采访,并且在我的职业生涯中有足够的时间来反思他们,我注意到了很多问题.我特别提到了这个c ++,但是值得注意的是我曾经让人们通过电话问我算法复杂性问题,我甚至不知道哈希查找与二叉树的复杂性是什么,我的意思是更像分析问题,例如"想象有4只大黄蜂,每只嗡嗡的bla bla bla."

现在我个人更喜欢保持手机屏幕更具体,并留下白板的抽象问题.因此,在进行c ++电话采访时,您会涵盖哪些主题,特别是对于高级开发人员?

我知道还有另一个与此类似的线索,但坦率地说,它似乎完全错过了关于电话屏幕的观点,而不是面对面的采访.此外,这更具有c ++特定性.



1> jalf..:

我会问资源/内存管理,因为它是C++中的一个重要主题,它不需要具体的代码.只是简单描述一个简单的假设场景,并询问他们如何确保即使面对错误/异常也可以释放一些重要资源.假设他们正在开发网络应用程序,他们如何确保我们正确关闭套接字?当然,正确的答案是将它包装在RAII对象中,但不要直接询问它们(谷歌"RAII"很容易,而上述问题"你如何确保资源得到正确发布"实际上告诉你是否或者他们不知道适当的技术.如果他们回答"将所有内容包装在try/catch中",他们可能会遇到问题.这与堆和堆栈之间的差异问题很好地联系在一起.

您也许可以提出一些关于异常安全的简单问题,它不需要任何实际代码.一般来说,我会说对所有各种C++习语的讨论可能是一个好主意,因为其中许多不需要太多实际代码,但仍然是重要的语言特定概念.

看看他们是否知道智能指针(再次最好是给他们一个需要智能指针的情况,并看看他们如何解决问题),也许是模板/元程序(在后一种情况下,可能只是找出他们是否'请注意这是可能的,而不是要求他们在手机上编写实际的元编程代码)

您可能还想询问一些未定义行为的常见区域(执行后a和b的值是什么a = b++ + b++??),或者分配10个元素的数组,并向数组指针添加10或11,并询问结果在每种情况下(+ = 10是合法的,给你一个过去的结束指针,+ = 11是未定义的).或者给他们一个他们需要复制很多对象的场景,并询问他们如何做到这一点(一次只能循环复制每个元素,memcpy或std :: copy是明显的答案.请注意memcpy的注意事项,它对非POD对象不安全)

或者一般询问他们的编码风格.他们对迭代器有何看法?他们更喜欢普通的老式循环吗?他们知道如何使用std :: for_each或std :: transform吗?

编辑: 似乎a = b++ + b++(答案是未定义的行为,btw)建议特别产生了很多评论.也许人们读得太多了.正如OP所说,他更愿意问具体问题(不是抽象的,很容易通过电话解释/回答/讨论)问题,这可以揭示受访者的C++技能,这是一个简单的(也许,也许是挑剔的)例子.其背后的原因是1)它具有直观的意义,这是错误的,2)在你意识到这一点之前,你必须具备一定的C++经验.当然3),通过电话询问是简短易行的.它不需要任何人编写代码.不,它不会透露候选人是否是"伟大的程序员",但正如我所理解的那样,这也不是目标.如果有人弄错了,那根本就没有多大意义,但是如果他们做对了,你就可以相当肯定他们知道一些C++.但如果你再次阅读我的答案,你' 我会看到它只是我认为应该代表的一类问题的一个简单例子.C++充满了未定义的行为,即使在看起来完全无害和直观的代码中也是如此.要求候选人承认一些这样的实例可能是有用的,无论是"在同一个表达式中修改相同的变量两次"上面的例子,还是不同的东西.



2> Airsource Lt..:

我想知道人们是否真正了解他们正在使用的工具.我还发现"高级"开发人员的知识存在严重差距.

你可以考虑问一下

什么是vtable.

模板如何工作

堆和堆栈之间的区别是什么.回复这个问题的深度可能非常有启发性!

"你真的需要采访我"回答最后一个问题

分配 - 限制,用例,失败模式,效率,资源清理,析构函数

堆栈调用帧 - 调用函数,参数,回溯时会发生什么

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有