如何准备软件开发人员面试

2020年12月30日10:48:31 发表评论 53 次浏览

本文概述

在上一篇文章中, 我分享了我的想法如何作为软件开发人员接受面试。本周, 我将分享我对如何为面试做好准备的想法。

众所周知, 技术面试令人不安且难以预测。但是你可以采取一些步骤来减轻许多这种感觉。

面试过程的各个阶段

大多数软件开发访谈都具有类似的结构-就像这些访谈的现代基础一样。

你通常会在面试过程中找到以下几个阶段:

  • 手机屏幕
  • 技术电话面试
  • 现场

让我们更深入地研究其中的每一个。

我应该期待什么问题?

科技行业的访谈远非统一, 但我喜欢将其视为积极的事情。这使事情变得有趣, 并且可以让你每次以新的方式展示自己的技能。

其中包括你最有可能在面试中问到的问题, 但请不要担心。有许多常见问题可以帮助你为重要的一天做好准备。

在我看来, 这些问题可以分为两类, 即公司特定问题和情境(假设)问题。

公司特定的问题

根据你面试的公司的规模和类型, 他们面试的方式可能会有所不同。我建议你使用诸如盲or玻璃门深入了解公司特定的采访主题和问题。

举个例子, 采访专家们写了一篇很棒的文章讨论了亚马逊最重要的面试问题。

如果你花一点时间在网上搜索, 你应该能够找到某些公司传统上会问的问题。这将使你有所准备。

情境(假设)问题

你可以期望这些问题与你的工作风格, 近期成就和技术能力有关。你可能会被问到以下几个主题:

  • 告诉我有关你必须处理棘手的错误的时间。你怎么修好它的?结果是什么?
  • 你是喜欢与他人合作(配对)还是自己工作?
  • 你喜欢使用哪种编程语言?
  • 你最常使用该语言的哪些新功能, 为什么?
  • 描述你的团队在项目中的典型工作流程。你喜欢它什么?你对此不满意吗?

记住, 要保持积极向上。尽管面试官对你的回答真正感兴趣, 但他们也在寻找你可能会给当前团队带来负面影响或困难的迹象。

尽量避免谈论过去使用过的特定技术。相反, 以积极的方式回应你的问题。

例如, 不用说"我不喜欢在JavaScript中使用扩展运算符, 这太令人困惑", 而是可以说:"我知道扩展运算符是JavaScript的较新功能, 我希望了解更多有关它的信息, 如何在我的代码中有效地使用它。"

现在, 你已经对什么是常见问题以及要在回答中包含哪些要素有了一个很好的了解, 让我们深入访谈过程中的每个步骤。第一步是手机屏幕。

首先, "告诉我你自己"

在你申请并且公司对你感兴趣之后, 第一步通常是安排电话面试。通常, 这是与HR成员进行的轻松对话。

你可以期望他们首先询问你的工作经历, 接下来的工作, 最重要的是, 为什么要申请他们的公司职位。

仅因为这通常是更轻松面试过程的其他阶段并不意味着你不应该为此做准备。要准备的几个问题是:

告诉我一些关于你自己的事

这是提供"电梯音高"的好时机。这很可能是你被问到的第一个问题, 通常会成为面试其余部分的基调。

如果你倾向于快速说话, 请先深呼吸, 然后再回答, 并尝试缓慢而清晰地说话。你想在回应中提及的几项是:

  • 你与公司分享的精神或兴趣
  • 什么激动你关于软件开发
  • 该公司(希望)可以帮助实现(即技术和专业发展)的未来目标

你最近为之感到骄傲的一个项目是什么?

像大多数这些问题一样, 面试官不仅对你的技术成就感到好奇。他们也在寻找可以传达你良好沟通, 可靠并与团队其他成员相处融洽的线索。

尽量保持热情并充分回答问题, 而又不要过多地讨论。回答这些类型问题的有效框架是:

  • 快速概述项目是什么以及解决的问题
  • 提及你在本项目中使用的技术
  • 交流任何显示出任何积极影响的指标(例如节省时间的指标, 开源贡献者, 活跃用户数)

