百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

程序员面试技巧:一起去面试,公司用他而不用你,注意这三个点

haoteby 2025-03-01 14:00 14 浏览

如果能多了解一些面试的基本知识,可以帮助你在面试中对自身有更准确的定位,并且能提升你的面试技巧。

由于不知道面试官对面试者的衡量标准,许多我曾面试过的候选人在面试中表现得差强人意。虽然不同的面试官有自己不同的衡量标准,但这些标准间也存在一些共通之处。如果能多了解一些面试的基本知识,可以帮助你在面试中对自身有更准确的定位,并且能提升你的面试技巧。

我在interviewing.io(译者注:美国一个在线技术面试平台)上会根据三个方面来评价面试候选人的表现。我认为这三方面基本代表了各家公司对你的评价的依据。即便这三方面的能力没有在面试中直接被考察,它们也会影响面试官对你的总体评估。

技术能力、问题解决能力,沟通能力虽然我需要对以上每一种能力分别评分,但这三个方面的能力其实是紧密地联系在一起的。如果一个候选人缺乏其中的一项能力,他往往也会欠缺另外两方面的能力。让我们一起看看每种能力都有什么独有的特征。

技术能力

我对应聘者的技术能力主要考量两个方面。第一是你在编码习惯用法和知识方面的经验,你是否知道什么是可能实现的,以及如何对其进行编码?第二是具体的语言能力,当你明白了你想做的事情后,你能用你使用的编程语言把它实现得多好。

第一方面是关于你的一般编码知识。你是否了解数据结构,程序流程以及编程语言能够执行的所有操作?这些知识就像是你的工具箱,会影响你解决问题的能力,而你的编程设计是否有效,则取决于这些工具是否可用。

我在这里会根据应聘者的犹豫程度或是否快速回应来评估他们。但我并不是在评价速度本身,而是会将速度作为候选人对自己工具的熟练程度的指标。我同样会听你的表达方式,看看你的声音是信心十足,还是带着疑问需要向我寻求肯定。

第二方面是考察你对具体编程语言的语法和语义的了解,这与第一方面联系极为紧密。因为我是主要通过观察你是如何在代码中表达自身想法,从而了解你对一般编码知识的掌握。如果你需要费尽心机才能编写出一个循环,那么我需要确认这是因为你不懂编程语言,还是你不确定循环应当如何应用于这个问题。

我会考量你是否有能力将你的想法顺畅地转化成代码。以我的纸牌游戏问题为例,有一个阶段是处理发牌,在这一阶段中你必须将纸牌分成两叠,每个玩家一叠。无论你是选择使用循环,还是高级拆分功能,你都应该能够顺畅地编写出这段代码。如果你编写了错误的代码、忘记了循环的工作原理,或是使用了错误的拆分语法,都会导致面试官对你产生负面的评价。

我不会因为一个人犯错而惩罚一个应聘者,因为错误总是会发生。但是,若是出现相似的错误,或重复出现同样的错误,会让我认为你缺乏相应的知识。如果我发现了一个错误,我可能会忽略它,也可能会就这一代码错误向你提问。如果你能够认出自己的错误,会让面试官对你的能力做出正面评价。

编程语言有很多特性,而我会考量你是否能够恰当的使用它们。例如你是否在使用枚举和常量?你是否能够创建一个结构来封装值?你是否通过值或引用正确地传递了变量?你是否使用了标准错误机制?

我不期望应聘者能够了解所有与编程相关的知识,但我希望他们可以了解所有的基本知识。对于自称对使用某编程语言有经验的应聘者,我会考察他们一些常用的习惯用法。例如,在Python语言中,我会考察他们对列表解析(list comprehension)和字典的使用。在C ++语言中,我会考察他们对智能指针和(可能)lambda函数的了解。如果一位应聘者的代码中没有任何常用的编程语言习惯用法,那么他很可能并没有使用该编程语言的经验。

沟通能力

正确地把你的想法表达出来能确保我对你做出准确的评价。有的应聘者做不到这一点,他的表现就会劣于其他候选人。表达流畅能提升我对你的沟通能力的评价,同时也确保面试进行得更加顺利,并有助于你准时写完代码。

如果你在面试中写的代码中有些错误,良好的沟通也能为这种错误起到缓冲作用。如果你仅仅写完代码,那我就只能通过代码来衡量你的能力。如果你与我沟通自己是如何写这段代码的,即便这段代码写错了,我也能理解你的思路。

但你的沟通方式如果是仅仅把所写的代码念给我听,那将毫无裨益。我自己也能看代码。你应该把沟通的重点放在代码中无法体现出来的,编程者在代码背后的思考。有许多应聘者知道在面试时应该多沟通交流,但我觉得他们不知道应该说些什么。因此他们最终选择直接再念一遍自己所写的代码。你要学会和他人分享你写代码时的思路,但这需要多加练习。

