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

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

3天内不再提示

程序员怎样在面试中表现得更出色

工程师人生 来源:网络整理 作者:工程师吴畏 2018-11-08 15:59 次阅读

像专业人士那样聊天

在深入代码之前,大部分面试官都喜欢聊聊你的背景。他们想知道:

关于编程的元认知。你有考虑过如何才能更好地编程吗?(译者注:元认知(Metacognition)或译为后设认知,这个名词由 Swartz 及 Perkins 发明及定义,即“认知的认知”或“知识的知识”。简言之,就是对自己的认知过程(包括:记忆、感知、计算、联想等各项)的思考。)

自主精神/领导能力。你看到你的工作完成了吗?就算你不必这样做,你会主动修正不对的事情吗?

沟通。他们会和你聊聊技术上的问题是有用的,还是痛苦的?

你至少应该准备好下面中的一项:

你解决过技术问题中一个有趣的例子

你克服人际冲突的一个例子

领导能力或自主精神的例子

你在过去项目中应该做什么的故事

你最喜欢语言的一些细节,以及关于你喜欢和不喜欢说的语言上的一些事情

关于公司产品或业务的问题

关于公司工程战略的问题(测试,Scrum等)

好好准备相关材料。你要展示你做过最自豪的事情,你很希望了解他们正在做什么,而且你对语言和工作流程有一些自己的想法。

沟通

一旦涉及到编程的问题,沟通是关键。在过程中需要帮助但可以清楚与人沟通的候选人,要比那些可以轻而易举解决问题的候选人更加难得。

理解它是哪一类问题。问题有两类:

编程。面试官希望看到你解决问题,并且可以写出整洁和有效的代码。

聊聊而已。面试官只是想让你说点什么。这些问题通常要么是高层次的系统设计(“你如何设计 Twitter 的备份?”),要么是琐碎的事情(“JavaScript 中 hoisting 是什么?”)。有时候琐事是为了引出一个“真正的”问题,比如,“我们如何能快排一个整数数组?好的,现在假设我们不再使用整数而是……”

如果面试官在进入“真正的”问题之前,只是想很快得到一个类似闲聊的回答,而你却开始编写代码了,她会感到失望。只需要问一句,“我们要为它编写代码吗?”

让人觉得你们是一个团队的。面试官想知道和你一起解决问题会是什么样子的,所以要让面试官觉得你是乐于合作的。用“我们”来代替“我”,比如,“如果我们采用一个广度优先搜索,我们会很快得到一个答案。”如果要你选择在纸上还是在白板上编写代码,最好选择白板。这样你就可以坐在面试官的旁边,面对着问题(而不是和她隔着一个桌子)。

说出你的想法。我是认真的。“让我们试着这样做——但我还不确定它是否会起作用。”,如果你被卡住了,就说出你的想法。说说什么可能会有用。说说你认为什么东西可以工作,以及为什么它不工作。这也适用于琐碎的闲聊问题。当被要求解释 JavaScript 闭包时,“它跟范围有关,而且是在函数中实现”,这样的回答就可以让你拿到 90% 的分数。

说你不知道。如果你碰到一个事实(例如,特定语言的边边角角,一个涉及分析运行时的难题),不要不懂装懂。相反应该说“我不确定,但我猜测是这样,因为……”,这个『因为』包括通过展示其它选项的荒谬性来排除它们,或者从其它语言或问题中找到类似的例子。

放慢步调。不要自信地脱口而出一个答案。如果它是正确的,你仍然需要解释它,如果它是错误的,就会显得你很鲁莽。你并没有因为速度快而赢得什么,相反更可能会因为打断她或急于得出结论而惹恼面试官。

摆脱困境

你有时会被卡住。放松。这并不意味着你已经失败了。记住与找到正确答案的能力相比,面试官通常更加关注从不同角度探索问题的能力。就算希望渺茫,也要继续探索不放弃。

画图。别浪费时间光在脑袋里面想 —— 在黑板上思考。画几个不同的测试输入。用手画出如何获得想要的输出。然后思考将你的方法转换成代码。

解决一个更简单的问题。不知道如何找到集合中第四大的项目?先思考如何找到最大项,再看看你能否改变一下方法。