你为什么要离开当前的公司?

这可能是要回答的棘手问题之一。确保在面试之前准备好关于这个问题的可靠答案, 因为它可以很快地向候选人介绍很多情况。

这是你应该注意的几件事避免在回答这个问题时:

  • 是负面的。将任何潜在的负面因素变成积极因素。例如, 可以说"我对在这里所做的工作感到无聊和不满意", 就像"我正在寻找一个新的挑战, 以培养我作为开发者和个人的成长"。
  • 谈论当前的同事或经理–不要让他们参与讨论
  • 讨论薪酬和福利

我认为你可以给这个问题最好的答案之一就是诚实–你正在寻找新的东西。这是一个完全合理的答案!

我可能会在响应中添加的唯一内容是你对新挑战, 对公司的热情或你知道该公司使用的技术的兴趣。

如何为技术电话面试做准备

好的, 你热情, 风度翩翩, 为电话采访做好了充分的准备。此过程的下一步通常是技术电话面试.

在进行技术电话面试之前, 请务必确保你知道将使用哪种编程语言。

我应该使用哪种编程语言?

在开始准备面试过程的其他步骤之前, 最好对面试中将使用的编程语言有所了解。

关于这个问题, 我有一些非常简单的建议:拥抱自己喜欢的东西, 并坚持自己所知道的。

想要在我们的领域中使用(或学习)多种语言是很普遍的。但是, 在准备面试时, 最好坚持一次。

这将帮助你将重点从担心使用哪种语言转变为考虑使用最适合的语言解决的问题。

一旦知道了将使用哪种编程语言, 就可以应对挑战了。技术电话面试。

在典型的技术电话面试中, 你将与要加入的团队的高级成员或该团队的经理进行对话。你可以期望此对话中的很多内容集中在两件事上:

  • 你当前职位上遇到的最近问题以及为这些问题实施的解决方案, 以及
  • 基本的语言熟悉程度(例如, 何时要使用数组而不是哈希表(对象)?)

为了帮助准备这次面试, 我建议你开始写下这些问题的答案。

我个人使用了包含3列的Excel或Google表格文档:问题, 答案和笔记。你会发现, 写下答案的动作将帮助你得出简洁而有影响力的答案。

在线上有很多资源列出了常见的面试问题, 例如前端, 后端, 要么全栈角色。

这似乎是很多前期工作, 但请相信我-花时间准备好你的想法并将其转换为笔和纸, 将真正帮助你在心理上充实自己的答案。

好的, 你已经花了很多时间进行准备, 并且给你的面试官留下了深刻的印象!你可以期望的下一步是"现场"采访。

什么是现场采访?

面试过程的最后阶段通常称为现场。这通常是表现最深刻和最重要的。

公司希望得到一个好的答案的主要问题之一是, 这个人如何工作?这个问题的答案通常也会在个人, 技术和专业等多个层面得到回应。

公司通过给应聘者进行各种技术和人际交往的练习, 以评估你的技能以及你在公司中的适应程度, 从而寻求答案。

根据公司的不同, 这次采访可能包括各种要素, 但最常见的是:

  • 配对编程
  • 带回家的作业
  • 白板

配对编程会话期间的Excel

评估技能的最常见方法之一是将程序与可能与之合作的团队成员配对。

该课程通常需要20到30分钟, 而给你的问题通常是你在公司工作中会看到的问题。

如果你进行这样的会话, 请记住以下几点:

  • 尽量保持冷静, 并记住你在这里面试是有原因的, 他们喜欢你, 看到你的希望。
  • 即使你认为自己说话太多, 也要尽可能大声交流。在这些练习中过度交流比静静地敲打键盘要好。
  • 不要害怕问问题, 它们在你的身边!采访者可能在与其他开发人员合作时故意遗漏了一些重要细节, 目的是测试你的沟通技巧。

最终, 请尝试并意识到该公司在你的个人和技术层面上看到了你的希望。做你自己, 并自信!

如果公司的流程中没有配对编程练习, 那么另一个常见的练习是为你提供一个项目或一系列问题来自行解决。

粉碎你的实地任务