注意使用编程术语。你应该知道如何使用行业术语来谈论软件。你的编程术语会透露出你的经验是否充足,也会表现出你对细节的关注程度。我想要听到具体的东西,比如实例变量、常量值和使用参数调用函数。我想听到你说“从堆栈中取出数据和枚举一个Map中的所有元素”,而不是听到“用这个东西做这个”之类的话。

我也不想听到你在面试中使用时髦术语。也不要使用一些你不懂的专业术语,或对一些专业术语不懂装懂。不诚实是面试中的一大危险信号,不要以为你能侥幸逃脱不被面试官看出来。我和那些在人力资源部门工作的大多数人以及做过大量招聘工作的许多程序员一样,都很擅长发现胡话连篇的人。

你不需要担心自己有很多不懂的东西。我会根据你的经验和水平来调整对你的预期。初级程序员没有接触过很多概念是很正常的。你需要保持开放的心态,做个诚实的人,并保有好奇之心。然而,我对一个有十年以上工作经验的面试者的心理预期会更高。

面试是一个互动过程,良好的沟通可以让我们处在同一频道上。不良的沟通往往会导致我对你解决问题的能力和编程能力产生误解。我越了解你的想法,就越能帮助你解决问题。

问题解决能力

问题解决能力是从代码编写中体现出的一种抽象的能力。我想了解你编写代码的整个过程,而非仅仅是一个结果。这就要求你知道问题是什么,以及对何种有效的解决方案会被我认可有着清晰的认识。解决问题的关键很大部分在于定义约束条件,找到模糊或不确定的地方,并加以解决。

不同问题设置的挑战也不尽相同。例如我的纸牌游戏问题2要求你编写一个小型的仿真游戏。我想看到的是你如何解决问题,我还想看到的是你会提出问题。例如“纸牌”到底是什么,你又会用什么代表它?“发牌”又具体是什么意思?

解决问题的关键在于接收到高层次的需求并将其转化为具体的步骤。如果你正在做一个项目,那么问题解决的阶段就是你编写用户故事和用户旅程的阶段。你不一定要在面试中很刻意地体现这个阶段,但我想知道你是否对要求有所了解。你得告诉我你的想法并写下其中的重点。

你需要展示出解决问题的时候你的输入和输出内容分别是什么。你需要说明你是在转换数据还是实施一个流程。你还需要描述你是如何将大问题分解为较小的问题的。就一个算法问题来说,你需要指出所应用的相关算法,并告诉我如何让它们适用这种新情况。

你要明确你识别出了哪些部分,以及它们与你之前所做的有何相似之处。如果有一块白板,请你在上面勾画出流程、数据集和你想到的任何其他内容。尤其当你遇到难题的时候,我想知道你是如何解决这一难题的,永远不要只是沉默而茫然地盯着我。我在这里是为了向你提供帮助,但是如果我无法理解你的思考过程,那么我将无法帮助你。

另外,绝对不要将解决问题视为一个阶段。我并不指望你在面试开始时就能提出完美的解决方案。但我想看到的是,你产生了一个想法并将其付诸实践,这其中可能会产生问题,需要纠正。我甚至会更改对你的提出的需求,或者批评你的方法,但我希望你能接受这些改变并适应它们。

结束语

一般来说,缺乏沟通技巧或解决问题的能力会导致应聘者的面试失败。我想不到有什么公司会想要雇佣一个缺乏这两种能力的人。当然在某些特定情形中,也许会聘用一些缺乏这两种能力但具备某些冷门技术的人。但即便如此,你也需要和其他候选人竞争。

还有一些人虽然可以编写基础代码,但是无法把已掌握的知识融会贯通地应用到新情况中。他们看上去掌握了一种新的方法,但其实并不理解这种方法背后的逻辑。我不能保证我在面试中根据观察到的情况从而对应聘者产生的印象都是正确的,所以应聘者在面试中充分地展示他们的能力是非常重要的。

你可能想知道如何在面试中展示自己的这些能力。显然,要提高其中任何一种能力都需要不断的练习和学习。但是要在面试中全部展示出来则需要平衡好。不要让你的脑子陷在代码中,要表达出你的想法,这是展示你的知识储备和问题解决能力的关键方法。不要担心会暴露你的知识的局限性,相反,要开诚布公,展示你是如何解决问题的。多和面试官交流。也可以利用白板来进行图示。

你要清醒地意识到自己被评估,从三个主要方面:解决问题能力、技术能力和沟通能力。

