技术面试感觉什么都会,面试官一问回答不上来怎么办?

2023-05-16

又到了一年金三银四,回想到很多年前我刚参加工作时的面试经历,那时都是呆呆地等着面试官问问题,被问到一些自己并不熟悉的问题时要不就是思考半天也切不中要点,要不就只能无奈地回答并不清楚了。其实不管是经验不足的初级开发,还是面临更高要求的资深开发,在面试上都会有一样的困扰:如何在掌握的知识有限的情况下,完成好一场高质量的面试呢?

本文最适合以下几种情况的同学参考:

知识面有限的初学者

希望首次加入大公司的开发同学

面临技术深度要求的开发同学

虽然文中主要以后端开发为例介绍技术面试的准备方法,但是和其他岗位的面试也有相似之处,其他朋友也可以作为参考。

两个悲剧的面试故事

小黄去年刚从计算机专业毕业,但是感觉对技术掌握得还不够,就又报名参加了一个培训班,年底刚从培训班毕业,怀揣着精心准备的简历,想到杭州闯一闯。今天上午到了一家装修还不错的公司面试,感觉这家公司窗明桌净,办公桌前都是Mac笔记本加双屏显示器,比昨天面的那家外包公司可好多了,心想一定要好好发挥抓住这个机会。

老王工作五六年了,今年刚从一家不小的公司出来,公司效益不好,年底裁员了,不幸老王在年前的最后一次裁员名单中中奖了。虽然短期内也没什么太大的经济问题,但是之前拿到offer的都是一些没上轨道的小公司,跟之前待过的公司比总感觉是明珠暗投不太甘心。这次面试的公司看上去还满正规的,如果能进去,就算不涨薪,但是心理上落差总是小一点。

小黄按部就班地说完了自己准备的项目介绍,然后面试官就照着简历问了起来。“你熟悉MySQL数据库?”,“对”,“唔...那你能说说MySQL常用的有哪几种存储引擎吗?”,“啊?什么是存储引擎?”。小黄心想,昨天复习了面试宝典里的数据库索引,老师说这个是要点,面试官怎么不按常理出牌呢。“你简历上写了使用过Kafka消息中间件?”,“嗯,对的”,“那你能说说Kafka的拉模型和其他推模型消息中间件的区别吗?”,“...”,“今天面试就到这里,有后续的话HR在一周内会联系你的”。

老王在隔壁的会议室里坐了下来,面试官让老王先介绍一下自己最近比较有代表性的项目,老王大概说了说自己这两年做的一个平台的功能。面试官问:“在这个项目过程中你有碰到什么印象比较深的技术难点或者业务难点吗?”,老王想了一想,感觉一下子有点想不起来。面试官继续问:“刚才你介绍的项目里有说到XXX功能,那在YYY异常情况下如果处理ZZZ问题呢?”。老王心想以前也没考虑过这个,那我就直接现场推敲一下吧,“这里要先这样,对了,那里要那样,不对,这里还有一种情况”。十分钟过去了,老王还在原地兜着圈子,而且丝毫没有停下来的意思。面试官只能打断老王换了一个问题:“那你能介绍一个你有过深入了解的技术吗?”,老王:“我好像这几个都了解一点”。“那关系型数据库中的聚集索引和非聚集索引有什么区别呢?”,“好像这两个的存储方式有点不同,非聚集索引开销会大一点”,“那么为什么非聚集索引开销会比较大呢?”,“这个问题好像要涉及操作系统之类的知识,有点太深了”。40分钟后,老王也结束了面试。

程序员何苦为难程序员?

为什么面试官老是会问一些莫名其妙的问题?我怎么可能了解计算机方面的所有问题呢?为什么他问得这么深,写代码的时候能有什么用?

之前我在一次失败的面试之后总是感觉有点不舒服,我感觉我的水平也是挺不错的,为什么到了面试就总感觉发挥不出,而且老是被“虐”呢?下面我们一起来想想办法。

该怎么办?不打无准备之仗!

如何完成好一场高质量的面试?这是我们在文章一开头提出的问题。首先我们要知道,我们掌握的知识一定是有限的,不管学到了多少,仍然还会有不知道的知识。特别是对技术深度有要求的资深开发岗位,想要面面俱到几乎是一个不可能的任务。但是为什么有些人就能很轻易地拿到offer呢?

首先,我们分析一下一场面试的结构。

面试的结构

一般技术面试都会分为四个部分:项目介绍/自我介绍、技术能力问答、综合能力问答、反向提问环节。而其中前三个部分对面试的成败影响最大。首先,面试一般都会以项目介绍/自我介绍来进行切入,其实技术面试的自我介绍主要也是介绍自己的项目经验。然后会穿插着对技术能力和综合能力的评估,一般这一步都会由之前的项目介绍引申出来。