如果公司希望通过个人工作方式来衡量你的工作, 他们可能会要求你完成实地任务。

这些范围可以从完成定时练习到黑客排名用面试官本人的书面指示完成一个小项目。

无论采取哪种形式的外派任务, 我都应该记住一些事情, 以增加成功的机会:

  • 确保你在整个分配时间内都处于无干扰的区域
  • 放开所有容易分心的设备
  • 读所有有关问题的说明, 然后再次阅读

如果你的作业是定时的, 并且你认为没有足够的时间完成作业, 请在作业中写下评论, 如果有更多的时间, 下一步将是什么。

老实说, 许多此类任务要比计划的时间更长的时间才能完成。

面试官始终主要关注你通信, 而不是你可以最快地编写代码或解决你看到的每种算法。

征服白板练习

有时, 公司希望以更抽象的方式查看你的技术技能和解决复杂问题的能力。以这种方式测试候选人的最常见方法是让他们完成白板练习。

这种面试方法可能是最受关注和最担心的。如果要求你使用白板来解决问题, 请记住以下几点:他们(通常)对怎么样你传达的是解决问题的过程, 而不是你可以解决问题。

如果他们给你的问题似乎真的很难, 那不是因为他们试图让你难过。他们想了解你如何解决难题。如果你最终没有解决问题, 那并不意味着你就错失良机。

如果你在本练习中牢记这些内容, 将会增加打动面试官的机会:

  • 将问题重复给面试官
  • 提出有关边缘案例的澄清问题
  • 确认问题的最佳结果
  • 清晰地编写代码
  • 交流你迈出的每一步

如果你在会议结束时成功回答了问题, 请询问面试官这是否是他们通常获得的解决方案。如果没有, 请问其他候选人做了什么, 或者你可以做不同的事情。这表明你充满敬业和好奇心。

如果你未能成功回答问题, 请在代码中写注释, 以了解如果有更多时间可以在哪里继续找到解决方案。同样, 这些会议中的许多会议都不只是着眼于"正确"的答案, 而是要更好地了解如何解决新问题。

练习面试, 没有压力

正如我之前提到的, 面试很难, 而且可能很难准备。但是, 我坚信, 确保获得更大成功机会的最佳方法是练习, 练习和练习。

你是否曾经在朋友或家人面前为学校做过大型演讲?你可能仍然很紧张, 但是确实可以使你对自己的话题说话感到更加自在。

面试也是一种演示, 练习的概念同样重要。在2020年世界中, 大多数采访都是远程完成的, 这使进行模拟采访的感觉更加真实真实.

如果你认识当前在软件行业的人, 我会问他们是否愿意花一个小时左右的时间与你进行这些模拟采访。如果他们目前以与你面试的相似角色工作, 那就更好了!

其他一些选择是普拉姆和代码面试。这些站点使你可以安排面试, 并选择主要重点(主题), 语言和专业领域(前端, 后端等)。

这些平台还为你提供了更大的灵活性, 因此你不必担心与自己认识的人安排时间的问题。

面试令人不安, 但我相信随着你完成更多面试, 你的自信心和舒适度将会提高。

我应该在前一天补习吗?

随着时间的流逝, 你会感到更加自信。你对准备工作感到厌倦, 但很高兴向该公司展示你的产品。终于是面试的前一天–最佳利用时间是什么?

候选人可能会吸引很多人Leetcode前一天的问题或白板问题。但我相信你可以为自己做的最好的事情就是休息.

庆祝你的成就, 获得采访是不一个简单的任务。对自己好一点。放松并度过一天, 进行任何能带来欢乐的活动, 并(理想情况下)使你放松。

这听起来似乎违反直觉, 但我认为这是你最好的选择。在面试时, 你将需要大脑才能很好地工作。因此, 恰好需要它在前一天休息。

综上所述

如果你因为准备开始面试而正在阅读本文, 那么恭喜!我希望我的见解能在你度过重要的一天时为你的准备和顶空提供帮助。

最终, 记得深呼吸, 放松并对自己充满信心。与你面谈的任何人都会看到你的技能有前途。你明白了!

一盏木

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: