10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

怎样准备技术面试,为何优秀的程序员也会被刷掉?

  • 2019-11-18
  • 本文字数:2018 字

    阅读完需:约 7 分钟

怎样准备技术面试,为何优秀的程序员也会被刷掉?

去年,作为技术 Leader 和主程序员,我面试了超过 100 位的软件工程师职位候选人。


在这篇文章中,我将和你分享候选人在面试中最容易犯的那些错误。我还会和你分享怎样准备这些面试,好让你最大可能通过这些面试。另外,我还会给到一些额外的技巧,它们将帮助你应对这些令人畏惧的技术面试。


首先,我想澄清一下,相比于做程序员,进行面试可以说是另一种技能。你可以是一名优秀的软件工程师,但可能是一名糟糕的面试者。逻辑上来讲,你越擅长软件开发,你就越有可能通过技术面试。但是,这并不能打包票保证你一定能通过绝大数的程序员岗位面试。


在我看来,以下这些是技术面试中,程序员最容易犯的错误:


  1. 由于害怕失败而变得紧张。我们倾向于认为我们的生活或者职业生涯都押注在了这次面试上,押注在这次工作机会上。但事实并非如此!面试不通过也没关系,但是我们不能因为害怕通不过面试就不去面试,也不要把机会都押注在这一次面试上。每次你去面试,你都能学到很多东西。所以,放轻松,不要慌张!实际上,通常只有 10%的机会能够通过面试,所以不要期望太高。提前做好准备,尽力就好,敞开双臂接受任何结果。

  2. 没有为你所申请的公司做准备工作。每个公司都是不一样的,并且各自有其特有的面试流程。我们应当尽可能多的调研这家公司、其创始人、员工、商业模式、产品或者服务、以及它使用的技术等等。确保总是准备好了一系列问题,以此来证明你对这家公司的好奇与兴趣。

  3. 在经历上过分夸大或者撒谎。我们应当对此非常谨慎。正常来讲,面试流程中的所有面试官都会对候选人的信息做前后对比和交叉验证。如果他们发现前后不一致的地方,你将会直接被拒,再不会有其他机会了。所以,不要把自己置身于这个险境。突出一些你成功的地方是可以的,但绝不要撒谎。在你所有的面试中,都要保持真诚、诚实和一致。

  4. 对于非预期的问题随机应变。例如,想象一下你正在面试一个开发者职位,你被问及一个关于系统的问题,你可以通过 3 种方式回应:

  5. 被动式:你可能会说你不了解这个,并且也不解释为何不了解这个,也不说明你所了解的有哪些。这种回答是不会对你有所帮助的。

  6. 激进式:你可能会说这不是你所期望被问及的问题,因为你申请的是软件开发者职位,还暗示面试官换一个问题提问。你这就有些激进了,更糟糕的是,没有人想要和太激进的人一起工作。

  7. 独断式:你可能会说你不了解这个,因为你通常不会做这方面的工作,你有一个系统团队会为你做这方面的工作。但你可以说你很乐意学习这些技能,如果需要从事相关任务的话。

  8. 说前任领导或者前任同事的坏话。这是一个阴暗地带,并且当面试官直接问及时,你很容易就陷入这个阴暗地带。面试中绝不要说起任何人不好的一面,哪怕是你的公司,也不要说起不好的一面。试着尽可能做到客观,找到有建设性的场景。更进一步,可以谈谈积极的一面,如果你离开了他(它)们,你将会错过什么。


