年后跳槽季,如何在编程面试中大获成功?

【CSDN 编者按】作为技术人,在面向编程面试之前,应该如何进行相应的准备?

作者 | Noj Vek  译者 | 弯月

责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

本文的作者经历过100多场面试,而且也担任过50多场面试的面试官,我们一起来看一看他从面试者与面试官双向的角度总结出的面试经验。

面试

从提交申请到正式入职,通常我们会经历3-5次面试。首先是HR经理的电话面试,接着还有几场技术面试。一位求职人员在一家公司的面试中花费的时间平均为8个小时左右。面试的目的是为某个职位寻找合适的技术人员,并从他们身上获取高于薪资的价值。

根据形式不同,一场面试通常需要45分钟~1个半小时。我的一位经理曾说:“你必须搞清楚面前这个人是否值一辆兰博基尼,因为公司每年在这个人身上投入的资金超过了一辆兰博基尼,即20万~30万美金(包括办公室租金+各项福利)。”

我经常问自己,我们可以透过求职者身上的哪些特质判断出他将有长期的良好表现?我选对人了吗?

免责声明

 

虽然我经历过100多场面试,而且也担任过50多场面试的面试官,但是这个数据量远远不够。再者,我们很难通过短短一个小时的面试判断某个人是否能够在接下来几年中给出优异的表现。很多时候,不是因为求职者不够优秀,而是公司未能很好地引导他们,或未能让他们发挥出最佳水平。

求职者只有在面试中有十分出彩的表现,才能取得成功。面试失败的时候,我得到最多的答复是:“我们没有从你身上看多太多亮点。”

哪些因素有助于取得面试成功?

 

在我看来,最有利的因素有三个:

  1. 良好的人品;

  2. 适合的技术经验;

  3. 解决难题的能力。

简历

作为面试官,一般我都会在面试前仔细阅读两遍简历。作为面试者,我很讨厌那些根本不看我简历,却占用我的时间的面试官。通常,在简历中写:“努力工作,注重结果”之类的言辞,基本没什么用。为了突出自己,你必须更具体:“我参与了项目X,在其中负责工作Y,最后取得了结果Z。”

如果求职者在简历中写明GitHub链接,我就会去看他们的GitHub,看看他们都构建了哪些产品。即便他们不是编程高手,但至少证明他们能够写代码,而且能够与其他人合作,完成工作。

推荐

如果你信得过某个人,那么他的话在你这里一定很有分量。尤其是当你给某人写推荐信时,一定要说清楚:“你是否曾经与这个人共事,你觉得他能够胜任这项工作吗?”而作为面试官,我也会打电话给推荐人,问问他们:“他的表现如何?你愿意再次和他合作吗?”

以上是面试之前需要做好的准备,下面我们来看一看实际的面试。

编程面试

 

根据我的经验,能否给出正确答案与在工作中是否有良好的表现,二者之间的联系并不大。然而我发现,面试者找到解决方案的方式之间有一些共同点。

举个例子:编写一个函数,将整数(比如100)转换成“one hundread”。我发现,是否掌握了处理复杂数据结构的编程技巧,与实际工作中的长期表现之间几乎没有联系。通常在日常工作中,你只需要完成基本的工作。

技巧1:澄清问题

面试者是否注意到了问题的范围?这个数字有多大,是否可以为负数?如果是动态语言,则“只考虑数字的情况吗?小数和分数呢?”

绝大多数的实际问题都是模棱两可的,深入挖掘基础的问题,澄清范围,这一点非常关键。

技巧2:讨论各种可行的方式,总结出大致计划

优秀的面试者不会上来就直接编写代码,他们会解释自己的方法和思维模型。这意味着他们愿意在动手编写代码之前,与他人合作,探讨可行的方式。这个时候,你可以利用白板,或者在纸上画出来也可以。

大多数的实际问题都需要团队达成一致。能够与他人交流你的想法,说明每种方式的优缺点,这一点非常重要。

很多大问题都没有正确答案,你需要权衡利弊。能够统一取舍很重要。

技巧3:使用自己熟悉的环境

