Redian新闻
>
注意事项 | 超20000次统计!8大面试易错点重磅出炉!

注意事项 | 超20000次统计!8大面试易错点重磅出炉!

职场
总是看到大家在各个平台吐槽面试难度大、面试官奇葩、出的题让人感到无语……于是技术面试练习平台,有人统计了超过20,000次的模拟面试。

并且通过收集研究同行反馈,归纳他们一起讨论的话题和统计的显著趋势,概括出了软件工程师在技术面试中易犯的8个常见错误,并且制定了避免、应对的建议。希望这份数据能给大家带来帮助!



(Tips:错误是按其发生率,而不是严重程度列出的。


No.01

在提出解决方案之前就开始编写代码

出现率:20.66%

问题所在:


在彻底思考好解决方案之前,深入编写代码无疑是得不偿失的。没有完整的方案就开始编码,当你意识到你所做的事情太复杂或毫无意义时,时间已经所剩无几。


莽撞而匆忙的行为或许是因为紧张,或许是因为过度自信,切记悬崖勒马!一边编写代码一边找出解决方案其实并不可行,这会耗尽时间,匆忙编写代码的结果是做得更多而不是做的更好”。

 

建议:


首先需要理清自己的思路,将整个问题分解成简单的小部分。当准备开始编写代码时,最好先写出伪代码来解析自己的方法。以举例的方式,来说明算法中的关键步骤。

 

Only after both you and your interviewer agree that you have a good solution, proceed to implementation.

 

在开始编写前,早些提及那些缺乏理性的,粗暴或天真的方案是必要的,这有以下三个原因:

首先,它可以避免尴尬的沉默时刻,让你有可以描述表达的观点;同时也有助于找出最佳的解决方案。

其次,不成熟的解决方法有时可以通过优化,成为最佳解决方案。

最后,作为一名软件工程师,主要职责是编写一个可行的解决方案。正确性优先于效率。


No.02

不重视计算机科学的基本原理

出现率:20.05%

问题所在:


不管喜不喜欢,而今大多数编码面试仍然围绕数据结构和算法(DS&A)的问题展开。无论是Dropbox,Airbnb,Uber&Palantir这样的拟上市初创公司,还是Google,Meta, Amazon,Apple这样的巨头公司,都是如此。

 

You may be an exceptional practical programmer, but if your command of core DS&A is lacking, you’re unlikely to get the job that you want. Yes, this sucks, but that’s reality.


建议:


利用一些时间学习或复习数据结构和算法(DS&A)。这不仅可以帮助你度过编码面试,还可以让你成为更好的软件工程师。掌握基本的DS&A是每一位软件工程师的基本技能。


No.03

沉默

出现率:15.80%

问题所在:


面试官不是绝地武士,不会读心。你可能会因为思路不是十分清晰连贯而感到焦虑,但如果不能鼓起勇气说话,通过面试的希望便十分渺茫了。仅仅在面试开始时,解释解决问题的方法是不够的。即使在执行和测试算法期间,也最好和面试官保持全程交流。


建议:


夸大我们的想法,对于其他人来说,显而易见是一种常见的认知偏见,在过度交流方面更是如此。在面试时,向面试官展示你的步骤和推理过程。如果你感到焦虑,不能有效地表达你的想法,可以寻找一些让自己冷静下来的技巧。一边谈话一边编码对很多人来说并不十分习惯,一个专业的练习平台是必要的。


No.04

编程语言命令不佳

出现率:12.56%

问题所在:


你可能有很好的解决问题的能力和算法思维,但如果你不知道所选择的编程语言的核心结构,功能和语法,那么这将会造成一定的麻烦。


考官基本不会考察在稀有情况下使用的一些深奥数据的结构界面。但如果你不了解基础的知识点,例如C中的内存管理,Java中的继承,Python中的列表解析或者JavaScript中的闭包,那么再见,你的面试基本GG了。初学者一般容易犯下这个错误,但它也时时发生在拥有深厚理论知识但缺乏实践经验的学者身上。

 

建议:


如果可以选择,尽量用自己最熟悉的编程语言进行面试。面试官通常是灵活的,可以让你选择熟悉的编程语言。如果情况特殊,例如面试必须使用JavaScript的前端职位,那么就需要做好复习,提前掌握需要的编程语言技能。


Learning from books won’t cut it and you need to get your hands dirty. Program a few projects, contribute to open source, or better yet, do both.

 

边学边练习是真正掌握编程语言的唯一方法。如果你需要一个关于项目的想法,利用Google搜索查询将会得到很多信息。


No.05

不使用测试

出现率:10.33%

问题所在:


因为没有进行测试运行代码,与职位失之交臂。首先,代码在某些特定的测试中失败是很常见的事。经过测试,可以发现错误并尽快解决它们。此外,你可能会想出一个面试官没有想过的原创解决方案。通过举例说明,展示每一行代码中每个变量的变化,让面试官更容易理解这个解决方案是有效的。

 

Hiring engineering managers love test cases. In fact, for some of them not using tests is an outright deal breaker even if you reached to the right solution.

  

建议:


在面试中,建议分三次测试方案。

第一次是在面试官问过你编码问题之后,使用一个或两个例子来验证是否完全理解了这个问题(更多细节参见No. 06)。

第二次是在勾画出解决方案之后,使用测试用例,通过伪代码来引导并验证其正确性。

第三次是在完成了编写代码后再次进行测试,以确保没有任何问题。


No.06

错误解读问题

出现率:9.11%

问题所在:


在所有的问题中,读题错误是最容易避免的。但依然有大约9%的面试者会马虎以至于误读问题。这里没有太多需要说明的地方。

 

If you misunderstood the interview question or made assumptions about the problem statement or input that you shouldn’t have, it’s likely that you’ll fail your interview.

 

建议:


在面试官解释完问题之后,第一件事就是用自己的话复述一遍,以证实是否正确地理解了问题。如果弄错了,面试官会告诉你的。这样简单的一步可以避免文不对题的尴尬。


在复述这个问题的同时,可以适当提出几个简单的输入示例,以确保预期结果的正确性。这会让面试官更容易知道你是否理解了这个问题。


另一项需要注意的是,可以适当做出某些假设。例如,你可以询问,输入是否排序,自己是否可以假设输入是有效的,或是在特定范围内的。也可以和面试官一起缕清需不需要针对时间或空间进行优化。


No.07

忽略边缘案例

出现率:8.31%

问题所在:


忽略边缘案例一定程度上表明面试者解决问题的能力不足。首先,如果算法没有处理所有有效的输入,那么这个解决方案就是不完整的。其次,因为没有考虑边缘情况,错过了更好的可以消除边缘情况的算法。

 

例如,在填出等式中空出的数字这个问题中,一个简单的解决方案是从总和(1,...,n)中减去输入数组的总和。但是,对于足够大的'n'来说,解决方案将由于整数溢出而失败。这个边缘案例迫使你想出更好的解决方案。通过使用位运算符XOR,可以设计一个不再容易溢出的解决方案。

 

建议:


围绕算法输入的边界使用测试。如果算法在某些边缘情况下失败,首先检查是否可以通过快速增量更改来修复算法。如果不能,询问面试官你是否应该处理这些边缘案例。


在需要处理边缘案例而你却毫无头绪时,尝试与面试官交流并试图寻求他们的帮助。


No.08

代码不易理解

出现率:7.69%

问题所在:


技术面试不仅仅关乎正确性和效率,也关乎面试者的代码风格。你的代码也许是有效率的,经得住推敲的,但如果只有你自己能够理解代码,那么面试结果,十之八九是惨烈的。

 

Hiring managers look for engineers whose code is legible, maintainable and idiomatic. Code that other team members can pick up from where you left off easily.

 

这个问题在初学者、语言切换者和编程竞赛参与者中很是普遍。以下是应该避免的一些造型错误:

 

一.给变量,函数等赋予随机的,非描述性名称。例如,对非索引变量使用单个字符名称,或者调用函数'func'。编程竞赛开发人员尤其需要小心,因为他们习惯于在其程序中使用短名称,以便更快地编写代码。这在面试中是非常不利的。

 

二. 代码风格不一致。每个人都有自己的编程风格,但混合随机编码标准并不是一个好主意。例如,使用不同的命名方式,或者同时在camp Richard和camp Winnie使用制表符。同样,如果您将大括号放在同一行上,不要在后面的编程时又放在新行中。

 

三. 使用保护性代码(例如NULL检查和许多特殊情况)而不考虑是否必要。这导致代码更复杂,更加难以理解和调试。

 

建议:


适当保持代码简短。按照常识在适用的地方给出描述性的名字,并在面试期间选择一种代码标准。最好使用惯用的代码。否则,面试官可能会怀疑你的编程语言运用的不够熟练。


阅读完全文,你可能已经注意到,在技术面试中,面试者犯的大部分错误与技术技能无关。事实上,非技术性错误(No. 1,3,6)占所有错误的44%。这表明面试与编程有着根本的不同。许多经验丰富的软件工程师认为他们不需要准备面试。这是一个很大的错误。


软件工程师的技术面试不但要求技术上的优秀,同样要求软技能的优秀。注意,从入门到合格,从合格到优秀是不同的阶段,如何丝滑进阶?欢迎扫码回复【咨询】进行了解!

* 本文原创于直通硅谷【https://www.zhitongguigu.com】,欢迎尊重版权的转载。一般转载请在文章开头或结尾正确注明以下信息:作者:直通硅谷  公众号:直通硅谷订阅号直通硅谷,北美最专业的IT求职培训机构,留学生科技求职最佳选择。

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
一文读懂基金产品备案要求!私募基金产品备案注意事项、最新反馈意见2023年英国教育报告重磅出炉!看看为何国内家长纷纷留学英国?重磅出炉!2024年全球必游胜地!澳洲唯一上榜的景点居然是它!很多人没去过,不在悉尼、墨尔本!重点来了!11月CFA考试考前注意事项汇总!(这两个考场考生需要特别注意...)【本周讲座预告】CPT和OPT申请及注意事项术前禁食水——手术前非常重要的注意事项之一20元便宜机票可飞美国多地 专家提醒购买注意事项实用!一文解析,英国工签续签与永居的注意事项!全天候战略伙伴关系---委内瑞拉清楚的逻辑发言,没毛病【官方】关于重申护照换发、补发护照注意事项移民美国,拿到绿卡后有哪些注意事项?2024年度卫生专业技术资格考试网上报名步骤和注意事项!12月1日开始报名6008 血壮山河之随枣会战 南昌之战 1旅美散记(12):幼儿不知甜滋味未央播报 | 统计局正完善青年失业率的统计方法和统计口径 OpenAI暂停新的ChatGPT Plus注册2024U.S. News美国大学排名重磅出炉!芝大掉出TOP10!纽大掉出TOP30!机制大改...中国最新癌症死亡率数据重磅出炉!你应该知道这些!与家人游览杭州西湖为什么建议今年要英、美、港、澳、加联申?申请特点&注意事项要明确→【提示】火车携带品注意事项清单请查收安全是回家唯一的路:在加拿大健行登山,這些注意事项你不可不知!重磅出炉!刀法年度峰会展商一览,30+优质精选品牌和数字营销服务商波速球体态改善&核心训练及使用安全注意事项转发!火车携带品注意事项清单很重要!中领馆提醒:国庆赴美七大注意事项昂扬向上|2023年上银基金产品成绩单重磅出炉!【提示】@驾驶员,高速公路回程返沪驾车注意事项请查收美高面试题型与注意事项!面试表现影响你的录取率!最新火车携带品注意事项清单发布,有哪些不能带美国婚绿丨2年临时绿卡转10年永久绿卡有哪些注意事项?辅导员公益讲座|心理普测后的约谈技能和注意事项11月CFA考试考前注意事项汇总!(这两个考场考生需要特别注意...)马上抢位|经典刷题圣经 + 实时更新业界面试题一次刷完,全面覆盖考点难点易错点!2024年度卫生专业技术资格考试网上报名注意事项!
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。