对于高级开发人员来说,这些技术详细面试问题有什么意义?[关闭]


10

我参加了一次内部晋升面试,以获取更高级别的程序员头衔,例如Senior plus。我曾经接受过大约7位使用不同技术的人的采访,而与我使用同一技术的人(.Net)往往会提出非常详细的技术问题,实际上可以通过Google轻松找到,例如什么是JIT,GC如何工作,列表和数组之间的区别,抽象类和接口,委托和事件,甚至在处理上载文件时的类名是什么,等等。我只问了一个关于我的项目设计思想的问题,简单的讨论。但是对于其他大多数我的设计选择,他们似乎并不感兴趣。

我尚未得到结果,大约要在本周下旬,但这是我的担忧:

我个人认为,当我担任高级程序员时,我主要是解决问题,我只需要知道有一些特定的方法可以实现它,但是我可能不记得每一个详细的内容,所以这就是为什么我们需要这些详细的参考资料像MSDN这样的文档。

如果您发现我在这方面没有太多经验,例如初级到中级,那么我感觉很好,但是当您倾向于面试更高层次的人时,您是否应该更加集中精力看看这个人的逻辑思维方式和良好程度他/她正在解决问题吗?每个人都只是想想,如果您知道所有详细的小知识点技术知识,那么您是Senior +。通过查看这些面试问题书,我发现还有更多这类问题。

如果我花5天时间浏览那些面试问题清单书,我可以轻松地使那些家伙感到惊讶,但这真的意味着什么吗?这种面试可以轻松地使那些擅长记住事情的家伙获得更高的薪水,即使他们不知道如何解决难题。

那么,为什么这在世界范围内发生,是因为仅仅导致解决问题的能力,设计能力难以衡量?我已经为这家公司服务了多年,并且几乎没有接受其他公司的采访,所以我想知道每个公司都在做同样的事情吗?

还是这实际上只是我自己的问题,我应该在脑海中更加努力地记住MSDN中的所有内容,以便即使没有Internet也可以工作。

编辑

为了更好地说明我有关弗兰克对工作任务的关注的情况。抱歉,我没有弄清楚这些背景。

实际上,工作的任务并没有特别的改变,我个人认为我已经担任大四的工作,例如代码审查,导师成员,审查BA的文档并提供技术意见,新项目的设计架构,这只是我的头衔。留在没有大四学生的情况下,我要求找人来反映工资单并进行这样的采访。这是一家Saas公司,因此只要该产品仍然存在,人们就可以留在一个项目中,这导致他们需要人们能够根据当前产品设计更多新功能,在实时服务器上解决技术难题,设计/代码审查/指导。成员基于技术的较高职称的是Architect,我们没有与Technical Expert相似的工作。我同意,如果您想扮演技术专家的角色,则应该了解有关所使用技术的更多详细信息。抱歉,我没有弄清楚这些背景。


8
总的来说,我的观点是,就高级职位提出的琐事或技术细节问题对面试过程乃至整个小组都是一个危险信号。我想说,如果您正在寻找内部晋升的话,这是双重事实。并非所有公司都是这样-我会找到不是这样的公司。
Erik Dietrich 2013年

感谢您的宝贵意见Erik,是的,我想是时候应该仔细考虑未来了
Simon Wang

Answers:


15

作为一名高级工程师和一个雇用工程师的人,听起来面试过程错过了一大堆概念性信息。

我希望我的高级工程师能够可视化最终结果,选择正确的技术,设计正确的数据库和流程,并能够在需要时将细节委托给其他工程师。Google始终站在他们的身边,因此我将重点放在他们提供结果的能力上,而不是他们将SD卡插入耳中的大小。(大声笑)。

希望一切顺利。


对不起,我很晚才答复,很高兴看起来我不是遇到问题的人。
Simon Wang

10

尚不确定您的情况下,高级+的任务将涉及什么。始终牢记,重要的是要知道工作的任务而不是职位的名称。在职位上拥有高级职位可能会对您的财务业绩产生影响,但这丝毫不会告诉您您在工作中实际从事的工作。但是,有两种不同类型的高级“开发人员”。

系统架构师

如果您接受过这样的职位面试,那么确实有些不对劲。我同意gahooa的观点,即这样的面试应着眼于候选人的全局思维,而这似乎是您所缺少的。