一般来说,面试官在每个环节希望了解的主要是:

1、项目介绍——基本背景、擅长的业务领域、解决问题的能力、技术层级

2、技术能力问答——技术深度、分析能力、抽象能力、学习能力

3、综合能力问答——工作素养、协作能力、学习素养

虽然看上去眼花缭乱的非常多,其实核心关注的就是几点:技术好、好合作、主动性强

对于大部分面试官来说,一般也不会做太多事前准备和细密的事后分析,大多都是靠一个大概的印象来做出判断的。所以面试的一个诀窍就是:突出亮点。一旦面试中有让人印象深刻的亮点,其他方面只要不是太差一般面试就十拿九稳了。

单点突破

但是很多读者应该和我以前一样,觉得自己好像也没什么亮点啊,总感觉没什么特别的可说。但是通过总结准备,我相信每一个人都可以有自己的亮点,而且是很多个亮点。

首先,我们可以通过总结来得到一份优秀的项目介绍。关键点就在于不能光介绍项目完成的需求,因为这些对于面试官来说并没有什么价值,毕竟我们面的是开发岗位不是产品岗位:)在项目介绍中,我们应该明确描述我们在项目中解决的问题,包括技术难题和业务难题。如何表述可以参考一下现在流行的STAR法则,即在什么情况下(Situation),面临一项什么样的任务(Task),采取了什么样的行动(Action),达到了怎样的结果(Result)。这样的表述可以很好地展示自己的解决问题能力,充分显示了自己在工作中的主动性。

然后,我们还可以通过准备来深挖几个在工作中比较重要的技术点作为“技术亮点”展示,这指的不是仅仅通过“面试宝典”来准备的肤浅的理论知识,而应该是能做到真正的言之有物、切中工作要点的实践性的深入知识点。这一步是本文所有面试准备技巧中唯一对技术水平有要求而且是要求很高的步骤,技术水平不够的朋友可能发愁怎么准备,技术水平比较高的朋友可能又会疑惑到底什么是实践性的深入知识点。大家不用担心,我已经为大家准备好了学习材料或者说是参考样例。大家可以加我的后端架构交流学习群:854613173,里面已经为大家准备好了面试和架构学习视频资料,欢迎大家加群讨论面试问题与技术上的交流与学习。通过学习或参考工作经验较丰富者的总结文章我们可以更容易地获得自己的技术亮点。

实践性的深入知识点的最大特点就是:工作中会使用且可以层层深入形成问题链条。关系型数据库是后端开发离不开的技术,而数据库索引又是程序中的SQL语句执行效率的关键,大家可以通过我之前编写的一系列数据库索引相关的文章来了解一个实践性的深入知识点到底长什么样。后续我也会不断更新更多浅显易懂的高阶技术,有兴趣的朋友可以持续关注一下。下面的文章主要以知识点讲解为主,需要具体的一系列相关面试题的朋友可以在文后留言,如果人数比较多我会考虑另外写一篇文章讲解具体的面试题并链接到对应的知识点。

连点成面

但是有了准备之后,我们怎么能防止面试官问出很多超出我们准备范围的“奇怪”的问题呢?这就需要我们有效地引导和填充整个面试的过程。一般一场技术面试会在40分钟到60分钟,如何完成好一场技术面试的关键就在于如何用亮点来充满这40到60分钟。

一般一个技术亮点会包含一系列层层递进的内容,所以可以问出大概三到五个问题。如果发现面试官不知道应该如何追问,那么你可以简短一些地把后续知识点一次性介绍完。一般这些问题都说完时间就过去了十到十五分钟,而项目介绍和相关的问答会占用大概10分钟。如果我们准备了两个技术亮点,加上前后的一些非技术性问题和反向提问,那么基本上一场面试就圆满地结束了。

那么如何让面试官问出自己想问的问题呢?这就需要我们准备好一个“剧本”了。

首先,面试的开场一定是项目介绍,可以将我们准备好的技术亮点与项目介绍中解决的技术难题结合起来,这样面试官基本都会根据这个点继续往下追问。

其次,我们还可以对简历内容进行特意的编排来诱导面试官主动提出我们准备好的问题。例如在简历中把擅长的技术放在更靠上的位置突出显示,并且增加更多的深入解释。这样不仅可以引起面试官的注意,还能使简历显得更有技术含量,更容易通过筛选。

最后,还可以厚着脸皮主动提出自己对某一个领域比较了解,尝试询问面试官对这一部分有没有兴趣。