想要在程序员生涯内有更高的成就的话,C/C++就是一个既可以强化思维能力,又可以打好编程基础的编程语言,将来想要做软件开发,有一份好的前景的话,学习C/C++的话笔者有一个C/C++的编程俩千人羣(Q艘索:C/C++编程学习13)群,你如果感觉自学C/C++语言有困难的话,有兴趣学习或者了解一下C/C++编程的小伙伴就可以进来交流。


相关推荐

Python爬虫进阶教程(二):线程、协程

简介线程线程也叫轻量级进程,它是一个基本的CPU执行单元,也是程序执行过程中的最小单元,由线程ID、程序计数器、寄存器集合和堆栈共同组成。线程的引入减小了程序并发执行时的开销,提高了操作系统的并发性能...

A320-V2500发动机系统FADEC介绍(2)

目的全权数字发动机控制(FADEC)系统在所有飞行和运行阶段提供全范围发动机控制。...

三国志战棋版:玩家“二叔”用这套群DOT在比武中拿下31胜5负

声明:本文首发于今日头条,而后发布于“鼎叔闯三棋”的微信公众号、抖音、哔哩哔哩和小红书平台,如果在其他平台就是抄袭。...

真正的独一无二:Dot One 推出 DNA 定制系列 139英镑起

相信很多人在挑选衣物时有着这样的困扰,综合了性价比、面料等因素后好不容易找到了心仪的款式,还要担心是否会撞衫,不管是擦肩而过的陌生人还是身边的熟人,都令人尴尬。小部分人为此热衷于购买少量的古着或者限量...

崩铁:周年庆福利再升级,老角色加强时间确定,3.xdot体系反转

#埃安UT大一圈高级很多#...

Dotgo推出RBMHub,扩大了CPaaS提供商的覆盖范围和功能

据telecompaper网7月15日报道,用于商业消息传递的RichCommunicationServices(RCS)解决方案的领先提供商Dotgo宣布推出RBMHub。RBMHub的推出扩大了C...

深度解析:快照取消Dot职业的将何去何从

写在前面曾几何时,术士的出现便被冠以dot大师的名头,从远古时期的献祭腐蚀虹吸不如暗牧一个痛,到TBC上满dot=荣誉击杀+1,到wlk接近全暴击的冰晶腐蚀,再到CTM就算了吧MOP的各种变态吸x放...

星穹铁道:抽卡芙卡之前,你必须了解什么是dot!

卡妈终于上线了,可还是有很多人不明白什么是dot伤害,抽了卡妈直接玩起了直伤流,把一个持续伤害的引爆器玩成了打手,卡妈打dot伤害是远高于直伤的,有了卡妈的玩家一直了解dot,不然这卡妈就真被玩成四不...

游戏界的闪耀星辰陨落:悼念知名游戏博主″dotα牛娃″

无尽哀思!在数字时代浪潮中,游戏不仅是消遣娱乐的代名词,更是连接心灵的桥梁,构筑了无数人的青春回忆。在这片浩瀚无垠的游戏宇宙中,有这样一位博主,他以独特的风采、深邃的洞察力和无尽的热情,成为了玩家心中...

直击2017新加坡同性恋聚会Pink Dot,自由爱!

今年的“粉红点”又来啦~这个支持LGBT群体(男女同志、双性恋、跨性别等)群体的活动,从2009年起,已经在新加坡举办8年了!”这个非营利的同性恋权益活动,主要是希望大家了解到,不管一个人的性倾向或...

python-dotenv,一款超级实用处理环境变量python库

python-dotenv,一款超级实用处理环境变量python库python-dotenv概述:...

亚马逊语音助手毫无征兆发笑 诡异至极吓坏用户

来源:新华网美国电商亚马逊7日承诺,将更改名下“亚历克萨”语音系统设置,令它不会莫名发笑,免得吓坏用户。“亚历克萨”是亚马逊开发的语音助手软件,可服从用户语音指令完成对话、播放音乐等任务。依照原来设计...

2022最火英文网名男女生

精选好听英文昵称带翻译1.moveon(离开)2.Monster(怪物)3.Solo吉他手4.Finish.(散场)...

智能家具 RecycleDot 的出现给传统家具厂商带来新的挑战

从可穿戴手环、手表到智能衣服,智能硬件逐步渗透到每一个领域。最近有一对父子MikeSandru和JohnSandru在自家的车库中设计了一款智能家具RecycleDot,给日渐萧条的家具行...

欧洲通信卫星公司 OneWeb 敦促印度DoT尽早批准提供卫星宽带服务

据telecomtalk2月17日报道,欧洲通信卫星公司EutelsatOneWeb近日敦促印度电信部(DoT)尽快批准其在印度部署双地球站网关的计划,以便连接其近地轨道(LEO)全球卫星星座,并...