先写一个简单和低效的方法,再想办法去优化它。使用暴力的方法。尽一切努力得到答案。

更加大声说出你的想法。说出你知道的。说说你认为什么可能会工作和为什么它行不通。你可能会意识到它确实有用,或者一个改进的版本会游有用。或者你可能会得到一个提示。

等待提示。不要一脸期待地盯着面试官,只需要停下来“想一下” —— 你的面试官可能已经决定给你一个提示,只是在等待一个时机,避免影响到你。

考虑空间和运行时间的限制。如果你不确定是否能优化解决方案,大声说出你的想法。例如:

“我至少要查看所有的项,所以我不能再优化了。”

“暴力的办法就是测试所有的可能性”

“这个答案将包含 n^2 个项,所以我至少要花这么多时间。”

把你的想法写下来

你很容易让自己陷入混乱。你先集中精神把想法写下来,最后才去关心细节。

调用辅助函数并进行下去。如果你不能很快想到如何实现一部分的算法,不论大小都跳过它。呼叫一个命名合理的辅助函数,声明“这将会完成某事”,并进行下去。如果辅助功能不重要,你完全可以不去实现它。

不要担心语法。只要略过它就好了。如果必须的话请转换成英语。只需要说你会回头看它的。

给自己留下足够的空间。你后面可能要在两行之间添加代码或注释。从白板的顶部开始,在每一行之间留下一个空白行。

为最后的检查做好标记。别担心你的循环应该是 “《” 还是 “《=” 。你可以做一个标记提醒自己最后去检查。只要把整体算法写下来。

使用描述性的变量名称。这样会花一些时间,但会防止你忘记代码正在做的事情。使用 names_to_phone_nums_map 代替 nums。在命名中暗示类型。返回布尔值的函数应该以 “is_ ” 开头。拥有一个列表的变量应该以“s”结尾。选择你能理解的标准并坚持下去。

当你完成后,记得做好善后工作。

你输入一个例子,手动过一遍你的方法,并大声说出你的想法。当程序运行时,你写下变量保存的值 —— 在脑袋里做这些不会给你带来任何加分。这样可以帮你查找问题,并且可以消除面试官对于你正在做什么的疑惑。

查找一开始的错误。你应该在循环中使用“《=”而不是“《”?

测试边界情况。包括空集、单个元素集合或负数等等。加分项:提一下单元测试!

不要觉得麻烦。有些面试官并不在意这些善后步骤。如果你不是很确定这一点,可以这样说:“我通常会用一些边界条件来测试代码 —— 接下来我们要这么做吗?”

实践

最后,处理实际问题是无法替代的。

用纸和笔来编写代码。诚实地面对自己。刚开始可能会觉得很棘手。这没什么。如果你现在能克服这种棘手的问题,等到真正面试的时候,就不会显得笨手笨脚了。

我们遇到的实际问题反映了面试的流程,即当你陷入困境时会得到提示,当你的算法可以进一步优化时也会得到鼓励。

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

    关注

    88

    文章

    3621

    浏览量

    93785
  • 程序员
    +关注

    关注

    4

    文章

    952

    浏览量

    29815