通过上述这三点,基本上80%以上的面试就能够顺顺利利地圆满完成了。

问题总结

在掌握了面试的技巧之后,我们再来看看之前小黄和老王到底犯了什么错误,我们也能避免踩坑。

初级开发小黄的问题:

1、惜字如金,没有充分回答问题;

对于面试官提出的“是否用过”“是否了解”这样的问题,应该补充上能够证明自己是内行的解释。

2、等着面试官提问,没有主动地引导。

我们应该主动将问题引导向自己擅长的方面。

资深开发老王的问题:

1、项目经历没有准备;

只讲了项目的功能,而不讲过程中遇到的业务难点和技术难点。

2、过分纠结细节,但是表述又不流畅;

3、问题抓不住重点,从细节开始推敲,反反复复。

表述复杂问题时应该从宏观到微观。先从比较高的层次入手,划分大的模块,确定模块间的交互,然后再逐个模块地细化细节。这样不仅自己能够更容易地解决问题,而且面试官也更容易理解,避免发生即使回答了正确答案但是面试官也不认同的情况。

最后为大家推荐值得深入学习的后端java架构学习路线

一、源码解析:

学习源码中的的经典设计场景,看看大牛是如何写代码的,阅读源码,解析源码是提高核心竞争力最基本能力。


二、分布式架构前沿技术

迎接高并发大数据的挑战,无论是从知识的深度还是广度,我列的分布式架构知识总汇都是目前互联网最前沿最新潮的技术。


三、最热门微服务架构技术

微服务是近几年最热门的话题。作为技术人,想要成为架构师,不断的学习新的技术,了解新的技术走向微服务是必不可少的知识。

四、性能优化

当系统越来越庞大,业务越来越复杂,如何提升性能,不断优化系统性能就是需要不断思考的问题。你能面对一个天天宕机?内存溢出的系统吗?

五、并发编程

看似简单的并发编程,并不是很多人都真正深入透彻的理解其底层原理。当面试如果被问到并发编程相关的内容。你能够轻松的讲下列的并发编程的知识点讲清楚,是可以让面试官仰望你的!最牛逼的面试不是征服面试官,而是让面试官仰望你。

2018已经过去,2019还想一成不变吗?拥抱变化,突破瓶颈,想要学习Java架构技术的朋友可以加我的Java架构社区:854613173,里面每晚都会有阿里技术大牛讲解的最新Java架构技术。并会录制录播视频分享在群公告中,作为给广大朋友的加群的福利——分布式(Dubbo、Redis、RabbitMQ、Netty、RPC、Zookeeper、高并发、高可用架构)/微服务(Spring Boot、Spring Cloud)/源码(Spring、Mybatis)/性能优化(JVM、TomCat、MySQL)

作为一个平民程序员,我不断的总结技术经验,实时学习最前沿的技术,成功入职阿里,你呢?金三银四,你准备好了吗?


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