以下这些是我个人认为最好的小技巧,它们会最大程度增加你通过技术面试的几率:


  1. 第一条建议相当简单:阅读我的博客,观看我的每周视频。我会分享过去 15 年作为软件工程师、技术 Leader 和技术经理所学到的所有东西。

  2. 第二条建议对于成功真的很关键,特别是当你坐在电脑前,进行现场在线编程或者结对编程面试时特别管用。听着:不要使用鼠标!使用Vim或者 Emacs 编辑器。专业的程序员只使用键盘和这些编辑器。记住这两条,你将会给面试官留下深刻印象。如果你还没有用过 Vim,记得要去练习使用 Vim,因为它很容易上手。

  3. 在白板编程或者结对编程面试中,要和你的面试官交流互动,询问他们,把你的想法告诉他们等等,这很重要。有时候,他们想看到的是你如何思考和推理,你怎样分析问题,以及你怎样和他们一起合作来找到答案。通常,找到答案的这个过程甚至比答案本身更重要。

  4. 意识到面试是一个双向的过程。即便你是被面试的人,你也应该通过某种方式了解你的面试官,了解更多你可能未来要一起工作的团队和公司。你要确保你真的适合那个团队,并且你的价值观和这家公司的价值观是一致的。展示你对这个机构的好奇和兴趣。可以问一些技术上的问题,也可以问一些不那么技术性的问题。

  5. 准备好回答一些基于行为的问题。正如我上篇文章里提到的,当今的公司不希望雇佣聪明的书呆子。这就是为什么这些“文化适配”的面试在大部分初创公司里很常见。他们想知道你过去怎样应对各种不同的工作情形。本质上,他们想要确定你的职业观是否和他们的一致。想想你过去做过的相关场景,正面的(例如:关于影响力)和不那么正面的(例如,关于失败)。带着具体的例子来回答是很重要的,尽可能多的包含细节,而不要泛泛而谈,泛泛而谈的东西不会给面试官提供任何信息。


综上,我想强调的是,参加面试,就像其他任何技能一样,需要准备和练习。你练习得越多,你通过面试的可能性就越大。


让我用我的一句座右铭来总结:


“对于软件工程师来讲,最重要的能力是他们开发出软技能的能力。”

原文链接

How to prepare a technical interview (and why good programmers also fail)


2019-11-18 10:496898
用户头像
小智 让所有人认同的文字称不上表达

发布了 408 篇内容, 共 403.8 次阅读, 收获喜欢 1986 次。

关注

评论

发布
暂无评论
发现更多内容

1业务架构作业

梁山伯

ha集群是什么意思?一般有几个节点?

行云管家

高可用 ha ha集群

Webpack完整打包流程分析

Geek_02d948

webpack

彻底搞懂JS原型与原型链

hellocoder2029

JavaScript

模块一

GeekMLS

构架

Vue3知识点之数据侦测

yyds2026

Vue

《中国指标中台市场研究报告》线上发布会

Kyligence

数据分析 指标中台

2022年11月国产数据库大事记-墨天轮

墨天轮

数据库 tdsql 国产数据库 达梦 polarDB

Vue3必会技巧-自定义Hooks

yyds2026

Vue

React组件复用的技巧

夏天的味道123

React

5年经验年薪百万,一位阿里P8分享自己的成长干货

钟奕礼

Java java面试 java编程 程序员、

2023年北京企业办理备案流程详解

行云管家

等保 等保备案 北京

细说JavaScript闭包

hellocoder2029

JavaScript

事关紧急!每个运维人员都应该了解的工作

嘉为蓝鲸

自动化运维 嘉为蓝鲸 AD防护

Webpack中的高级特性

Geek_02d948

webpack

不知如何优选达人?火山引擎VeDI零售行业解决方案一键解决!

字节跳动数据平台

大数据 数据分析 营销 12 月 PK 榜

React组件复用的发展史

夏天的味道123

React

用 nodejs 搭建脚手架

coder2028

node.js

上帝视角一览大数据开发体系

JAVA旭阳

Java 大数据

Java程序员开发3年如何能拿到年薪40W?(强烈推荐涨薪必备)

钟奕礼

Java 程序员 java面试 java编程

还在写代码处理映射关系? 动动手指,MatrixDB 4.4 轻松让 JSON 入表!

YMatrix 超融合数据库

kafka 产品发布 超融合数据库 YMatrix MatrixGate

阿里p8私藏MyBatis笔记,从入门到精通,纵享源码细节

钟奕礼

Java 程序员 java面试 java编程

龙蜥大讲堂12月预告来了!来自统信软件、移动云和浪潮信息等多位技术专家在线分享

OpenAnolis小助手

ebpf 移动云 龙蜥大讲堂 直播预告 统信软件

Vue中的diff算法深度解析

yyds2026

Vue

理解Nodejs中的进程间通信

coder2028

node.js

理解NodeJS多进程

coder2028

node.js

手写vue-router核心原理

hellocoder2029

JavaScript

React高级特性之Context

夏天的味道123

React

Webpack插件核心原理

Geek_02d948

webpack

怎样准备技术面试,为何优秀的程序员也会被刷掉?_文化 & 方法_Rafa Paez_InfoQ精选文章