高效“背诵”面试题的三定法则

2024-02-18 17:50

本文主要是介绍高效“背诵”面试题的三定法则,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

程序员求职时,在准备阶段都要“背诵”大量的技术面试题,以应对各路精明面试官的百般折磨。
这里我把“背诵”一词加上了引号,意指此处的“背诵”可不是一般的背诵。如果你以为我要教你过目不忘记的背诵技巧,那可能会让你失望了。
请允许我先自卖自夸一波。作为程序员老兵,混迹江湖多年,被面试官们无情地伤害过,也作为面试官无情地“伤害”过很多人(一阵奸笑声飘过)。

现在,我将总结出一套无敌的面试题“背诵”方法论,分享给在座的各位。帮助大家早日脱离茫茫题海、抵达成功的彼岸。
小板凳坐好了,小本本快铺开,我要开讲了。先上图,建议收藏。
高效“背诵”面试题的三定法则

如此高大上的高效“背诵”面试题的三定法则,没错,就是我的原创,请允许我“高调”地逐一解读给大家听。

一、确定题目类型
把海量的技术面试题,进行分类。你会惊奇地发现,这些面试题无非就是这三大类,分别是:

  • 有固定答案的封闭式问题

  • 考你理解深度的开放式问题

  • 考你编程能力的逻辑算法题
    举例说明:

  • 题目1:Vue 的生命周期有哪些?

  • 题目2:请谈一谈你对 MVVM / MVC / MVP 的理解。

  • 题目3:请用 js 计算 1 ~ 10000 中出现的 0 的次数。
    不难发现:

  • 题目1是有固定答案的封闭式面试题;

  • 题目2开放式题目,侧重考你的理解深度;

  • 题目3就是典型的逻辑算法题了。
    因此,在你“背诵”面试题的第一步,你首先要搞清楚的就是题目类型。不同类型的题目,预示着你需要搭建不同结构的知识体系,你需要提取不同深度的知识重点。

二、制定答题框架
当确定了面试题题目类型以后,就可以开始制定“背诵”框架了,下面举例说明。
以 题目1 为例:
题目1是一道有固定答案的封闭式题目,你可以使用并列式结构来提取面试题中的知识要点。
举例:在初始化阶段有 beforeCreate、created,在挂载阶段有 beforeMount、mounted,在更新阶段有 ……
你还可以使用递进式结构来提取面试题中的知识要点。
举例:Vue生命周期总共有 11 个,常用的有 8 个,分为初始化、挂载、更新和销毁这 4个阶段。工作中我常用的有 created、mounted、beforeDestroy 这三个,created里我常用来触发调api 接口,mounted 中我常用来执行 DOM 更新后的相关逻辑操作,比如开启定时器等,beforeDestroy 中,我常用来清除定时器、清除Vuex中缓存等。良好地理解生命周期,可以帮助我们高效地解决工作中的若干bug,比如……
当你有了这种 框架结构式的答题思维 以后,我们在准备面试题、背诵面试题时,就可以刻意地从大段大段的答案中提取出重点知识,而不是像背课文一般死记硬背。这种结构化的背题方式,不仅效率高,而且记忆更持久。
事实上,用人单位和面试官需要的是一个有逻辑的程序员,而不只是一个“能背诵”的“记忆力大师”。
以 题目2 为例:
题目2是一道开放式题目,你采用 并列式结构 来准备面试题,那么你只用分条说明白 MVVM、MVC 和 MVP 即可。
如果你采用 递进式结构 来准备,你可以先从前端框架发展史的角度讲一讲 3 种架构模式的各自特点,再讲一讲彼此的优势和劣势,最后谈一谈你对 MVVM 的深入理解。
以 题目3 为例:
题目3是一道逻辑算法题,你可以采用 顺承式结构 来准备。要完成这道算法题,你该怎样写代码,你的思路是怎样的。第1步干什么,第2步干什么,第3步干什么……这有点“面向过程编程”的味道了。即使你无法在白纸上手写出正确代码,你仍然可以借助伪代码来展示你的解题思路和详细步骤。
你还可以采用 并列式结构 来准备这道题,即你有 N 种解题思路,逐一把它们说清楚。
如果采用 递进式结构 来准备,你除了要逐一说出解题思路,还要对这 N 种解题方案进行优劣分析,最后指出你的终极选择、并解释为什么。

从上面三个例子可以发现,只要你清楚了题目类型,你就可以灵活地选择 3 种不同的答题框架来准备面试题。并列式结构强调对重点知识的提取与罗列,递进式结构要求你能够由浅入深、层层升级,顺承式结构要求你有较强的过程化思维、知道先做什么再做什么。你学会了吗?