技术面试感觉什么都会,面试官一问回答不上来怎么办? 的相关文章

  • 桌面上嵌入窗口(桌面日历)原理探索

    摘要 今天在QQ群里有人问怎样实现将自己的窗口嵌入桌面 xff0c 让它和桌面融为一体 xff0c 就像很多桌面日历软件那样 阅读全文 Richard Wei 2012 05 03 22 07 发表评论 转载于 https www cnbl
  • Git中分支merge和rebase的适用场景及区别

    几乎所有的版本控制工具都有branch功能 xff0c branch主要用于以下几个场景 xff1a 1 xff0c 控制产品OEM 基本上做产品 xff0c 不同的客户都会提出多种不同特性需求 xff0c 最简单的例子就是LOGO和标题完
  • sass安装与教程

    首先下载ruby http dlsw baidu com sw search sp soft ff 22711 rubyinstaller V2 2 2 95 setup 1439890355 exe 安装时注意勾选一下选项 安装完ruby
  • 集成学习原理小结

    集成学习 ensemble learning 可以说是现在非常火爆的机器学习方法了 它本身不是一个单独的机器学习算法 xff0c 而是通过构建并结合多个机器学习器来完成学习任务 也就是我们常说的 博采众长 集成学习可以用于分类问题集成 xf
  • 这款APP明确告诉你,无人机在什么地方可以飞

    美国联邦航空管理局 xff08 FAA xff09 为无人机管制推出了一个新的应用 B4UFLY xff0c 用来向用户显示无人机飞行的合法范围 关于如何有效的对无人机飞行进行管制 xff0c 已经是老生常谈的问题了 xff0c 除了制定相
  • 什么是委托?为什么要使用委托?什么是事件?

    1 什么是委托 xff1f 首先声明一个委托 xff1a public delegate string IsLengthFive string s 下面写几个方法 xff1a public string DoWork string a pu
  • 读取多超声波传感器

    读取多超声波传感器 1 背景2 使用教程2 1 接线说明2 2 上传协议 3 ROS节点使用3 1 下载与配置3 3 常见问题 无串口权限 4 更新程序参考资料 该模块是一个开源模块 xff0c 并提供了配套的ROS节点 xff0c 接收串
  • 系统级性能分析工具perf的介绍与使用

    测试环境 xff1a Ubuntu16 04 43 Kernel xff1a 4 4 0 31 系统级性能优化通常包括两个阶段 xff1a 性能剖析 xff08 performance profiling xff09 和代码优化 性能剖析的
  • VR的商業模式

    1 硬件销售 根据Digi Capital预估 xff0c 在5年内 xff0c AR VR将会有数亿量级的用户数 从免费到高端系统 xff0c 硬件销售将获利最多 届时每由AR VR生成的10美元利润 xff0c 就有4美元收入属于硬件销
  • arm汇编基础(转)

    先看个例子 xff1a void test2 int a int b int c int k 61 a j 61 b m 61 c GCC反汇编 xff1a 00000064 lt test2 gt mov ip sp IP 61 SP 保
  • STL学习思想

    1 模版 xff1a 一定要注意参数和返回值的模版 2 STL一系列的API xff1a 一定要注意返回值 3 容器中的都是值拷贝 而不是引用 在执行插入时 内部实行拷贝动作 所以STL中插入类时 一般都必须 xff1a 无参构造函数 拷贝
  • 中国地质大学(北京)软件工程非全2019研究生复试总结

    呼 今早刚出家门就收到地大发来的拟录取通知 xff0c 算是圆满的给2019考研划上了句号 前言 3 26号去参加了中国地质大学 xff08 北京 xff09 软件工程专业非全日制的复试 因为本人初试分数较低 xff0c 调剂的时候报了不少
  • [转载] 职业生涯步步高:一位知名经理人的职业生涯感悟

    这篇5万多字的文章在网上流传甚广 简单考证了一下 应该是出自landy0985 64 天涯之手 最早是07年时发表在天涯上 文章很长 讲了很多东西 找工作的人和考虑自己职业规划的人可以参考一下 分为以下几个部分 序言 第一章 职业生涯扬帆于
  • C语言的源程序有没有主函数,一个c源程序必须包含一个main函数吗

    是的 xff0c 必须包含一个main函数 main函数是程序默认的入口 xff0c 程序的执行是从main函数开始 xff1b 如果没有main函数 xff0c 则编译器不知道程序从哪里开始执行 xff0c 所以一个c源程序有且仅有一个主
  • PX4/PixHawk无人机飞控应用开发

    最近做的一个国防背景的field UAV项目 xff0c 细节不能多谈 xff0c 简单写点技术体会 1 PX4 Pixhawk飞控软件架构简介 PX4是目前最流行的开源飞控板之一 PX4的软件系统实际上就是一个firmware xff0c
  • PID算法终于弄明白原理了,原来就这么简单

    看起来PID高大尚 xff0c 实则我们都是被他的外表所震撼住了 先被别人唬住 xff0c 后被公式唬住 xff0c 由于大多数人高数一点都不会或者遗忘 xff0c 所以再一看公式 xff0c 简直吓死 了解了很浅的原理后 xff0c 结果
  • 开源自主导航小车MickX4(九)基于move_base 的自主导航框架

    开源自主导航小车MickX4 xff08 九 xff09 move base 导航框架 1 move base 导航框架整体分析1 1 map server1 2 AMCL定位1 3 move base 包 2 AMCL 定位 配置2 1
  • 解决莫名其妙出现connection closed的错误

    最近发现使用了springMVC的新项目偶尔出现connection closed 同事反映当访问同一个controller时经常出现类似错误 上回发现在使用 lt context component scan base package 6
  • MathType 6.0 中某些符号不能正确显示 (乱码) , MT Extra (TrueType) 字体问题解决

    MathType中打 符号显示时方框 xff0c 显然是字体的问题 xff0c 上网查了一下 xff0c 解决方案如下 xff1a 在打开MathType 6 0时 xff0c 有时会提示MathType需要安装一个较新版本的MT Extr
  • IC开短路测试(open_short_test),编程器测试接触不良、开短路

    IC开短路测试 open short test 编程器测试接触不良 开短路用的该是这个原理 http kitebee gnway net forum php mod 61 viewthread amp tid 61 69654 IC开短路测

随机推荐