采访拍摄镜头技巧
The disruption caused by the coronavirus is presenting an opportunity for employers to think about how they can become more agile. Organizations are cutting costs and reducing headcounts to keep their business afloat during the crisis. Along with that, this brings an opportunity for organizations to change the way they hire new employees.
冠状病毒引起的破坏为雇主提供了一个思考如何变得更加敏捷的机会。 组织正在削减成本并减少员工人数,以在危机期间保持业务稳定发展。 随之而来的是,这为组织带来了改变他们雇用新员工的方式的机会。
This is a second chance to so many employers to change their hiring process. This is becoming apparent from the fact that a lot of companies are conducting live-coding interviews instead of the take-home assignments.
对于如此多的雇主来说,这是第二次机会来改变他们的雇用过程。 从许多公司正在进行现场编码采访而不是实地考察的事实中,这一点变得显而易见。
This is bad news for many but this is how employers are trying to ensure quality hiring. Although, this might not be a good criterion to vet the technical abilities of the candidate and to understand the value a candidate can deliver as a member of an engineering team. But this does tell you a lot about the candidate.
这对许多人来说是个坏消息,但这是雇主试图确保高质量招聘的方式。 虽然,这可能不是审查候选人的技术能力并了解候选人作为工程团队成员可以提供的价值的良好标准。 但这确实告诉了您有关候选人的很多信息。
I have recently given a lot of interviews and I had live-coding round with most of them. Although I am aware that challenges differ among companies, roles, and positions, I’d like to share a few tips that helped me get through the live-coding interviews. Hopefully, these will enable you to nail a live coding interview in the best way possible.
我最近接受了很多采访,并且大多数人都进行了现场编码。 尽管我知道公司,职位和职位之间的挑战有所不同,但我想分享一些技巧,这些技巧可以帮助我完成现场编码采访。 希望这些使您能够以最佳方式进行现场编码采访。
1.练习,练习,练习 (1. Practice, practice, practice)
As straightforward as it may sound, the most important thing to do is practice. Many engineers are of course experienced in coding, but not often do they code with an audience looking over their shoulders.
尽管听起来很简单,但是最重要的是练习。 当然,许多工程师都具有编码方面的经验,但是他们常常不会在观众抬头的情况下进行编码。
I have experienced that this can make the engineer nervous and even completely freeze on the spot. To avoid that, It’s absolutely essential to practice and get used to the idea. Choose your favorite language and solve basic algorithms with it.
我经历过,这会使工程师感到紧张,甚至在现场完全冻结。 为了避免这种情况,实践并习惯这个想法是绝对必要的。 选择您喜欢的语言并使用它解决基本算法。
写代码 (Write code)
I started by solving easy algorithms from Leetcode. Start off with the easy ones and gradually move on to the harder challenges. This will enable you to dust-off on data structures and algorithms and will get you familiar with the types of challenges you could come across during the actual coding interview.
我从解决Leetcode的简单算法开始。 从简单的难题开始,逐步应对更艰巨的挑战。 这将使您能够掌握数据结构和算法,并使您熟悉在实际的编码采访中可能遇到的挑战类型。
Try solving the problem, if you can’t then quickly jump to the solution. The idea is to practice writing the code. It does not matter whether you are able to solve it.
如果无法解决问题,请尝试解决问题。 这个想法是练习编写代码 。 您是否能够解决它并不重要。
编写测试 (Write tests)
This is the most important part of solving any problem. Think about the scenarios that you can test against. Start with basic and then think about the edge cases.
这是解决任何问题的最重要部分。 考虑可以测试的方案。 从基本开始,然后考虑边缘情况。
Interviewers are looking exactly for that. They know that you will be able yo solve the problem, as the problems are generally simple. They want to see whether you can make it production-ready.
面试官正是在寻找那个。 他们知道您将能够解决问题,因为问题通常很简单。 他们想看看您是否可以将其投入生产。
Here is an article that has a step by step explanation for writing tests for an algorithmic question!
这是一篇具有逐步解释的文章,用于编写算法问题的测试!
2.不要直接跳进去 (2. Don’t jump straight in)
When in the interview, many engineers tend to jump straight into the challenge, coding away from the get-go. Although an eagerness to show off your coding skills might push you into that direction, it’s better to first step back, take your time and discuss the problem at hand.
在采访中,许多工程师倾向于直接挑战,从一开始就编写代码。 尽管急于炫耀您的编码技能可能会把您推向这个方向,但是最好先退后一步,花点时间讨论当前的问题。
Ask any questions you might have; share any doubts you might have. This will not only provide you with a more thorough understanding of what is expected but will also enable you to avoid any pitfalls during the challenge.
问您可能有的任何问题; 分享您可能有的任何疑问。 这不仅可以使您对预期的结果有更透彻的了解,还可以使您避免在挑战中遇到任何陷阱。
Here is an article that shares the common mistakes that developers make during an interview.
这是一篇文章,分享了开发人员在面试中犯的常见错误。
3.保持简单; 不要过度设计 (3. Keep it simple; don’t over-engineer)
During the interview, no one truly expects you to write a code that’s 100% correct. The most important thing is to have a code that runs at the end of the challenge, even if the solution itself is sub-optimal.
在面试中,没有人真正期望您编写出100%正确的代码。 最重要的是,即使解决方案本身不是最佳选择,也要在挑战结束时运行代码。
During the challenge, demonstrate how you think about the problem, how you break it into manageable chunks, and how you work towards the solution. Make it performant and demonstrate you are capable of producing a well thought and designed solution.
在挑战过程中,演示如何思考问题,如何将其分解为可管理的部分以及如何努力解决问题。 使其表现出色并证明您有能力提供经过深思熟虑和精心设计的解决方案。
Keep it simple; don’t over-engineer. You won’t have the time for it, and chances are you complicate yourself or get stuck. Also, as long as you make sure the code runs, you can always still describe and discuss more optimal solutions afterward.
把事情简单化; 不要过度设计。 您将没有时间去做,并且很可能使自己变得复杂或陷入困境。 另外,只要您确保代码能够运行,以后始终可以描述和讨论更理想的解决方案。
4.与面试官建立联系 (4. Establish a connection with the interviewer)
At the beginning of the interview, make sure to create a connection with the interviewer. Ask as many questions as possible. They want to see how you think and will guide you to get to the solution. Don’t be shy in asking if the approach is what he is expecting from you.
在面试开始时,请确保与面试官建立联系。 问尽可能多的问题。 他们想看看您的想法,并会指导您找到解决方案。 不要害羞地问这种方法是否是他对您的期望。
Follow up with “how many questions will we go through in this process?” or “how much time do we have?”. The goal of these questions is to understand if the interviewer is evaluating problem-solving speed, the performance of the solution, or familiarity with the language you chose.
跟进“在此过程中我们将要处理多少个问题?” 或“我们有多少时间?” 。 这些问题的目的是了解访问员是否正在评估问题解决的速度,解决方案的性能或对所选语言的熟悉程度。
5.先写一个解决方案,然后再向面试官解释 (5. Write a solution first before explaining it to the interviewer)
One of the challenges of live coding interviews is jumping between writing code and talking about code with the interviewer. For engineers who are not formally taught, this practice breaks their learned coding process, causing them to skip steps in live coding that they would not skip in a real coding environment.
实时编码面试的挑战之一是在编写代码和与面试官讨论代码之间切换。 对于未接受正式培训的工程师,此做法会中断他们学习的编码过程,导致他们跳过实时编码中的步骤,而在实际编码环境中不会跳过这些步骤。
This happened with me during one of the interviews. I was writing a solution for a problem that required sorting the input array before iterating over it. I mentioned that to the interviewer but failed to actually write that in the code.
在一次采访中我发生了这种情况。 我正在写一个解决方案,该问题要求在迭代输入数组之前对输入数组进行排序。 我向面试官提到了这一点,但没有在代码中实际写出来。
Since I was not writing the code in an IDE, there was no way to figure out the part that I had missed. And becuase of that, I gave an incorrect answer for the time complexity of my solution.
由于我不是在IDE中编写代码,因此无法找出我错过的部分。 因此,对于解决方案的时间复杂度,我给出了错误的答案。
最终思想 (Final Thought)
In general, live-coding interviews will help you gain confidence, and if you practice enough, you will be able to easily crack it.
一般而言,现场编码面试将帮助您获得信心,如果您进行了足够的练习,就可以轻松破解它。
I have been part of interviews where I was not even allowed to Google anything, which is irritating but that gave me insights on how much I don’t know and how much I rely on Google.
我参加过面试的一部分,我什至不被允许进入Google,这很烦人,但是这让我对不知多少,以及我对Google的依赖程度有所了解。
Thanks for reading! Other interesting articles from the author.
谢谢阅读! 作者的其他有趣文章。
翻译自: https://levelup.gitconnected.com/5-effective-tips-for-live-coding-interviews-1958193a9706
采访拍摄镜头技巧