2024 年技术面试必知:终极指南 🚀
1. 申请工作
2.1 筛选电话(第一次面试)
2.2. 可选:人力资源面试
3.技术面试
4. 可选:招聘经理面试
5. 文化契合面试
6. 报价谈判
如果你不知道规则,你能赢得比赛吗?
可能不是。
可悲的是,当今大多数软件开发人员都在尝试这样做。
裁员、经济衰退和通货膨胀迫使许多工程师重新回到技术面试游戏。
他们别无选择,只能参加比赛。
但大多数人甚至不知道它的规则。
当他们被拒绝和忽视时,他们知道自己失败了。但他们不明白为什么会失败。
或者说要怎样才能获胜。
我所说的成功是指获得自开始编写代码以来一直寻找的高薪开发工作。
我的意思是不再担心抵押贷款了。
或者孩子们的学费。
与此同时,获得开发人员的工作也变得更加困难。
裁员、经济衰退、远程办公和人工智能已经将就业市场的主导权从开发者手中转移到了公司手中。只需掌握一点 React 就能找到工作的时代已经一去不复返了。
现在,每个开发人员职位都有数百甚至数千名候选人在等待。
你别无选择,只能脱颖而出。
而且你必须非常有效地进行技术面试,因为容错率很低。机会越来越少,你最好抓住眼前的机会。
如果您正在寻找或计划很快寻找开发人员的工作,请继续阅读。
今天,我们将剖析技术面试流程。
你将了解哪些错误需要避免,从而最大程度地减少被拒。以及如何在技术面试的每个阶段取得成功。
因此,您得到了梦寐以求的高薪开发工作。
出发啦!🚀
我们先来看一下典型的技术面试流程。当然,不同的公司有不同的流程,但大多数情况下,流程大致如下:
让我们从第一步开始。
首先要进行技术面试……
1. 申请工作
面试过程并非在你接到招聘人员电话时开始。它始于你申请工作的那一刻,或有人看到你的简历或领英个人资料的那一刻。
简历给人的第一印象不仅会决定您是否能进入技术面试。
还要考虑面试通过后会收到什么样的 offer。即使通过了,你还需要经历多少场技术面试才能拿到 offer。
你的简历中的危险信号越多,就需要越多的面试来确保你适合这份工作。
除此之外,开发者就业市场目前人才过剩。这都归咎于裁员、经济衰退和经济状况。
但竞争非常激烈。
你必须尽一切可能才能脱颖而出。
最近有几十个开发人员打电话告诉我,他们甚至连面试邀请都拿不到。我总是告诉他们,问题可能出在他们的简历或领英个人资料上。
打造一份出色的简历不是本文的重点,但我会给你一些提示。
你可以在简历里稍微夸张一点。市场竞争激烈,你必须脱颖而出。但别像他一样。
浅薄的工作经验,只谈论技术技能,而不强调你对公司目标的影响,会让你被拒绝。
就业空白期会让你被拒绝。
那些让你看起来像初级员工的副业项目或工作经历会让你遭到拒绝。
华丽的格式、炫酷的设计,或者毫无专业素养的流行语,也会让你被拒。ChatGPT 撰写的简历,如果段落冗长,却毫无意义,也会让你被拒。
好消息是,如果你远离常见的“危险信号”,并申请与你的简历相匹配的工作,那么大部分情况下你都会做得很好。
如果您想了解有关如何构建一流开发人员简历的更多信息,请观看此 YouTube 视频,我将在其中更深入地介绍所有内容。
关于您的 LinkedIn 个人资料,它应该主要从您的简历中复制粘贴,并进行一些额外的调整(技能、认可和推荐)。
目前,我假设您拥有一流的简历和 LinkedIn 个人资料,因此一些公司已经联系您并愿意继续合作。
🚨附言:您是否希望快速晋升至高级职位,获得优质资源、反馈和问责机制?点击此处加入我们的免费社区——高级开发学院。🚨
2.1 筛选电话(第一次面试)
这时,公司的招聘人员会打电话给你。他们会问你一些关于你本人和简历的常规问题。
根据您的回答,您是否会进入技术面试。
大多数开发人员没有意识到的是,在筛选过程中,招聘人员并不会寻找让你继续前进的理由。
他们正在寻找不给你技术面试的理由。
筛选电话是一个取消资格的过程。
我敢打赌,大多数招聘人员都没那么坏。他们只是在做自己的工作。给他们一份他们真正会保留的简历就好。
如果你听起来不太合适,招聘人员会很快结束通话,然后继续寻找下一位候选人。他们还有数百名候选人在等着你。
从公司的角度来看待这个问题。如果你不适合,那为什么要浪费宝贵的时间,让他们把时间投资在其他候选人身上呢?
一家知名初创公司的招聘统计数据。看看大多数开发人员甚至连第一次面试的机会都没有。即便有机会,也很少有人能进入技术面试。
所以,如果你正确地完成了第一步,并且你的简历和领英信息都足够好,你就不用太担心。你只需要一个扎实的故事来支撑它。
为你的简历准备一个精彩的故事
这里的第二个技巧是准备并写下最常见的筛选电话问题。
不要指望即兴发挥,也不要照本宣科。通话过程中你越是即兴发挥,搞砸的可能性就越大。
“介绍一下你自己”是筛选电话和初次面试中最常被问到的问题之一。一定要做好准备。
记住,招聘人员不是想找个理由让你晋升,而是想找个理由不让你晋升。别给他们理由。
为了帮助您,以下是您应该准备的 5 个最重要的问题:
- 告诉我一些关于你自己的事...
- 你的简历中为什么有空白期?
- 你为什么要辞去目前的工作?
- 您目前正在接受其他公司的面试吗?
- 您的薪资期望是多少?
在第一次面试前,回答这些问题并写下来。你可以使用 ChatGPT,但我不推荐。对着镜子练习几次,直到答案自然流露出来。
说明你的薪资期望
在面试过程中,你需要准备的一个关键问题是薪资期望问题。这个问题通常会在面试结束时出现。
大多数开发人员要么在陈述自己的薪资范围时缺乏信心,要么过度贪婪,导致自己无法被录用。
充满信心地陈述您的范围。
但同时要保持开放的心态,看看他们能提供什么。
不知道该问哪个号码?可以先做些调查。
这里大多数开发商都压低价格。我认为一个合理的价格范围通常是比你认为应得的价格高出1万到2万,具体取决于你所在的市场。
另外,忽略关于不要先给出数字的旧建议。
大多数招聘人员都知道这个技巧,他们会一直催你,直到你给出一个数字。如果你不给,他们可能会结束面试,然后继续面试其他候选人。
大多数开发商不愿给出具体数字,是因为他们认为这会限制他们日后的谈判能力。但事实并非如此。
您可以给出一个数字,然后在进入报价阶段时继续进行谈判。
一旦公司意识到你适合这个职位,他们就会更愿意谈薪资。所以现在不要纠结于薪资数字。
给出一个给你和公司都留有谈判空间的范围。
🚨附言:您是否希望快速晋升至高级职位,获得优质资源、反馈和问责机制?点击此处加入我们的免费社区——高级开发学院。🚨
避免被忽视或被忽略
确保他们在面试后会回复您的最佳方法是在通话结束时检查他们的承诺。
当他们问你“你有什么问题吗?”时,回答“是”并询问他们什么时候会回复你。
如果他们说“本周末”或比接下来的3到4天更长的时间,那就是坏消息了。你可能需要仔细考虑一下这个过程。
这次通话很可能进行得不太顺利。
您仍然可以进一步探究。
只需说“太好了,你能在那之前回复我吗?”这样可以稍微激励一下他们,看看他们目前的状态。至于坚持到什么程度,就交给你自己决定了。
即使你逼迫他们,也要尽量让自己听起来愉快友好。这样可以化解任何误解。
重点是不要挂断电话并希望他们会回复你。
因为他们可能不会。
希望并非策略,而应该让他们做出承诺。
高级开发者提示:筛选电话中可能会出现技术问题。但这些问题通常比较复杂,或者与特定框架有关,所以不必太担心。你应该能够相对轻松地应对这些问题。
高级开发人员提示:如果您正在打电话,请检查您的语气、语调和发音。您需要听起来乐观向上、充满热情,成为他们乐于合作的开发人员。如果您今天过得很辛苦,请在通话前花两分钟给自己打气。听听您最喜欢的歌曲或深呼吸几次。这会对您大有裨益。
高级开发者提示:不同类型的招聘人员有不同的目标。优先考虑内部招聘人员,即那些为他们所招聘的公司工作的人员。外部招聘人员是希望为你找到工作的顾问。他们会把开发人员卖给出价最高的人。大多数时候,这些招聘人员只是在四处寻找没有明确发展机会的候选人。他们会浪费你的时间。
现在您已经通过了筛选电话,您可以继续进行面试的技术部分了……
2.2. 可选:人力资源面试
根据公司情况,在进入技术面试之前可能还需要一个额外的步骤。筛选电话之后的人力资源面试是可选的。
您可以将其视为更深入的筛选电话。
招聘经理或工程经理会试图钻研你的简历。做好被他们进一步深挖的准备吧。此外,还要准备好回答一些技术问题。
你可能会被问到关于你使用的框架及其工作原理的问题。比如,对于前端开发人员来说,可能会问“React Hooks 是如何工作的?”
或者,如果我们正在谈论高级开发人员面试,您可能会面临有关 Web 性能或微服务的问题。
再次强调,不要太担心,因为这里的技术问题会很高级,但要做好准备。
🚨附言:您是否希望快速晋升至高级职位,获得优质资源、反馈和问责机制?点击此处加入我们的免费社区——高级开发学院。🚨
3.技术面试
通过筛选后,接下来就是技术面试了。不同公司的流程可能有所不同,但基本步骤通常都相同。
这才是真正的战斗。虽然会很艰难,但并非不可能。
顺序可能有所不同,但主要的技术面试类型如下:
- 带回家的挑战
- 自动编码面试
- 现场编码面试
- 系统设计面试
让我们逐一了解一下……
3.1. 带回家的挑战
这是最常见的技术面试类型之一。面试官会向你发送一堆需求,并要求你构建一些东西来满足这些需求。
在前端,这通常是一个小型的单页应用程序。在后端,它可以是一个简单的 REST API。不同的公司有不同的流程。
您的家庭挑战的首要目标是在尽可能最短的时间内交付最高质量的成果。
这并不容易,因为您不想提供错误的代码。
但与此同时,你也不想在一家公司投入太多时间。
当你收到“带回家的挑战”时,不要像金·凯瑞 (Jim Carey) 那样立即开始编码。
因为无论你提出的家庭作业挑战有多好,都无法保证你能进入下一轮面试。力求在质量和速度之间取得完美的平衡。
遵循此清单,确保您能完成一项出色的家庭挑战并被邀请参加下一次面试。
3.1.1 在开始制定家庭挑战之前
a. 确保您完全理解要求。
如果你不明白他们的需求,就不要妄下结论,直接去实现它。停下来。
给招聘人员写封邮件,询问具体细节。这能体现出你在写代码之前会认真思考。
高级开发人员的特质。
提出一些澄清的问题,这样在发送代码后,你就不会听到诸如“哦,我们想要别的东西”这样的话。
b. 确保你有足够的时间来传递好的东西。
现实情况是,很多公司根本不尊重你的时间。他们会给你布置作业,然后要求你三天后才能拿到结果。
如果您受雇于其他公司或正在接受其他公司的面试(您应该这样做),如此紧迫的期限会给您带来压力并让您精疲力竭。
不要一开始就编码。要协商。
回答他们,你无法在这么短的时间内交付产品。给他们一个替代方案,并且在他们做出承诺之前不要开始编码。
3.1.2 制定家庭作业挑战
a. 策略性地利用样板代码。
不要吝惜使用预制仓库来提升速度。如果是 React 应用,可以使用 Create React App;如果是后端,则有大量现成的 Node.js API 可用。
请务必谨慎,不要选择复杂的样板代码,因为这些代码需要进行大量修改才能适应你的用例。这样你最终会比从头开始浪费更多时间。
b.使用 ChatGPT 和 GitHub Copilot。
有时直接将需求输入 ChatGPT 并给出一些指令就足够了。使用它会让你的速度更快。
3.1.3 制定家庭挑战后
检查你是否满足了家庭作业挑战中提到的所有基本要求。进行质量保证会议。
您可以使用以下清单:
1. README
1.1. 项目是否有清晰的 README?
1.2. 是否有清晰的运行说明?
1.3. 是否有进一步的改进(如果有更多时间,你会做什么?)
2. 测试
你应该在每个级别至少包含一个测试
2.1 单元测试
2.2 集成测试
2.3 可选:端到端测试
使用 ChatGPT 和 Copilot 可以更快地完成
3. 部署
将您的项目部署到像 Netlify 这样的免费提供商 - 您不仅会通过展示结果和检测可能的错误而脱颖而出。
4.性能
进行快速性能测试,以表明您不仅关心交付功能,更关心实际功能。4.1
在前端,使用类似 Lighthouse 的工具。4.2
在后端,您可以使用类似 ApacheBenchmark 的工具。
5.演示
不管你听到什么,开发人员不会为了读代码而撒谎。先展示最终结果来吸引他们的注意力。用 Loom 制作一个简短的视频,演示你所构建的内容。
5.2 解释其工作原理,展示主要功能,然后深入代码。尽量简洁,但尽可能多地展示代码。
可见,在短短10到15个小时里,要完成这么多工作,真是不容易。如果你是全职工作,时间可能就更少了。
尽管遇到了这么多麻烦,你可能仍然无法得到这份工作。
这就是为什么,不管你被告知了什么,从权力动态的角度来看,带回家的挑战对于开发人员来说是最糟糕的技术面试。
要了解如何避免公司在发送代码挑战后对您不理不睬,请继续阅读。
你是在免费工作,无法掌控结果,结果完全取决于公司。或者更糟的是,取决于运气。
🚨附言:您是否希望快速晋升至高级职位,获得优质资源、反馈和问责机制?点击此处加入我们的免费社区——高级开发学院。🚨
🎁 福利:管理你的期望
通过家庭挑战,您仍然可以完成所有正确的步骤,但仍然会失败。
这就是为什么你要尽可能快地完成尽可能多的挑战。这样你就不会把所有鸡蛋都放在一个篮子里。
遵循“拍摄后就忘记”的原则。一旦你发送了代码,就别想它了。申请工作,参加其他面试,然后开始忙碌起来。
🎁 福利:如何处理反馈
您可以提供人类已知的最干净的代码,但仍然会收到诸如“您错过了性能优化,并且没有添加 Redux 进行状态管理”之类的反馈。
事实上,需求中并没有提到 Redux,而您确实将其添加到 README 中的“如果我有更多时间要做的事情”列表中。
但他们没有看。
或者也许他们根本就不在乎。
他们只是需要提出“反馈”,以便他们可以在 Glassdoor 等网站上捍卫自己免受负面评论的影响……也许他们找到了更好的人,并试图摆脱你。
也许他们忘记了。
开发人员认为,因为他们花费了大量时间来构建某个东西,所以公司也会以同样的承诺来回报他们。
大多数情况下,随机开发人员会花几秒钟来检查您的代码。
如果他们看到某些不理解的东西或者觉得缺少了什么东西,他们会毫不犹豫地丢弃它。
因此,当你在完成家庭作业挑战后得到反馈时,你有两个选择:
-
忽略它并继续前进——这是保存精力的最好方法。
-
反驳——这很少奏效,因为公司很可能会更加坚持自己的决定。大多数情况下,这样做只会适得其反。
我的建议?
不要和他们争论,去下一家公司吧。人生苦短。
尽你所能,但如果事情不顺利,也要愿意放弃,去寻找下一个机会。
高级开发人员提示:在你承诺代码挑战之前,请要求他们进行评审。在开始工作之前,请他们做出承诺。如果你承诺交付,他们至少应该承诺进行公平的评审。
高级开发人员建议:面试时要保持坚忍不拔的心态。放下对结果的任何期望和执着。尽力而为,快速前进。有很多公司愿意聘请像你这样的优秀开发人员。
🎁 福利:关于“带回家挑战”的真相
由于上述原因,家庭作业挑战是您可以投入时间的最糟糕的面试之一。
我知道你可能觉得它们很棒,因为你讨厌实时编程。而且,你还可以舒舒服服地待在家里,按照自己的节奏进行编程。只需使用你自己的 VS Code 设置即可。
但是,另一方面,当你确实接受家庭挑战时,你就完全没有任何力量了。
你免费从事一个毫无进展的项目。
首先,你的代码会被审查,而你却无法解释你的选择。这非常不公平。例如,在工作中,这种情况很少发生。
最重要的是,无论你的家庭作业做得多么好,你都无法保证公司会给你答复,或者给你反馈。
这就是为什么在 theSeniorDev,我们建议我们指导的开发人员远离家庭作业挑战,并尽可能在现场编码面试中取得好成绩。
高级开发人员提示:根据你目前正在进行的面试数量,你可能根本不想做这个带回家的挑战。或者,你可能想和公司协商一个折衷方案。
高级开发者提示:如果你发送了一项带回家的挑战,但没有收到任何反馈,请务必在 3 到 4 天后跟进。发送一封简短的电子邮件询问最新进展。尽量简洁,不要拘泥于形式。你为这项挑战付出了很多努力,理应得到答复。
🚨附言:您是否希望快速晋升至高级职位,获得优质资源、反馈和问责机制?点击此处加入我们的免费社区——高级开发学院。🚨
3.2 自动编码面试
自动编码面试与现场编码面试非常相似。
不同之处在于没有人会关注你。你会被邀请到像 HackerRank 这样的平台,在那里你可以参与一个有时间限制的算法问题。
好消息是这些面试的压力较小,因为没有人在监视你。
坏消息是,时间还在流逝。大多数工具还会跟踪你的鼠标和桌面屏幕,并且不允许你复制粘贴。
那么,如何才能通过自动化编码面试呢?
在 Leetcode 上花费大量时间?
虽然这种方法有效,但通过反复尝试,至少需要6到12个月才能熟练掌握。大多数开发人员在找新工作时,都没有那么多时间。
那么,如何才能变得更好呢?
首先,要明白,无论是否自动化,现场编程面试都是一场概率游戏。关键不在于通过与否,而在于你距离答案有多近。
你永远不会通过每一次代码面试,如果你通过了,那是因为你在这些技能上投入过多而忽略了其他技能。
除此之外,我还认识一些 LeetCode 排名前 1% 的开发者,但他们仍然找不到工作。因为他们缺乏系统设计技能,或者无法有效地推销自己。
可悲的是,这是事实。无论你多么擅长解决 Algo 问题,你都无法获得这份工作。
作为一名高级开发人员,你应该争取通过大约 80% 的现场编码面试,而不要考虑剩下的 20%。
那么,你可以做些什么来更好地通过现场编码面试呢?
分步说明:
第一点:精通将现实生活中的逻辑问题分解成控制流结构(例如 for 和 while 循环)。你应该精通伪代码,并且打字速度至少达到每分钟 60 字。如果你还没有达到这个水平,那就现在开始吧。
第二点——掌握基本的算法模式。你应该理解递归以及如何进行递归思考。队列和堆栈的工作原理。以及如何将“while”和“for”循环转换为递归函数(以及如何进行双向转换,参见第一点)。
第三点——熟悉 Web API。我们在面试中经常会看到一些模式,比如如何使用 Promise 构造函数,了解定时器函数(setTimeout)的工作原理,以及它们如何与调用栈交互。此外,还要了解某些数组方法(map、reduce、forEach……你必须能够快速记住这些方法)。
高级开发者提示:你应该了解基本的排序算法,例如二分查找和频率排序。它们在任何算法面试中都会非常有用。
高级开发者提示:你应该能够盲打并以光速编写“for”和“while”循环。只是个玩笑,但这确实很有帮助。
🚨附言:您是否希望快速晋升至高级职位,获得优质资源、反馈和问责机制?点击此处加入我们的免费社区——高级开发学院。🚨
3.3 现场编程面试
这个与自动编码面试非常相似,不同之处在于,当你编码时,房间里会有人看着你并问你问题。
在实时编码过程中,大多数开发人员都会感到紧张并搞砸事情。
要想在现场编程面试中取得成功,关键在于转变思维方式。尽量保持与好友结对编程时相同的心态。
你们双方都尽可能保持冷静,合作,专注于解决问题并始终保持沟通。
现场编程面试的分步说明
1. 大声思考
明确你的意图。“如果我做对了,我会尝试这样解决。所以我要实现一个嵌套循环,看看能得到什么结果。”
做好应对态度轻蔑、消极被动、好胜和缺乏动力的面试者的准备。
不要让他们的情绪影响你的情绪。专注于眼前的问题,并始终保持专业。预料到事情会出错,但无论如何都要保持冷静。
第二点:绩效谈话
大 O 符号就派上用场了。无需成为专家,但能够估算递归调用或一对嵌套循环的性能。
高级开发者提示:慢慢来。不要急着写代码,也不要急于解决问题。深呼吸,让你的大脑一步步完成工作。
3.4 系统设计面试
系统设计面试是最难的面试之一,因为它不仅衡量你作为一名工程师的技术广度,还衡量你的技术深度。
但是,如果你没有 20 年编写代码的经验,你怎么能通过呢?
很简单,在家玩。
你将系统设计面试引导到你最熟悉的堆栈部分。这意味着你应该提出下一步的方案,并根据你所了解的内容进行调整。
与面试官合作,但要将讨论引向你能胜任的领域。
例如,如果您正在谈论微服务并且擅长数据库设计,请朝该方向发送提示“那么,您现在想更多地谈论数据库吗?”
这里最大的陷阱是:
1. 无话可说
2. 被动,只回答问题,不提问
如果您专注于手头的问题并尝试将其与您尽可能了解的知识联系起来,而不是假装您知道您不知道的事情,那么您就可以处理这两个问题。
3.4.1 后端系统设计
在后端,它很可能从基础知识开始,这些基础知识可能是 REST API。然后,您将转到身份验证和微服务。
然后,根据你的学习深度,你将学习负载均衡、缓存、自动扩展和服务发现等主题。在这里,他们会评估你的高级程度。
这里,始终考虑完整的软件生命周期非常重要。这意味着部署、日志记录和监控。
提到 SLA 和 SLI 之类的开发者肯定会在这里脱颖而出。这很深奥。如果你想让我写一篇关于这个的完整文章,请在评论区留言。
3.4.2 前端系统设计
在前端,系统设计面试很可能会集中在复杂的 UI 上。
就像社交媒体新闻推送(例如:建立 Instagram 新闻推送)。
或者具有客户端验证的复杂表单。
这里的关键在于能够将复杂的需求分解成 UI(线框图),并理解常见的 UI/UX 模式,例如分页或无限滚动。大型应用程序中的状态管理或客户端路由的工作原理等主题也会很有用。
高级工程师和中级/初级工程师之间最大的区别在于可扩展性和 Web 性能讨论。
高级开发人员将能够深入研究延迟加载、代码拆分、乐观 UI 以及使用 CDN、缓存或服务器端渲染等可扩展性策略等主题。
资深人士了解诸如 polyfill、tree shaken 和内容协商等主题,他们可以将它们组合成一个关于系统外观的连贯故事。
另外,请务必研究如何构建设计系统、如何将 CSS 规模化管理(例如 BEM 或 JS 中的 CSS)以及如何实现微前端。既然您已经了解了这些,不妨也看看 Monorepos。
看起来很多吗?
这是。
请记住,本文是关于如何顺利通过高级技术面试的。你在现实生活中遇到的面试可能和本文一样难,甚至比本文更难(如果你运气好的话)。无论如何,准备是关键。
一位和我共事的高级开发人员曾经说过,只有偏执狂才能生存。这句话在裁员时适用,在面试时也适用(不过,我会用“充分准备”来代替“偏执”)。
🚨附言:您是否希望快速晋升至高级职位,获得优质资源、反馈和问责机制?点击此处加入我们的免费社区——高级开发学院。🚨
高级开发人员提示:即使是高级职位的面试,你也会遇到一些关于 JavaScript 基础知识的问题,比如“事件循环在底层是如何工作的?”或者“你能告诉我 TypeScript 代码在转译时会发生什么吗?什么会被发送到浏览器?”确保你准备好这些问题。
高级开发提示(前端):务必了解无障碍方面的基础知识和最佳实践。这是开发人员最容易忽视的话题之一,但你应该预料到面试中至少 70% 的时间都会被问到这个问题。
另外,请务必了解语义化 HTML、如何在开发工具(ESLint 插件)中添加可访问性,以及“区域标签”之类的功能。这些细节会让你从众多程序员中脱颖而出。
恭喜!
如果你做到了这一点,你就通过了技术面试中最艰难的部分,并且领先于 99% 的竞争对手。
4. 可选:招聘经理面试
这只是招聘经理面试的延伸,但重点关注行为问题。简而言之,他们想知道你是否具备良好的团队合作能力。
您可以有效地面对和解决冲突(稍后会详细介绍),并且可以证明和展示积极进取的态度。
公司倾向于雇用具有正确态度的人。
这是一种积极性、专业性和主动性的结合。他们会问你这样的问题:“跟我说说你开发团队发生过冲突的一次经历,你是怎么解决的?”或者“跟我说说你最引以为豪的一个项目?”
或者,我最喜欢的是,“告诉我你最大的失败之一或失败的项目。”
保持积极专业的态度至关重要,但同时要讲述真实的故事,让人们产生共鸣。如果你没有故事,或者只是即兴发挥,就会给人留下缺乏经验,甚至更糟的是,准备不足的印象。
如果你把它粉饰得太过,它听起来就会很假。
如果你写太多脚本,听起来会像个机器人,而 ChatGPT 已经解决了这个问题。所以,尽量讲好故事,但要保持真实。
5. 文化契合面试
如果你能来这里,那你做得太棒了。公司对你的技术能力很有信心。现在他们想确保你能融入公司和团队。
要想成功完成这次面试,你需要展示两件事:
- 整体专业性
- 对公司感到兴奋
这次采访可能让人感觉很俗气和不必要,但这是过程的一部分。
玩笑归玩笑,让我们深入探讨一下这两个特质以及如何在面试中展现它们:
1. 专业性
你要展现出良好的品行,并且能够应对棘手的情况。相信我,软件开发是一个非常繁琐的过程,所以你肯定会遇到很多棘手的情况。
你如何处理冲突?你如何接受反馈?你是一个优秀的团队合作者吗?如果是,你最近为团队做过什么来帮助他们实现目标?
在这次采访中,言语毫无价值。
一如既往,一切都是为了证据。
要想在文化契合面试中脱颖而出,不妨讲述你过去的经历。谈谈当时的情况、你采取的行动以及结果。使用 STAR 格式。如果你不知道它是什么,可以随时谷歌搜索。
不要死记硬背,但要在面试前把答案写下来。
在这里,您可以使用 ChatGPT 来帮您。如果您的答案听起来有点俗气或机械,不用担心,只要您能阐明观点就行。
🚨附言:您是否希望快速晋升至高级职位,获得优质资源、反馈和问责机制?点击此处加入我们的免费社区——高级开发学院。🚨
请记住,你是一名软件工程师,而不是文学专业的学生。
以下是您需要准备的 3 个最重要的问题:
- 你如何处理分歧?例如在代码审查中。
- 告诉我您在代码库中发现严重错误的情况...您是如何处理的?
- 举一个你错过重要截止日期的例子……你对此做了什么,结果如何?
2. 兴趣和兴奋
这表明你对加入这家公司充满热情。你应该如此。如果你不得不假装热情,那就去找另一家能让你兴奋的公司吧。人生苦短。
兴奋并不意味着你是他们的铁杆粉丝。这意味着你理解他们的使命、愿景和价值观。并且你想帮助他们实现这些愿景。
文化契合面试之前:
- 查看公司的使命和愿景声明
- 思考如何帮助他们取得进步
现在您已经准备好了 STAR 格式的问题,并且了解了公司的价值观和使命,您比 99% 的开发人员准备得更充分。
最后一件事,在接听电话之前,请确保您心情愉快。
在YouTube上播放一些有趣的视频,或者听听你最喜欢的歌曲。情绪是会传染的,人们很容易被积极的情绪所吸引。所以,在开始面试之前,一定要保持好心情。
高级开发人员提示:多听少说。记住,这是关于他们的,而不是关于你自己的。询问关于愿景和使命的问题。问问他们目前面临的最大挑战是什么。问问为什么。只要表现出你的关心,这份工作很快就会属于你。
高级开发者提示:你可能会想,这都是些什么公司里的废话。我为什么要“伪造”这些东西?我只是想打开编辑器写点代码而已。好吧,事情就是这样,你必须得接受。没错,有些面试听起来就像纯粹的公司政治和宣传。不好也不坏,就是这样。你需要这份工作,那就去做吧。
🚨附言:您是否希望快速晋升至高级职位,获得优质资源、反馈和问责机制?点击此处加入我们的免费社区——高级开发学院。🚨
6. 报价谈判
好的,您通过了前面的所有阶段,并且收到了公司发来的一封神奇的电子邮件,说他们想向您提供一份工作。
他们可能会邀请您参加 Zoom 会议或打电话来告诉您这件事。
如果您急需接听电话,请务必选择电话。或者选择不带视频的 Zoom 通话。
纯音频通话会减轻你的压力。你还可以有更长的停顿时间思考和做笔记。(如果他们催你,就说你正在路上,目前无法进行视频通话)。
报价谈判中的两个目标
- 倾听他们的建议,做好笔记。如有不清楚的地方,请提出问题。
- 看看他们给你的报价是否是他们所能提供的最好的报价——可以这样说:“嘿,很棒的报价。这是基本薪酬方面你能给出的最好的报价吗?或者还有余地吗?”
高级开发人员政策:通话期间切勿做出承诺
即使你很喜欢这个 offer,最好也不要当场就答应。不管他们怎么催你。就说你把所有事情都记下来了,需要考虑一下再回复他们。
他们可能会尝试推动你,看看这是否足够好。
说实话。
如果您喜欢这个提议并且觉得它很有吸引力,请告诉他们,是的,这是一个非常可靠的提议。
如果没有,告诉他们这是一个不错的报价,但你觉得[插入你的号码]在当前市场上会更具竞争力。
与招聘人员合作,说明您的愿望,看看他们是否可以做些什么。
作为开发人员需要协商的事项按重要性排序:
- 总现金补偿- 尽可能提高这一数额。
- 奖金——注册奖金、年终奖金等等。都是免费的现金。
- 远程工作——完全远程工作或尽可能多地进行远程工作。
- 假期——带薪休假,同样非常有价值。
- 学习预算——确保你对此做出承诺,如果可能的话,请以书面形式做出承诺。
- 股权和股票期权- 不能用这些来支付抵押贷款,但它们有帮助。
高级开发人员提示:他们可能会尝试谈论福利,无论是有形的还是无形的。比如学习预算或接触新技术的机会。请注意,但不要分心。把话题拉回到最重要的现金补偿上。
这并不是对开发人员的工资和报酬的深入探讨,但我们可以说最有价值的东西是可以快速转化为现金的东西。
比如现金本身、奖金或学习预算。
假期也很棒,因为它会直接影响您的健康和与亲人共度的时光。
你不能用股票期权来偿还抵押贷款。这些期权变成现金的可能性很低,而且你总是有归属期。
公司在报价阶段玩的游戏:
- 在他们提出报价之前给你“反馈”
- 提及其他非常强大的候选人
- 谈论“预算”限制
事实是,不管他们说什么,只要你来到这里,权力就在你手中。
如果其他公司也向你发出了 offer,那就更是如此了。所以不要屈服。试着推动他们。不要太刻薄,但也不要太好。
就是这样。
现在您已经了解了技术面试的规则,您可以调整策略和行动,获得最佳的胜算,从而获得您应得的 offer。
记住,玩游戏是为了赢!
最后一句话……
我知道您可能认为这太费工作量了。
我同意。
技术面试工作量很大。然而,能够通过技术面试是一项高薪技能。
它将为您提供一生的财务稳定,让您自由地更换工作而不必担心找不到更好的工作,并让您找到自己喜欢的工作。
顺利通过技术面试很难。
但这是值得的。
祝您下次面试一切顺利。
小心,
-Dragos,theSeniorDev 创始人
🚨附言:您是否希望快速晋升至高级职位,获得优质资源、反馈和问责机制?点击此处加入我们的免费社区——高级开发学院。🚨
鏂囩珷鏉ユ簮锛�https://dev.to/dragosnedelcu/how-to-nail-your-next-technical-interview-in-2024-step-by-step-4jh0