面试时你应该问的问题

2025-06-04

面试时你应该问的问题

🔄 软件工程师的反向面试问题

作为一名软件工程师,你的职业生涯中会经历多次面试。这些面试通常由潜在雇主安排,以评估你是否适合该职位的文化和技术背景
。 从求职者的角度来看,面试过程不应该仅仅是为了说服雇主。这当然很重要,但除非你急需一份工作,否则这不应该成为你的首要考虑。相反,你应该主要了解公司的运作方式、你未来的队友如何运作、你的发展前景如何等等。 换句话说,你应该努力收集必要的信息,以便评估工作场所、其技术以及其中的人员的技术和文化背景是否适合你。

正因如此,我创建了一套反向面试题。
它专为产品公司量身定制,但应根据具体情况和常识进行调整。不要盲目地照搬,不顾谈话的进展,那样只会尴尬。
通常,面试官会问你还有什么问题。这是你提出问题的机会,可以参考之前讨论过的内容。无需全部提问,也无需按特定顺序提问。背景很重要!
大多数(如果不是全部)问题都是开放式的,没有“正确”答案。更准确地说,由你来判断答案是否令你满意。这些答案也最好针对参与开发的个人。不要向人力资源代表或招聘人员提问。此外,一些每次面试都应该涉及的话题,例如福利待遇、工作时间、薪资等,都不在面试题的范围内。

总体而言,个人经验表明,这些问题能让面试官更深入地阐述他们的工作方式和工作内容。到目前为止,这些问题受到了热烈欢迎,甚至帮助面试官留下了良好的印象。至少可以说,这些问题表明应聘者对整个面试过程非常感兴趣,并且认真参与其中。
更重要的是,这些问题能帮助你,作为一名软件工程师,做出明智的职业决策。

👩‍💻 技术栈 👨‍💻

问题) 评论
您的技术栈是什么样的? 除非已经提到,否则不要忘记询问编程语言、目标操作系统、构建系统或框架、持续集成和版本控制软件。

⚙️ 工作方式 ⚙️

问题) 评论
在团队成员开始执行一项任务之前,进行了哪些准备工作,之后又会发生什么? 任务是否记录在某个工具中?由谁来编写?这些任务是否源自一组特定的需求?谁来维护这些需求?如何确保可追溯性?代码如何进行同行评审?
您是否有针对操作系统、IDE 等的特定工作站设置? 在某些项目中,由于公司指南或产品领域的限制,会有一个定义非常明确的工具集。其他项目则允许开发人员自由选择自己的工具集。后者并不总是更好的选择,因为建立高效的工作流程可能更加棘手。
您的开发环境和/或产品是否使用任何容器? 使用容器可以更轻松地获取所有必要的依赖项,但灵活性可能较差。
你们进行结对编程吗? 有些人喜欢结对编程,有些人不喜欢。无论如何,提前了解一下总是好的。
您如何确保知识共享? 知识共享很重要,并且有不同的方法可以实现,可能适合也可能不适合你。
通常是否有特定于个人的任务,或者所有任务都可以由任何人承担? 对我来说,这是最重要的问题之一。我强烈希望团队中每个人都能承担任何任务。然而,其他人则喜欢深入研究,专注于特定的子领域。
您如何编写文档? 他们是否维护单独的文档,它是否包含在代码中,或者所有内容都是自文档化的,因此不需要额外的文档?
您如何处理错误? 发现 bug 后会发生什么?通常由谁来报告?bug 的出现会如何影响他们的计划?
您如何与其他网站合作? 与世界各地的同事一起工作通常很有趣,然而这也伴随着一系列挑战。
在开发一个功能时,团队是否能够完整地完成它? 这将为您提供有关您将要使用的系统的规模以及团队的责任范围的垂直程度的提示。

🚅 敏捷 🚅

问题) 评论
您是否遵循任何开发方法,例如敏捷开发?如果是,具体是怎样的? 是否有每日站立会议、回顾会议等?
任务怎么写? 它们是否被表述为用户故事?是否经过估算?
如何发布软件? 发布频率是多少?它们会自动构建和部署吗?

🚀 开源 🚀

问题) 评论
您是否在使用开源软件?如果是,具体是怎样的? 他们能说出一些他们经常使用的开源软件包吗?他们会上传任何变更吗?与开源软件合作可以成为宝贵的经验,可以带到下一份工作中,而且上传的变更也提供了很好的可视性。另一方面,也可能会有很多“该做”和“不该做”的事情,这可能会让你的工作变得困难。

🧑‍🤝‍🧑 与客户的关系🧑‍🤝‍🧑

问题) 评论
您如何与客户合作? 不同项目,甚至同一项目的不同团队,与客户的依赖关系、沟通和协作都可能有所不同。有些人喜欢与客户紧密合作,而另一些人则更喜欢独立工作。
客户交货通常顺利吗? 交付软件可能需要与客户密切合作,以便集成新软件。有些人擅长这种情况,并将其视为更好地了解客户需求的机会。而另一些人则试图回避这种情况。

🐜 测试 🐜

问题) 评论
你如何测试你的代码? 测试和验证可能在不同的层面进行。从单元测试、集成测试到手动验证,再到在硬件或软件的循环测试中尝试。
您使用什么测试框架? 并非所有框架对每个人都有相同的吸引力。如果你事先知道这一点,那就更好了。
您对测试驱动开发有何看法? 他们使用 TDD 吗?如果没有,为什么?

🤵 职业道路 🤵

问题) 评论
您认为我会喜欢这份工作的哪些方面? 这是一个很好的指标,表明他们对您的个人目标和风格的了解程度以及他们所提供的激励措施。
您认为 5 年后我会在哪里? 面试官经常会问你这个问题。反过来思考这个问题,你就能对现有的职业发展路径有所了解。
该分支机构/部门/团队的员工晋升至更高组织层级的情况有多普遍? 高层领导的背景和你不一样吗?你的忠诚有可能带来回报吗?

📚 自我发展 📚

问题) 评论
您的员工多久参加一次会议、课程、研讨会或黑客马拉松? 所有公司都声称自己关心员工的个人发展。然而,很少有公司能提供具体的例子来说明他们是如何做到的。并非所有活动都能让所有工程师满意,因此,获取这方面的反馈至关重要。

🤝 与第三方合作 🤝

问题) 评论
你们与外部供应商合作吗?如果是,具体是如何合作的? 与外部供应商合作既充满乐趣,又充满挑战。如果你能了解这种协同效应是如何运作的,那就太好了。
您是否与学术界合作?如果有,是如何合作的?如果没有,您愿意接受吗? 参与研究项目可能很有趣,也很有收获。然而,它可能会占用你一部分时间,而且并非每个人都喜欢。

💡创新💡

问题) 评论
谁提出了新颖的功能以及如何提出新颖的功能? 新功能的开发责任在客户还是公司高层?是否有一个“高级工程”团队负责这项工作?员工自己会经常提出新颖的产品功能吗?还是只有实习生才能尝试这些有趣的功能?
在这个分支中,您主要使用哪种功能?
  • 商品功能包括客户通常期望产品或系统具有的所有功能,但竞争公司也提供这些功能。
  • 差异化功能包含使客户选择我们的产品或系统而不是竞争对手的产品或系统的功能。
  • 创新功能是一种实验功能。公司会尝试不同的创新理念,以发现新的未来差异化。
Jan Bosch 的 3LPM 具有这三种功能。[1][2]

3LPM 扬·博世
文章来源:https://dev.to/platisd/questions-you-should-ask-when-being-interviewed-57de
PREV
理解 TypeScript 中的泛型
NEXT
如何使用 Socket.io 通过 NodeJS 和 ReactJS 制作实时 API