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

    文章

    4451

    浏览量

    90740
  • 编程
    +关注

    关注

    88

    文章

    3439

    浏览量

    92368
  • 代码
    +关注

    关注

    30

    文章

    4554

    浏览量

    66720

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

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

收藏 人收藏

    评论

    相关推荐

    TCP协议面试常问知识点总结

    TCP 作为传输层的协议,是一个IT工程师素养的体现,也是面试中经常被问到的知识点。在此,我将 TCP 核心的一些问题梳理了一下,希望能帮到各位。
    的头像 发表于 12-15 10:38 267次阅读
    TCP协议<b class='flag-5'>面试</b>常问知识点总结

    海纳AI获数千万A轮融资,继续领跑AI面试测评市场

    数千万融资加持AI面试赛道 海纳AI(Hina.com)近日已完成数千万元A轮融资,本轮融资由联想创投独家投资。这是2023年中国AI面试测评赛道公布的首笔融资,也是最近的AI 2.0大潮中,国内
    的头像 发表于 12-01 10:38 516次阅读

    硬件工程师经典面试题详解

    硬件工程师经典面试题详解
    的头像 发表于 11-20 15:08 729次阅读
    硬件工程师经典<b class='flag-5'>面试</b>题详解

    硬件射频类面试注意事项

    射频电路有微波和普通的频率区别。 微波电路一般会问一些微波电路和实际理论的差距,差距的原因等等。 射频电路一般会问设计思路是什么,设计的重点是什么等。 技术面之后就是综合面试了 综合面试就是场面话,对工作的规划,工作地点的选择,怎么看待行业等等了。
    的头像 发表于 11-20 09:43 294次阅读
    硬件射频类<b class='flag-5'>面试</b>注意事项

    30道Linux面试题总结

    如果你是一名开发人员、系统管理员,或是仅仅对 Linux 感兴趣,那么这个列表是为你准备的。它包含了类 Unix 系统管理或编程职位面试中涉及 Linux 相关的所有常见问题。
    发表于 10-27 15:29 752次阅读
    30道Linux<b class='flag-5'>面试</b>题总结

    c语言面试题集(完整版)

    电子发烧友网站提供《c语言面试题集(完整版).pdf》资料免费下载
    发表于 10-20 11:20 1次下载
    c语言<b class='flag-5'>面试</b>题集(完整版)

    异步FIFO相关面试问题

    又到了一年一度的招聘季节,有粉丝私信问了一个问题,一个关于以前流传出来的大厂面试的题目,个人觉得算是比较经典的题目,也是工作中经常遇到的一个问题,所以准备写一篇回答下。
    的头像 发表于 10-01 10:11 380次阅读
    异步FIFO相关<b class='flag-5'>面试</b>问题

    硬件经典面试100题分享

    学电人员必备;硬件经典面试100题;面向电子行业的面试基础问题,提前进入职业的大门
    发表于 09-27 06:23

    面试射频工程师需要知道的基础知识

    大家好,这里是射频学堂,今天给大家整理了一下一些知名外企射频类岗位面试题集,这些外企包括:Apple, Qualcomm, MediaTek, Intel, Samsung, Skyworks, Keysight, pSemi, Qorvo, Anokiwave 等等。
    的头像 发表于 08-15 10:15 1069次阅读

    常见的嵌入式C语言面试

    数组是最基本的数据结构,关于数组的面试题也屡见不鲜,本文罗列了一些常见的面试题,仅供参考。目前有以下18道题目。
    发表于 07-18 10:46 589次阅读

    C语言面试最常问的关键字

    大家好,我是嵌入式老林,从事嵌入式软件开发多年,今天分享的内容是C语言面试最常问的三个关键字,希望能对你有所帮助。
    发表于 07-11 12:41 202次阅读

    iOS多线程面试题解析

    这是某大厂的面试原题,我当时第一问回答对了,然后第二问就凉凉了。
    发表于 06-15 10:28 297次阅读

    如何使用代码战士或替代方案在Windows 10 64位版本上对MC9S08QE8CTG进行编程

    我们如何使用代码战士或替代方案在 Windows 10 64 位版本上对 MC9S08 进行编程
    发表于 05-17 06:24

    【经典面试题】请使用C语言编程实现对IPV4地址的合法性判断

    【经典面试题】请使用C语言编程实现对IPV4地址的合法性判断
    的头像 发表于 05-16 15:23 1127次阅读

    分享10道有趣的嵌入式C语言面试题及答案

    10个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个!
    的头像 发表于 05-09 10:54 1680次阅读