在白板上编写代码其实并不好,白板上的算法与实际的日常工作有很大的区别。在coderpad.io中编写代码也很麻烦,因为它们没有自动补齐,不会自动整理格式。绝大多数工程师都有自己的IDE:vscode、sublime、vim等。

我发现,让面试者使用自己熟悉的环境,他们的表现往往会更出色。当然,这个环境依然是面试专用的环境,他们仍然有时间的压力,但是这更接近实际的工作。

我做了一项A/B测试,针对同一个问题,让面试者使用他们的电脑,共享屏幕,然后分别使用coderpad.io和sandbox.io。结果发现,在前端开发的问题中,使用sandbox.io的面试者的表现更好,因为阻碍他们尽快开始编程的问题更少。

面试者使用自己电脑,共享屏幕,克隆代码库,这也是一个很好的技巧。coderpad.io能做的事情很少。通过让面试者克隆代码库,可以看出面试者是否能够快速适应一个不熟悉的代码库。

在Google的面试中,他们让我在Google文档中编写代码。这种做法一点都不好。根据我的经验,Stripe的面试过程不错。在面试中,你可以将GitHub代码库checkout出来,然后在自己的电脑上,用自己最喜欢的IDE打开代码。

技巧4:写代码 -> 运行 ->调试

编写完一段小代码后,你应该试着运行一下,看看能否得出正确的结果。面试者可以通过这个迭代找出小错误,从而在面试中有更好的表现。有的面试者一直在写代码,从来都不运行,直到面试结束。结果,最后运行的时候,代码编译不过去或出错。

表格测试也是一个很不错的技巧。你可以编写一个数组:[[输入,输出],[输入,输出],[输入,输出],...],然后传递给一个简单的测试函数。看到测试用例和代码复杂度的变化,面试官也会很高兴。

总结

 

我们必须通过编程问题和接近实际的工作环境来测试候选人。同时,我们应该更加重视之前的经验。

话虽这么说,面试并不能代表一切,有时候我们需要花费一两年的时间,才能深入理解整个代码库,因此我们必须将眼光放长远。

原文链接:https://nojvek.substack.com/p/how-to-make-coding-interviews-better

声明:本文为 CSDN 翻译,转载需注明来源。

更多阅读推荐

  • 都在说云原生,它的技术图谱你真的了解吗?

  • SRE 是如何保障稳定性的

  • 如何写出让 CPU 跑得更快的代码?

  • Serverless 在 SaaS 领域的最佳实践

  • 云原生人物志|Pulsar翟佳:社区的信任最重要

  • 阿里的 RocketMQ 如何让双十一峰值之下0故障

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/515572.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HbuilderX中 华为手机 真机调试

文章目录一、场景浮现1. 真机运行2. 问题描述二、解决方案2.1. 终端设置2.2. 开启开发者模式2.3. 开启USB调试2.4. 连接模式选择2.5. 重新运行2.6. 选择设备2.7. 手机真机调试一、场景浮现 1. 真机运行 直接运行Hbuilder中的“运行”,无法显示对应设备 2. 问题描述…

一云多端,连接万物:智能接入网关2.0升级技术揭秘

一云多端,连接万物:全新发布SAG-APP和SAG-vCPE 阿里云提供了多种产品形态支持各种场景上云,SAG2.0发布了SAG-APP支持各种操作系统的终端接入上云,同时发布了SAG-vCPE支持3rd云资源通过虚拟机或容器环境接入阿里云,本次…

网上购物商城 html+css+MVC+sql server+idea编辑器实现。

最近又找到了jsp学习结束后时,最后做的一个网上购物商城小项目,总体分为用户和管理员两个模块,用户注册之后登录,进行商品浏览加购物车并购买评价,管理员负责商品的增删查改以及订单的发货等等,可以说功能比…

幕享手机投屏

前提:手机电脑连接同一个局域网或者无线网 https://letsview.cn/

通俗的讲,这就是容器CPU隔离的底层实现机制

来源 | 刘超的通俗云计算责编 | 寇雪芹头图 | 下载于视觉中国在真正的生产实践过程中,对于CPU的隔离要求比容器的默认策略要严格的多,因而需要对于Linux内核底层机制有所理解,才能很好的做CPU隔离,甚至在离线业务混合部署隔离等策…