但是,对此也有一种邪恶的观点:在日常工作中,您总是会被这些小细节所淹没,尽管有这些小小的干扰,您也有责任保持全局。如果您想测试应聘者是否能够在小细节上不会迷失自己,那么一种方法可能就是设法让他/她沉迷于这些细节中。如果您没有提醒他们,设想的体系结构位置只是全局,那么您可能刚刚通过了该测试。尽管我对此表示怀疑,但这种面试肯定不是友好的事情。

技术专家

在这种情况下,您可能无法太大地影响整个系统的体系结构和公司的发展方向。相反,您将专注于设计级别。请注意,您作为示例提出的所有问题都完全适合此类别。我确实期望从负责SW设计的高级开发人员了解内外JIT,GC,数据结构等知识,而无需查找最复杂的细节。如果您应该进行软件设计,但不知道数组和列表之间的区别,那么您的位置就错了。

通过阅读您的问题,我怀疑您的职位(当前和建议的职位)专注于软件设计。在这种情况下,您可能需要重新考虑您实际上应该知道/记住的内容以及不知道的内容。鉴于您每天都在处理这些问题,因此几乎不需要查找任何内容来回答诸如此类的基本问题。


附带说明:我的前任教授很有趣的习惯是,在高级课程的口试中询问有关基础科目的问题。尽管这些科目从未在高级课程中明确涵盖,但应该让学生从基础教育中学到它们。在面试中,我也坚持这种行为,因为在过去的几年中,我一遍又一遍地目睹了“先进”事物的学生/候选人如何严重缺乏基础。有了这样的推理,我就毫不犹豫地问一个高级职位的候选人,听众的模式是什么,或者将听众保持在数组,列表和集合中的利弊。


首先感谢您的协助。实际上,工作的任务并没有特别的变化,我个人认为我已经担任大四的工作,例如代码审查,指导成员,审查BA的文档并提供技术意见,新项目的设计架构,这只是我的头衔。留在没有大四学生的情况下,我要求找人来反映工资单并进行这样的采访。我的目标绝对是成为一名系统架构师,因为在这样的Saas公司中,他们需要系统架构师,但不需要技术专家
Simon Wang

3

抱歉,我不认为您所提出的问题是琐事,应在需要时进行谷歌搜索。处理上载文件时,对于类名可能是这样,但是:

  • 什么是JIT:这是基本的技术问题。高级程序员肯定应该至少知道这意味着什么。例如,这会影响不同VM和运行时的性能,因此在评估新技术时至少应考虑这一点。
  • GC的工作原理:与上述类似。GC的算法非常简单,并且至少应该熟悉世代GC与标记和清除,与参考计数以及各种折衷之间的关系
  • List和Array之间的区别:这是我希望初级程序员知道的一个基本问题
  • 抽象类和接口:与上面相同。我不了解如何至少不了解接口才能构建一个复杂的系统
  • 委托和事件:同样,要设计一个强大而灵活的系统,事件委托是基本模式之一。

在我看来,他们在提出与高级程序员相关的概念性问题方面做得很好,而不会迷失在琐事上。


+1-OP所遇到的问题是非常“不确定”的问题。它们是相当高的级别,可以被认为是必要的,以便正确地设计系统。但这只有在健壮性,可维护性和响应性是所设计和构建的应用程序的关注点的情况下。
Dunk

因此,仅基于回答的问题,您如何才能确定应聘者是大四,中级甚至是初中,因为他/她可能只是缺乏技能,但是擅长记忆事物,并读了一本书.NET面试问题清单,您可以在其中确定那些问题的设计能力,解决问题的能力?
Simon Wang

这些不是记忆问题。我可以从一个知道他在说什么的人那里识别出正在谈论的一个人,比如说从内存中收集垃圾。现在,我可能同意一个人可能想问一些有关设计的问题(但事件委托不是朝那个方向发展吗?),但这并不是在此处列出的问题上表现不佳的借口。
安德里亚(Andrea)

好吧,我知道了,谢谢,顺便说一句,我认为我在这些事情上的表现并不差,但关注这样做的目的是什么,特别是这是一次内部晋升面试,我的意思是我看不出这次面试与加入公司后,我对这里的职业生涯感到失望
Simon Wang

如果我误解了你的问题,我很抱歉。这里有很多人提出类似的问题,如果他们在面试中表现不佳,本质上是要获得支持。如果您的意思是您知道如何回答这些问题,但是宁愿被问到关于软件设计的更复杂的问题,我只能说这些问题不像其他人在面试中所问的那样糟糕和易记。当然可以做得更好,但是它们是合理的。
Andrea
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.