0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

编程面试的9大技巧

h1654155971.7688 来源:21ic电子网 2019-12-09 15:34 次阅读

作为程序员,在面试过程中都需要经历一次又一次编程的考验,这其中有何技巧可言?又该如何通关成功拿到心仪的 offer 呢?

关于编程面试中遇到的困难和算法问题,我们已经讨论了很多,但是首先在面试环境中让自己保持舒适本身就是一种技巧。 除了提出正确的解决方案之外,在每次编程面试中,你还需要做一些额外的事情。

要求澄清问题。

运行你的算法并用测试用例进行验证。

主动提供算法的时间复杂度和空间复杂度信息

很多时候,应聘者会立即全神贯注于编写代码,而忽略了做上面的一件或多件事情,这会对他们的面试结果产生负面影响。面试官肯定会发掘出应聘者编写正确算法的能力,但他们也会基于沟通能力和验证能力等其他技能来评估应聘者。要求澄清问题 在开始编写代码之前,一个好的应聘者总是会问清楚面试官提出的问题。这有三个主要目的:

它缩小了问题的范围。例如,也许你会问面试官,“这个数组中的所有整数都是正的吗?”。如果答案是肯定的,那么你就不必考虑整个负整数空间,这可能使问题更容易解决。

它向面试官表明你正在积极考虑边缘案例。面试是为了证明你有能力进行批判性和周密的思考,同样也是为了证明你的原始编码能力。

它允许你和面试官就问题的理解达成一致。因为有些时候,我给了应聘者一个问题,他们提出的解决方案却稍有偏差。所以在开始之前,确保你和面试官对你要解决的问题的理解一致。

验证算法 在面试过程中,仅仅在黑板上写好代码并称之为“完成”是不够的。一个高质量的应聘者总是会用边缘案例和例子逐步检查他们的算法以找出任何错误。这是几乎每个面试官都希望看到的关键步骤。 在验证算法时,尽可能周密。下面是一些提示:

在算法的每个步骤,写出存储在任何数据结构或变量中的内容。

如果执行for-或while循环,请确保运行算法直到完成,以捕获任何“off-by-one”错误或终止错误。

选择non-trivial的测试用例。可能是该算法适用于特定的输入集,但不适用于更复杂的输入集。尝试提出破坏算法的测试用例。

理想情况下,你写的算法没有任何缺陷,但现实中更可能发生的是,你会发现一些小错误。通过修改算法来修复这些错误,并再次运行几个测试用例,将能很好地反映出你的代码调试能力。 提供算法的时间复杂度和空间复杂度 几乎每个面试官都会关心算法的时间复杂度和空间复杂度。主动提供这些信息,而不是等待他们询问,可以向面试官表明你熟悉这些概念,并且可以轻松计算这些信息。 需要牢记的一些事情:

当开始考虑一个问题时,试着想想绝对的最好和最坏情形时的复杂度是什么。例如,要在未排序的列表中查找某个元素,我们知道必须至少查看列表中的每个元素一次,所以这个算法的复杂度至少是O(n)。

试着用“压力测试”测算一下你的算法的复杂度,尤其是当它依赖于两个或更多的变量时。例如,如果你的算法执行次数是O(n*k):如果k非常小会发生什么?当k接近n时会发生什么?有时,你会发现一个算法对于特定的n和k值是最优的,另一个算法对于不同的n和k值是最优的。

对于内存限制,如果你确实需要跟踪数据结构中的所有值,请尝试解释。此外,还要认识到一个事实,即不同编码语言中的某些函数可能会使用额外的内存。一个很好的例子是在Python中进行列表切片,这会创建一个新的列表(可能会产生另一个O(n)内存使用)。

编码面试是很困难的,精通算法和编码问题并不能保证总是能够通过面试。幸运的是,有了这三个技巧,你可以更好地了解如何进行编程面试。祝你好运! 你正在面试编程工作吗,还是只是喜欢有趣的编程问题?查看我们的时事通讯-Daily Coding Problem,你就能每天在你的收件箱中收到一个关于编程的问题。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4633

    浏览量

    93474
  • 编程
    +关注

    关注

    88

    文章

    3642

    浏览量

    94095
  • 代码
    +关注

    关注

    30

    文章

    4841

    浏览量

    69197

原文标题:9 大技巧拯救你的编程面试!

