如何处理有关编程风格的面试问题


11

作为面试中的C ++程序员,我反复发现自己处在这种情况下,即面试官想探究我对良好编程风格的了解。这些通常以OOP的基本知识为中心。

我知道OOP对封装概念很有用,我每天都会使用它。但是,由于像C ++这样的语言允许许多不同的样式,并且某些C ++方法(如TMP或STL算法)根本不是OOP(而是更像是函数编程),我发现自己陷于如何最好地“出售”我对其他方法的知识的过程中,不会遇到自高自大的人,或者不了解基本知识的人。我担心问者对OOP的这种强调来自于他们在90年代被社会化,而OOP被认为是万能药,但这是一个傲慢的观点。

我将如何充分利用此类问题?


1
基本的OOP只有少数几个概念。为它们每个准备一个现成的代码示例,您应该清除其中的大部分。是的,面试主要是为了满足面试官对您在该主题上知识的怀疑,这是出现意识形态困境的最糟糕的情况。
重大事件

Answers:


6

我要说的是,您必须尽最大的努力回答此类问题,就像您应该尽力回答任何类型的问题一样。

稍后,当您有机会向面试官提问时,您应该提出主题,提出以下问题:

  • 你只做OOP吗?
  • 我使用其他编程方法,在您的团队中如何接受?

依此类推...如此一来,您不仅可以开始讨论如何使用其他方法出售您的专业知识,还可以看到该团队/公司对OOP的僵化程度和重视程度。


5

不必过于担心提问者的动机,而要诚实地回答。请记住,面试是一条两条路。您不想被思想上僵硬的公司所困,也不想被他们所困。

话虽如此,我认为您对面试官的意图有些偏执。数量惊人的所谓专业程序员不了解OOP的基础知识。99%的时间里,面试官不是想看看您是否喝了OOP酷儿辅助工具,而只是想看看您是否对此有基本的了解。即使您认为另一个范例更适合某个解决方案,访问员也想知道那是一个明智的结论,而不是因为对OOP的无知。

当某人不了解某事时,合理化是一种非常常见的防御机制。如果人们不理解一个概念,他们会认为这个概念是愚蠢的或不适用的,而不是承认自己的无知。即使您真的认为OOP是答案的错误选择,您仍然必须与合理化者区分开。要做到这一点的方法是解释了OOP的解决方案为什么你认为这是在这种情况下一个糟糕的选择。


1
+1表示风格问题,更多关于环境适应性。。。
怀亚特·巴内特

3

我要强调的是,您遵循SOLID原则,这是OOP等。它不仅可以确保您的代码是面向对象的,而且可以确保按照SOLID原理替换对象是一种相对简单的任务。它不仅会发送您了解OOP的消息,而且还表明您了解一些精妙的地方,这些区别使优秀的OOP代码与曾经使用C编程并认为所有其他语言都应该在其中编程的人编写的复杂的OOP代码区分开来。坦白说,以同样的方式,这就是使您成为一名优秀的程序员的原因,而不仅仅是能够使用OOP。

准备为这五个原则中的每一个彻底解释为什么每个要素都很重要,而忽略该原则的代码可能会发生什么。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.