Uncategorized · 26 2 月, 2024 0

关于北美CS技术电面(OA),你一定要知道这几件事

接下来即将进入春招的关键阶段,很多小伙伴都期待通过OA拿到了面试。但是很多同学都会有疑问,为什么题目刷了那么多,在线上面试时一紧张却还是做不出呢?为什么有的时候感觉题目做的很好,但是结果还是挂了呢?那么今天,就给大家分享几个cs tech面的小技巧!

The next key stage is approaching for the upcoming spring recruitment, and many friends are looking forward to passing the online assessments (OA) to get interviews. However, many students may have questions: Why, despite practicing many questions, do they still struggle to solve them during online interviews? Why is it that sometimes they feel they did well on the questions, but still end up failing? So today, let’s share a few tips for CS tech interviews!

首先是关于简历以及behavior的问题。简历上的经历自己一定要在面试前好好地过一遍,并且在面试官问的时候,可以两到三句话简短地把做了什么,有什么样的impact,展现了自己什么样的技能,都说清楚。至于behavior的问题,网上有很多面经,每种题目也都要准备好自己的回答,着重突出leadership,communication,collaboration等软实力。事例也不一定全是学习方面的,像我当时也会说关于运动或者各种活动的事例。

Firstly, let’s talk about resumes and behavioral questions. It’s essential to thoroughly review your experiences listed on your resume before the interview. When the interviewer asks, you should be able to briefly explain in two to three sentences what you did, the impact it had, and what skills you demonstrated. As for behavioral questions, there are many resources online with interview experiences. It’s important to prepare your answers for each type of question, emphasizing skills such as leadership, communication, and collaboration. Examples don’t necessarily have to be related to academics; for example, I might also mention examples related to sports or various activities.

然后是coding的题目,在面试官提出问题以后,不用急着回答,一定要先确认所有的input,output,格式,和corner cases的情况,特别是矩阵、字符串、数组这一类的题目,甚至可以举几个例子确认。然后可以请求一两分钟的思考时间,想好后和面试官阐述你打算用什么样的算法。那有的时候没有一下子想出很好的算法怎么办呢?可以先尝试用暴力解法,为自己争取更多的时间,一步一步想可以怎么继续优化。有些同学可能在tech面试中运气很好,遇到了自己做过的题目,也千万不要太激动,还是要按照上面的步骤来,让面试官充分理解你怎么得出这样算法的过程。

Next, let’s talk about coding questions. After the interviewer presents a problem, there’s no need to rush to answer immediately. First, make sure to clarify all the input, output, format, and corner cases, especially for problems involving matrices, strings, arrays, and similar data structures. You can even provide a few examples to confirm. Then, you can request one or two minutes to think about the problem and decide what algorithm you plan to use. What if you don’t immediately come up with a good algorithm? You can start by trying a brute-force solution to buy yourself more time and then gradually think about how to optimize it further. Some students may be lucky enough to encounter problems they’ve solved before during technical interviews. However, it’s still important to follow the steps mentioned above and ensure that the interviewer fully understands your thought process in arriving at the solution.

然后说一下关于corner cases,有什么可以注意的呢?首先,很多tech面试的时候会假设没有null,zero,overflow的这种情况,但是一定要和面试官表明你考虑到了这样的case,然后请问这里是否可以忽略这种情况。一个良好的corner cases的考虑习惯也一定程度上决定了面试官对你工作能力的第一印象。而且看到题目的时候就要考虑这些情况,千万不要等到后期面试官指出了这样的bug,再去考虑corner case。


Next, let’s discuss corner cases and what to pay attention to. Firstly, many technical interviews assume that there are no null values, zeros, or overflow situations. However, it’s essential to inform the interviewer that you’ve considered these cases and ask if they can be ignored. Developing a good habit of considering corner cases also plays a significant role in shaping the interviewer’s initial impression of your problem-solving skills. Additionally, it’s important to think about these situations when you first encounter a problem. Don’t wait until later when the interviewer points out such bugs to consider corner cases.

在coding的过程中,很多小伙伴都会忘记非常重要的一点,就是交流,这是北美面试的一个重点。同学们在正式面试前可以去参加几次mock interview,练习一遍写代码一遍解释的multitask能力。在面试过程中也要及时和面试官沟通,并且把选择这样写的好处都说出来。在编程中的命名也很重要,一般用比较简短但是明了的取名法则,面试官可以更好地理解每一个变量存在的意义。写完之后,一般选择一个common case和一个corner case和面试官一起确认你的答案,让面试官更相信你的算法是正确的。关于bug的影响,如果自己在go through中发现了,要及时去修改,并且承认当时没有考虑到这个情况的原因,比面试官指出要好多了。就算自己一下子没有想出优化的算法,好好按照上面的步骤用暴力解法也比什么都没写出来好太多了,毕竟ng面试更加考核的是你的编程习惯和潜力。


During the coding process, many individuals tend to forget a crucial aspect, which is communication. This is a key focus of North American interviews. Before the actual interview, candidates can participate in several mock interviews to practice coding while explaining their thought process simultaneously. During the interview, it’s important to communicate promptly with the interviewer and articulate the benefits of choosing a particular approach. Naming conventions in programming are also essential. It’s advisable to use concise yet descriptive names for variables so that the interviewer can better understand the significance of each variable. After writing the code, it’s common to select both a common case and a corner case and confirm the solution with the interviewer, demonstrating that the algorithm is correct. Regarding the impact of bugs, if you discover any while reviewing your code, it’s important to address them promptly and acknowledge that you overlooked those cases during the initial implementation. This is preferable to the interviewer pointing out the bugs. Even if you don’t immediately come up with an optimized algorithm, following the steps mentioned above and using a brute-force approach is much better than not writing anything at all. After all, the interview process focuses more on your programming habits and potential.

最后就是反问环节啦,这也是最后给面试官一个好印象的机会。像我自己用过的问题有,how much freedom do you have in the workspace? 只要让面试官觉得你在乎这个岗位,并且不要太普通就好啦。


Finally, there’s the opportunity to ask questions, which is also the last chance to leave a positive impression on the interviewer. Questions that I’ve personally used include “How much autonomy do employees have in their roles?” The key is to show the interviewer that you’re genuinely interested in the position and to avoid asking overly generic questions.

最后祝大家都面试顺利!

Finally, I wish everyone the best of luck in their interviews!

我们还提供OA与VO的咨询与支持服务,如果有需要,请联系我们:

邮箱:chen@csoahelp.com

We also provide consultation and support services for OA and VO. If needed, please feel free to contact us:

E-mail:chen@csoahelp.com