三、淡定应对追问
在技术面试过程中,有经验的面试官都会不断地追问。比如,当你回答了“Vue常用生命周期”后,面试官可能会追问——“请问在 beforeMount 和 mounted 之间,Vue在后台做了哪些工作?”。
举个例子,我可以采用 顺承式结构 来回答这个问题。我说:“beforeMount 和 mounted 之间,Vue在后台做了 3 件事。第1步,当声明式 data 发生变化时,Vue先是生成一个新的虚拟DOM副本。第2步,Vue将对内存中的这两个虚拟DOM执行 diff 运算,找出 data变化前后的最小差异。第3步,Vue使用真实的DOM操作,把上一步中找到的最小差异更新到页面中去,视图完成更新。”
聪明的你又发现了,在回答这个被追问的问题时,我是不是提到了很多可能被继续追问的新知识点啊,比如“虚拟DOM”、“Diff运算”等。没错,面试官很有可能继续追问——“什么是虚拟DOM?”、“Diff 运算是怎么实现的?”等。
这就是“追问”的艺术,有经验的面试官一定会把你问到“绝境”,把你问倒为止。追问的问题也会越来越深、越来越难,如此才能确定出你的真实 Level ——你值多少钱,你是否符合我公司的用人需求。
如果你有时间和精力,你仍然可以使用“制定答题框架”中学习到的 3 种答题框架,来应对一切可能被追问的问题。本小节的重点,是教你另外 3 个技巧原则,助你从容应对被追问。
不挖坑原则

指的是,当你在回答面试问题时,尽量不要提那些自己不懂的、或者一知半解的知识点。比如,如果你对 Diff 运算不太理解,为了避免被追问,你在回答“beforeMount 和 mounted 之间 Vue做了什么”这一问题时,应该避免提到“Diff 运算”一词,或者别过度提到它。
这就是“不挖坑原则”,请确保你说出来的关键词和知识点,都是你已经做过功课的。
不吹牛原则

这个原则很容易理解,就是你在回答问题,不要说大话。比如说,“我精通JavaScript”,“我是一个高级全栈开发工程师”等,这都属于“吹牛”。对大多数人来讲,可以说“熟练使用”,但说“精通”就有点夸张了。
一旦你说了大话,这很容易遭到面试官的追问。万一你答不上来,会给面试官留下“不诚实”的印象,那么你的面试成功率必将大大降低。
擅引导原则

这个原则和“不挖坑原则”有异曲同工之妙。“不挖坑原则”是避免提到自己陌生的领域,而“擅引导原则”是鼓励你多提自己熟悉的领域、多提自己做过功课的领域,通过语言强调等技巧,把面试过程向有利于自己的方向引导。
有经验的求职者,要有这样的自信,要敢于引导面试过程,让自己占据沟通的主动立场。
在这个三个原则的指导下,相信你一定可以更好地准备面试。在面试准备阶段,用正确的方法、有目的地“背”题,有逻辑地答题,讲自己擅长的话题,效果肯定会更好。

写在最后
我经常和同学交流,面试不等于工作,面试不过是一场“表演”。擅长面试的人,未必就一定能成为开发高手;而不会面试的人,必将郁郁不得志、空有一身本领。

面试,是我们进入理想公司的第一道门槛。毫不夸张地讲,面试过程中七分靠“演技”、三分靠实力。作为求职者,你必须清楚,你需要做大量的前期准备,才有可能淘汰其它的面试竞争者。打铁还需自身硬,你准备好了吗?

这篇关于高效“背诵”面试题的三定法则的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/721962

相关文章

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

Tomcat高效部署与性能优化方式

《Tomcat高效部署与性能优化方式》本文介绍了如何高效部署Tomcat并进行性能优化,以确保Web应用的稳定运行和高效响应,高效部署包括环境准备、安装Tomcat、配置Tomcat、部署应用和启动T... 目录Tomcat高效部署与性能优化一、引言二、Tomcat高效部署三、Tomcat性能优化总结Tom

Python利用自带模块实现屏幕像素高效操作

《Python利用自带模块实现屏幕像素高效操作》这篇文章主要为大家详细介绍了Python如何利用自带模块实现屏幕像素高效操作,文中的示例代码讲解详,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、获取屏幕放缩比例2、获取屏幕指定坐标处像素颜色3、一个简单的使用案例4、总结1、获取屏幕放缩比例from

使用Python实现高效的端口扫描器

《使用Python实现高效的端口扫描器》在网络安全领域,端口扫描是一项基本而重要的技能,通过端口扫描,可以发现目标主机上开放的服务和端口,这对于安全评估、渗透测试等有着不可忽视的作用,本文将介绍如何使... 目录1. 端口扫描的基本原理2. 使用python实现端口扫描2.1 安装必要的库2.2 编写端口扫

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

Python实现高效地读写大型文件

《Python实现高效地读写大型文件》Python如何读写的是大型文件,有没有什么方法来提高效率呢,这篇文章就来和大家聊聊如何在Python中高效地读写大型文件,需要的可以了解下... 目录一、逐行读取大型文件二、分块读取大型文件三、使用 mmap 模块进行内存映射文件操作(适用于大文件)四、使用 pand

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设