OAM创始团队:揭秘OAMKubernetes实现核心原理

作者 | Andy Shi(阿里云高级技术专家)、天元(阿里云技术专家) 今年 5 月,阿里云和微软云共同宣布,Open Application Model (OAM) 社区携手知名混合云管理项目 Crossplane 社区&…

一文读懂人类信息存储进化史

感兴趣的同学,欢迎点击查看详情哦 在很久很久以前 那个时代语言和文字还没出现 人们的还都是通过“呜呜呜”的方式来进行沟通 但是事情还是得记的 因此“结绳记事”这种方法开始在人群里开始流行 但是,事情总归是越来越多,结也会越来越多 到最…

node+express创建第一个node项目

一、安装nodejs 1.到官网下载nodejs安装包 中文官网地址:http://nodejs.cn/ 英文官网地址:https://nodejs.org/en/ 根据自己的系统和版本,选择下载对应的安装包! 下面的安装以windows 64 位系统版本安装包为例! 2.双…

听一个内行人讲云原生简史

作者 | 吕建伟责编 | 寇雪芹头图 | 下载于视觉中国引子1999年,发生在我自己身上的几件事:1、买了两张盗版光盘:Sun Solaris OS、红帽Linux。2、正在用COM、MTS,开发三层架构的局域网内的大型企业商用套件,由Windows客户…

一个连续创业者的不破不立——对话阿里云MVP蒋烁淼

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 简介: 他是公认的“湖畔第一大脑”,被王坚院士称为“云计算的试飞员”。跟他聊下来,仿佛上…

node+express项目链接MySQL数据库(最简单版)

nodeexpress项目链接MySQL数据库(最简单版) (假定你nodeexpress项目已创建完成,可参照这里) 第一步、安装mysql驱动 npm install mysql --save-dev第二部、创建数据库表 第三部、连接数据库 在app.js下写入以下代码…

阿里云量产50家独角兽前夜

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 在阿里云SaaS加速器出现前后,中国的IT史上其实出现过各式各样的加速器、训练营。究竟在加速什么?怎么…

企业微信_H5应用如何真机调试_host配置及代理相关

文章目录三、手机调试3.1. 代理软件3.2. 安装,启动3.3. 连接无线网3.4. 代理端口3.5. 手机连接无线网3.6. 设置代理3.7. 代理允许3.8. 手机企微登录3.9. 效果图3.10. 代理监控三、手机调试 手机电脑需要连接同一个无线网或者局域网 3.1. 代理软件 下载代理软件 cha…

关于容器底层,超详细的 Namespace 机制讲解

来源 | 多选参数责编 | 寇雪芹头图 | 下载于视觉中国NamespaceLinux Namespace 是 Linux 提供的一种内核级别环境隔离的方法。这种隔离机制和 chroot 很类似,chroot 是把某个目录修改为根目录,从而无法访问外部的内容。Linux Namesapce 在此基础之上&…

从零入门Serverless|一文搞懂函数计算及其工作原理

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 什么是函数计算? 大家都了解,Serverless 并不是没有服务器,而是开发者不再需要关心服务器…

在线视频面试业务融合阿里云,助您找到心仪好工作

“您好,可以听到吗?“ “……. 您…好,我…这里画面卡顿….了!” “…..不好意….思,能重复一下您刚才的描述吗吗吗,没听太清….楚…………..” “哎,感觉这次又糊了,这已经是我的第…

HbuilderX中 真机调试 Android IOS

文章目录一、Android二、IOS2.1. 运行到IOS2.2. 打开调试模式一、Android HbuilderX中 Android 真机调试 二、IOS 2.1. 运行到IOS 2.2. 打开调试模式

终于有人把Python讲清楚了!!

从事Python开发的这些年中,我见过很多相关的教程和书籍,他们大都这样讲 :先介绍 Python 的基本语法规则、list、dict、tuple 等数据结构,然后再介绍字符串处理和正则表达式,介绍文件等IO操作.... 就这样一点一点往下说…

浪迹天涯的骨灰级开源爱好者——对话阿里云MVP吴晟

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 简介: 吴晟是我见过最“浪”的程序员,喜欢买买买,热爱公路自驾。格子间拘不住他向往自由的…