收藏 人收藏

    评论

    相关推荐

    程序员将消失”,李彦宏/黄仁勋都赞同,三大方向可“自救”

    电子发烧友网报道(文/吴子鹏)日前,百度创始人、董事长兼首席执行官李彦宏央视《对话》•开年说的访谈中表示,以后其实不会存在“程序员”这种职业了,因为只要会说话,人人都会具备程序员的能
    的头像 发表于 03-12 00:18 3509次阅读
    “<b class='flag-5'>程序员</b>将消失”,李彦宏/黄仁勋都赞同,三大方向可“自救”

    TMS320C6000程序员指南

    电子发烧友网站提供《TMS320C6000程序员指南.pdf》资料免费下载
    发表于 12-24 17:19 0次下载
    TMS320C6000<b class='flag-5'>程序员</b>指南

    TMS320C55x DSP CPU程序员参考补充

    电子发烧友网站提供《TMS320C55x DSP CPU程序员参考补充.pdf》资料免费下载
    发表于 12-21 11:36 0次下载
    TMS320C55x DSP CPU<b class='flag-5'>程序员</b>参考补充

    UCD3138A64/UCD3138128程序员手册

    电子发烧友网站提供《UCD3138A64/UCD3138128程序员手册.pdf》资料免费下载
    发表于 12-09 14:42 0次下载
    UCD3138A64/UCD3138128<b class='flag-5'>程序员</b>手册

    机械革命发布CODE AI程序员

    近日,英特尔新质生产力技术生态大会在成都举行,机械革命作为重要参展商带来了多款明星产品引爆全场!其中更是AI PC软件生态产品发布分论坛上,Intel、智谱、机械革命三方联合发布了专为程序员设计的CODE AI程序员本,成为本
    的头像 发表于 11-30 10:34 424次阅读

    Linux驱动程序程序员指南

    电子发烧友网站提供《Linux驱动程序程序员指南.pdf》资料免费下载
    发表于 11-22 15:53 0次下载
    Linux驱动<b class='flag-5'>程序</b><b class='flag-5'>程序员</b>指南

    AI编程工具会不会抢程序员饭碗

    AI编程工具可辅助编程,减少手动编码,提升效率,对程序员有积极影响也有挑战。程序员需深化技能、拓宽知识应对。长远看,AI与人类程序员将共生共荣。
    的头像 发表于 11-08 10:17 185次阅读

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

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

    第五届长沙·中国1024程序员节开幕

    据官方媒体报道,10月24日;  第五届长沙·中国1024程序员湖南湘江新区开幕;本次中国1024程序员节以“智能应用新生态”为主题。设置有岳麓对话、技术英雄会、主题峰会及赛事、展览等活动,一场
    的头像 发表于 10-25 15:42 210次阅读

    程序员节视频创意大赛,用串口屏赢取千元大奖

    10月24日,程序员专属的节日里,我们盛大开启“程序员节视频创意大赛”特别活动!这不仅是一场视觉的盛宴,更是智慧与创意的璀璨碰撞。我们诚挚邀请每一位程序员及编程爱好者,拿起你的镜头,记录下那些平凡日子中的不凡瞬间,让编程的魅力与
    的头像 发表于 07-08 10:38 72次阅读
    <b class='flag-5'>程序员</b>节视频创意大赛,用串口屏赢取千元大奖

    程序员节视频创意盛宴,邀您共襄盛举!

    10月24日,程序员专属的节日里,我们盛大开启“程序员节视频创意大赛”特别活动!这不仅是一场视觉的盛宴,更是智慧与创意的璀璨碰撞。我们诚挚邀请每一位程序员及编程爱好者,拿起你的镜头,记录下那些平凡日子中的不凡瞬间,让编程的魅力与
    的头像 发表于 07-04 09:00 67次阅读
    <b class='flag-5'>程序员</b>节视频创意盛宴,邀您共襄盛举!

    适者生存,程序员最终会流向哪……

    程序员没有永远的护城河!!就目前的互联网大环境来看,it行业已经是……
    的头像 发表于 03-11 17:11 419次阅读
    适者生存,<b class='flag-5'>程序员</b>最终会流向哪……

    瑞萨Flash程序员V3 发布说明

    电子发烧友网站提供《瑞萨Flash程序员V3 发布说明.pdf》资料免费下载
    发表于 02-19 09:37 1次下载
    瑞萨Flash<b class='flag-5'>程序员</b>V3 发布说明

    2024程序员的未来方向如何走?还看今朝

    这几年的IT行业想必大家已经感受到了,Android、Java、前端等等程序员都经历了大厂……
    的头像 发表于 02-02 09:45 836次阅读
    2024<b class='flag-5'>程序员</b>的未来方向如何走?还看今朝

    1月18号“纯鸿蒙”千帆启航,程序员预备!

    。 如何正确看待鸿蒙? 我作为程序员来说,首先是看鸿蒙的发展、市场开发岗位、薪资以及前景。 这几年对鸿蒙的发展情况来分析,从2019年开始鸿蒙的出来今天,华为鸿蒙取得了很大的成就。从“不兼容
    发表于 01-16 22:13