Awesome Interview

剑指前端 Offer

Project README

剑指前端 Offer

互动与勘误

本书目前在 GitHub 中开源了第一版内容的部分题目,旨在接受广大开发者的检验和收集读者反馈后,能将本书打磨得更好。

阅读时您可能会发现内容上的错误,可以直接在相关章节末尾的评论区进行留言,留言内容会被自动同步到仓库 Issues 中。您也可以在仓库 Issues 中直接留下宝贵意见。欢迎读者对内容仓库进行 订阅/Watch,我们会持续添加和订正内容。

关于我们

Hi,我们是 HZFE,一群来自于五湖四海的 90 后技术人。

一群固定的人总聚在一起,不知不觉就会成为一个所谓的团队。而我们的团队代号“HZFE”,总让不明其意的人拼错或不知如何发音。曾经在我们三周年活动蛋糕上,店家就用心写下了“H2FF 三周年快乐”的祝福。

我们最初相识于一个拥有 17 位成员的群聊,群聊名称正是 HZFE。其本意是杭州前端(Hangzhou Front-End),所以也读作“杭州 FE”。但需要额外解释的是,我们大多不在杭州,也不全是前端。所以您且当这是一个没道理的代号,而我们的相聚则是一场有趣的缘分。

和每个普通人一样,我们大多过着三点一线的生活。喜欢旅游也爱摄影,也像千千万个理财小白一般,在正向或是反向理财中来回波动。每天都在产出新的想法,一起头脑风暴,结局总是以没有设计师为借口不了了之,三分钟热度成了我们心照不宣的默契。每天都在做梦,讲些不切实际的幻想,平凡且平庸。

如果说,唯一值得小小炫耀一番的,便是我们这群人对于热爱编程这件事达成了共识。不论是做开源、做自己的产品亦或各自在工作岗位上,都有所成绩,有所收获。又也许正是因为我们比较幸运,能在刚踏入社会时相识相知相爱,才有了后来我们彼此影响,一同成长为此刻至少技术还不赖的人。

我们在行业中打滚了近五年的时光,团队中的大部分人都任职于互联网大厂,因此也自许是比较了解中大型公司的面试规则和趋势的人。因缘巧合下,在某天如同往日的头脑风暴中,我们一拍脑袋,说要一起写本书,从而开启了这场坎坷的写作之旅。

正如其名:剑指前端 Offer,希望在这本书的帮助下,我们和读者都能有所成长。

前言

写作背景

在我们团队中,每年都会有部分人需要更换新的工作环境,因此我们的聊天话题总是阶段性的变成面试题探讨。随着这几年我们对前端面试方面的经验积累和总结,我们一致认为前端面试的复习是有关键路径的。基于我们内部需要,也曾迭代过几个面试题库版本。

从面试角度分析,面试最典型的特点是时间有限。这意味着面试官和候选人需要在有限时间内,做出最大程度的有效沟通。

面试官如何有效且全面的了解候选人,是另外一门学问。而候选人的挑战在于面对问题时,如何在一两分钟内作出有效回答。有效回答是指:用两三句话对问题作出概括性回答,并引导面试官对回答中提到的关键词进一步深入提问。

不少同行的心态是:如果面试问得难,那便是面试造航母,工作拧螺丝;如果面试问得简单,那便是东西我会用,但我不会说,没发挥好。由于各种原因,失去了更多的选择。本书希望能够帮助大家尽可能解决这方面的问题,让前端开发者在面试复习阶段事半功倍,以更好的状态进行面试。

基于以上写作背景,我们可以达成两个共识:

  1. 面试时间总是有限的

    围绕一道普通技术题目的时长一般在 1-3 分钟,一轮技术面试的时长一般控制在 30-60 分钟,面试题目通常涉及不同知识面。

  2. 问题的回答一般是自顶向下的

    以一个概括性较强的回答进行反馈,面试官获得反馈后,通常会基于候选人回答中提到的关键点或面试官认为的其他关键点展开进一步提问。

面试痛点

image

上面这张结构图,我们梳理了从准备面试到最终获得 Offer 的大致过程。较多人的复习方法主要来源于系统地复习所有知识点,或者有目的性的查找面经并复习对应的知识点。在时间充分的情况下,系统复习在复习阶段初期会有一定成效。但是仅停留在这一步,也许并不是最好的选择。