文章出处:【微信号:weixin21ic,微信公众号:21ic电子网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    一文解析高频交易中FPGA的作用及面试建议

    和其他人的亲身经历,写了一篇关于测试职位是什么样子以及如何准备面试的文章。 HFT 世界是什么样的 为了理解这些术语并以更合适的方式做好准备,我们首先来谈谈 HFT 是什么,以及为什么 FPGA 在交易
    的头像 发表于 01-23 10:57 223次阅读
    一文解析高频交易中FPGA的作用及<b class='flag-5'>面试</b>建议

    面试题】人工智能工程师高频面试题汇总:概率论与统计篇(题目+答案)

    ​随着人工智能技术的突飞猛进,AI工程师成为了众多求职者梦寐以求的职业。想要拿下这份工作,面试的时候得展示出你不仅技术过硬,还得能解决问题。所以,提前准备一些面试常问的问题,比如概率论与统计知识
    的头像 发表于 01-22 13:00 441次阅读
    【<b class='flag-5'>面试</b>题】人工智能工程师高频<b class='flag-5'>面试</b>题汇总:概率论与统计篇(题目+答案)

    面试题】人工智能工程师高频面试题汇总:机器学习深化篇(题目+答案)

    随着人工智能技术的突飞猛进,AI工程师成为了众多求职者梦寐以求的职业。想要拿下这份工作,面试的时候得展示出你不仅技术过硬,还得能解决问题。所以,提前准备一些面试常问的问题,比如机器学习的那些算法
    的头像 发表于 12-16 13:42 2103次阅读
    【<b class='flag-5'>面试</b>题】人工智能工程师高频<b class='flag-5'>面试</b>题汇总:机器学习深化篇(题目+答案)

    面试题】人工智能工程师高频面试题汇总:Transformer篇(题目+答案)

    随着人工智能技术的突飞猛进,AI工程师成为了众多求职者梦寐以求的职业。想要拿下这份工作,面试的时候得展示出你不仅技术过硬,还得能解决问题。所以,提前准备一些面试常问的问题,比如机器学习的那些算法
    的头像 发表于 12-13 15:06 647次阅读
    【<b class='flag-5'>面试</b>题】人工智能工程师高频<b class='flag-5'>面试</b>题汇总:Transformer篇(题目+答案)

    人工智能工程师高频面试题汇总——机器学习篇

    随着人工智能技术的突飞猛进,AI工程师成为了众多求职者梦寐以求的职业。想要拿下这份工作,面试的时候得展示出你不仅技术过硬,还得能解决问题。所以,提前准备一些面试常问的问题,比如机器学习的那些算法
    的头像 发表于 12-04 17:00 1023次阅读
    人工智能工程师高频<b class='flag-5'>面试</b>题汇总——机器学习篇

    面试嵌入式都会问那些问题呢?

    作为一名电子工程专业的毕业生,我对嵌入式系统开发一直充满热情。当我决定踏入这个行业,寻找属于自己的职业道路时,面试成为了我必须面对的挑战。在这里,我想分享一些我在嵌入式系统面试中遇到的问题以及我的应对经验。
    的头像 发表于 11-27 09:13 421次阅读
    <b class='flag-5'>面试</b>嵌入式都会问那些问题呢?

    硬件面试电路分析(含拓展电路分享)

    今天又看到一道硬件面试电路的电容电阻的作用分析,深入研究了一下,也拓展了一下知识点,把之前完全不了解的相位补偿电容的相关知识也查了一下,以例子的形式去理解,生动形象多了。下面是今日学习总结
    的头像 发表于 11-20 10:36 324次阅读

    程序员去面试只需一个技能征服所有面试官!

    为什么要学嵌入式?面试各方面感觉都良好,为啥最后给毙了?在这么多技术活儿里,嵌入式开发为啥这么吃香?嵌入式开发找工作,为何更容易?……来,来,来,看看不为人知的内部消息!就像我最近听说的这个事儿,有
    的头像 发表于 11-05 19:35 287次阅读
    程序员去<b class='flag-5'>面试</b>只需一个技能征服所有<b class='flag-5'>面试</b>官!

    plc编程语言编程相关技巧有哪些

    PLC(可编程逻辑控制器)编程语言及相关编程技巧是工业自动化领域中不可或缺的知识。 一、PLC编程语言概述 PLC编程语言主要包括梯形图(L
    的头像 发表于 10-21 16:56 477次阅读

    工业机器人的四种编程(示教编程、离线编程、自增强现实编程编程)剖析!

    当前机器人广泛应用于焊接、装配、搬运、喷漆及打磨等领域,任务的复杂程度不断增加,而用户对产品的质量、效率的追求越来越高。在这种形式下,机器人的编程方式、编程效率和质量显得越来越重要。降低编程的难度
    的头像 发表于 08-30 12:14 3259次阅读
    工业机器人的四种<b class='flag-5'>编程</b>(示教<b class='flag-5'>编程</b>、离线<b class='flag-5'>编程</b>、自增强现实<b class='flag-5'>编程</b>主<b class='flag-5'>编程</b>)剖析!

    面试嵌入式工作,会被问什么问题?

    面试嵌入式工作时,面试官可能会从多个方面考察应聘者的知识、技能和经验。以下是一些常见的嵌入式工作面试问题,这些问题涵盖了基础知识、专业技能、项目经验和个人能力等方面
    的头像 发表于 07-17 09:26 2178次阅读
    <b class='flag-5'>面试</b>嵌入式工作,会被问什么问题?

    PLC的编程方式及编程语言

    在工业自动化领域,PLC(Programmable Logic Controller,可编程逻辑控制器)因其强大的控制功能和灵活的编程方式而得到了广泛应用。PLC的编程方式和编程语言是
    的头像 发表于 06-27 14:08 974次阅读

    编程电源如何编程

    编程电源如何编程  可编程电源是一种可以调节输出电压和电流的电源设备,广泛应用于电子设备测试、研发和生产等领域。通过编程,用户可以根据需要设置电源的输出参数,实现自动化测试和控制。本
    的头像 发表于 06-10 15:24 1609次阅读

    数控铣床绝对编程和相对编程指令是

    数控铣床编程是数控加工技术中的重要组成部分,它涉及到数控铣床的控制和操作。在数控铣床编程中,绝对编程和相对编程是两种常用的编程方式。本文将详
    的头像 发表于 06-07 11:12 1628次阅读

    fpga编程与单片机编程的区别

    FPGA编程与单片机编程的主要区别体现在以下几个方面。
    的头像 发表于 03-14 17:16 1144次阅读