我们可以从以下角度剖析面试复习阶段的关注点:

  1. 复习什么

    候选人通常会系统地查看知识点总结,而市面上大部分的知识点总结,提纲排列顺序为由易到难,通常从基本数据类型章节开始讲解,内容比较冗长。系统复习有一定的必要性,但是在主流面试中一般有明确面试范围和考察频率。因此复习阶段应该有意识的复习高频内容。

  2. 怎么复习

    学习知识点时通常尽可能查看具有权威性的文档、规范、源码等,进行从零到一的较全面的理解,耗时较长;而复习时更多的需要有侧重点,应当进行提炼和总结。候选人通常基于知识点去查找相关技术文章,希望从其他开发者的技术文章中获取“精华”,从而省去自己从零学习或是提炼总结的成本。

    然而市面上充斥着良莠不齐的技术文章,也需要候选人在查找资料时“货比三家”,辩证对待文章内容。即便看到较好的文章,学会知识和面试中将知识进行输出也并非同一个概念。

    因为这些文章通常较为详细,以教程的方式娓娓道来,而面试时考察候选人对知识点的理解和运用,需要候选人在有限时间内言简意赅的回答问题。有的候选人编程能力不弱,但口头表达能力和总结能力欠缺。因此复习阶段拥有一份非教程向,而是面试向的参考读物变得重要起来。

基于一些常见的面试案例,我们总结出以下面试通病:

  • 面试表达能力弱:“那些东西我会用,但面试的时候讲不好。”
  • 复习摸不清重点:“大厂面试感觉很难,要复习的东西有很多,也不知道会不会问到。”
  • 学习效率低:“各种面经我都有看,自己大致归类了题目出现频率,但答案还要再查一下。”
  • 学习兴趣低:“有的问题我有自己查资料,讲得很详细,也很难,啃一篇要花很多时间。”

在有限时间内,无法对高频知识点进行吸收和总结,只能不断地在面试环节中试错,机会成本和时间成本极高。

写作理念

image

为降低前端候选人面试的准备和试错成本,我们撰写了这本专为前端面试场景服务的书,意在成为候选人的技术高频题指南。本书主要整理了高频面试题和对应篇幅可控的答案。高频题是为了提高候选人复习效率,篇幅可控的答案则节省候选人的阅读时间:

  • 以高效方式组合高频题目

    技术面试时长一般控制在 30-60 分钟,围绕一道普通技术题目的时长一般在 1-3 分钟,会涉及不同知识面的细节。我们整理了 5 套面试题,共计 60 道不同的高频面试题。每套题包含固定类型题目(如基础题、工程化题、网络题、编码题、综合题等)。

    通过组合不同题型,模拟一场面试中的题型分布情况,我们每套题都可以更加接近真实技术面试的体验。因此可以帮助候选人积累经验、提高面试成功率。

  • 提炼面试回答要点

    面试回答和日常知识点学习有一定差别:日常知识点的学习需了解广度且深入细节,要求查阅各种文档、规范。面试回答则需要将所学知识浓缩为几句话。

    本书通过由浅入深的组织方式,以「相关问题」「回答关键点」「知识点深入」「参考资料」为内容基础大纲进行梳理。「回答关键点」作为高度概括的总结性语言,可用于第一时间回答面试官的问题;「知识点深入」以递进方式深入解析,可作为引导面试官进一步提问的方向。

    读者还可以模仿本书内容的编排方式,经过练习后,用更精炼的语言对其他问题作出有效回答。

总体而言,本书尽可能从候选人角度出发,使候选人快速获得面试常见技术问题的参考性回答,也提供给候选人一个相对精简的知识点深入总结。

读者通过对书中内容的学习,即便不能“一书在手,天下我有”,也能在面试中多一份从容和自信。同时本书也向前端从业人员传递一种学习方法和思路。毕竟每个人的学习方法不同,不可以机械照搬。对于如何在有限时间内,将复习效益最大化。读者可以尝试自行分析场景特点和自身痛点,找出属于自己的关键路径并制定复习计划。

适合人群

  • 有意冲刺互联网大厂的前端开发者,可参考本书题目和答案提纲,自主深入学习,查漏补缺。
  • 短时间内参加面试的前端开发者,可借助本书快速了解面试高频的技术问题和相关解答。
  • 前端面试官可参考本书的题型和题目,按岗位需求对候选人进行有梯度的考察。

一千个人眼中有一千个哈姆雷特。而一个人眼中,在不同阶段也可以看到不一样的风景。

Open Source Agenda is not affiliated with "Awesome Interview" Project. README Source: HZFE/awesome-interview
Stars
250
Open Issues
3
Last Commit
1 week ago