如何准备前端面试?常见疑问的 Q&A
2023年3月15日
ExplainThis 曾经分享了两篇转职心得文:
之后陆续有满多读者来信询问要如何准备前端面试、准备过程与面试细节可以直接参考面试心得文,《如何准备前端面试? 》会着重在笔者是如何前端面试、时程规划、心得和准备技巧。本篇会针对过去读者寄信来询问的问题,做一些简短的 Q&A。
回答读者来信之前,先附注一下,以下回覆是 ExplainThis 根据我自己自身经验,以及汇整其他 ExplainThis 共笔作者经验的分享;然而每个人情况会不一样,所以还是推荐多方参考,再评估适合自己的选择!
Q1: 要辞职找工作吗?
这个问题几乎是有来信问的朋友都会问到的问题,笔者在过去的换工作经验中,两种决定都选择过。先说结论,如果不是生理健康因素或是本身经济无虞,我自己不会选择辞职找工作。
我刚从 bootcamp 出来找工作时,有辞职全职找一段时间,虽然很幸运地那时在一个月内找到工作,但那一个月是真的真的很煎熬。所以在实际成为程序员之后,我每次换工作都是在职找新的工作,因为我不想再体验那种没有收入,但下一份工作不知什么时候才有着落的未知与恐惧感。
因此,关于这个问题,我的判断准则是:没有收入带给我的压力大于工作上的压力。所以我宁可一边工作一边准备面试,也不要没有收入全职准备。当然每个人遇到的情况不同,你可能需要判断两种极端情况带给你的影响,选择比较能承受的那个。
Q2: 工作很忙怎么安排时间在职找工作?
延伸上述问题,在职找工作难度会比较高。除了时间被压缩、同时应付工作上的需求之外,安排面试要一直请假也是不小的困扰。先不讨论本身就是大神级的人物,大部分人在准备面试都需要花不少时间准备,尤其程序员类型的工作,准备范围又很广,很难短时间速成。
我自己在职找工作的准备要点有三点:
在平常就把自己准备好
刷题跟简历准备这两件事情,CP 值是最高的,平时只需要花一点时间,真的要开始面试时,少了这两件事情压力会小很多。
订定目标和时间规划
时间怎么规划可以参考先前经验分享中的段落。做这件事情的好处有两个,一来可以让我专注在这件事情,二来我可以根据时间规划,来安排工作和面试的时间分配,如果因为工作比较忙,我每周能准备的面试的时间很少,那我就会把准备时间拉长。
找战友
在这三点中,这一点对我来说是效益最大的,我自己一个人的时候也会想安逸,有伙伴一起往共同目标前进,会比较有动力与督促。如果有在关注 ExplainThis 的朋友,应该会知道我们三个朋友当初会想一起经营面试共笔网站,就是一起准备面试的缘故。我们除了一直都有读书会之外,在要找工作时,几乎每周都会一起练习模拟拟面试。
Q3: 不同国家的面试准备有什么不同吗?
关于这个问题,以我自己面不同国家的公司,以及我在面试这些工作时做的功课,我的结论是前端面试有很多种,但是跟国家关系比较小,跟公司类型关系比较大。如过要区分的话,可以分成下面四种:
演算法与系统设计类
通常软件大厂都会面这两类,演算法基本上就是把基础弄熟,然后 LeetCode 经典题一定要刷。
前端现场实作类
各类 JavaScript 手写题一定要练过(可以参考这边的整理),以及要练习各种元件的实作(例如 dropdown、tooltip、carousel 等等)。
前端知识问答类
这类问题不要只停留在表层,要尽可能讲深入,以及讲背后的原因。 ExplainThis 上有整理前端知识问题的题库,有超连结的代表我们有整理详解,可以参考参考。
回家作业实作类
有部分新创公司会出回家作业类的题目,在写的时候切记不要只是照着功能写出来,请务必用最高的品质,把代码的简洁度、好维护度、效能、安全性等等面向都照顾好。
特别注意,这些并非一翻两瞪眼,多数时候可能是同一个职位的不同关卡,会有不同类型的面试。例如我先前待过的德国公司,就是有回家作业,然后通过后的下一轮是前端知识问答;我先前面 Amazon 时,则是演算法、系统设计、前端现场实作分别在不同关卡被面到。
所以我会推荐这几类面试都要掌握,但同时可以在要面某一间前,先上网查看他们的面试偏向哪种类型,或是在前面的人资轮时,就先向人资打听看看该公司的面试取向是哪一种(通常人资都愿意分享)。然后特别针对该公司会面的类型加强准备。
另外,如果你有想要有实作的练习,例如在线上编辑器练习常考的 debounce、curry 以及 UI 等实作题,目前我们最推荐的前端练习平台,是由前 Meta 主任工程师打造的 GreatFrontEnd。除了有最全面的问题集,也有详细且高品质的解答。
Q4: 如何获得更多面试机会?
以笔者的经验,有 3 点可以分享给大家
LinkedIn
在 Linkedin 上,只要你是工程师应该会有不少猎人头 (Headhunter) 主动加你。当有公司招募,也会主动询问面试的意愿。记得要定期更新自己在 Linkedin 上的经历。另外也可以主动去加在自己有兴趣的公司的前辈,搜集资讯。
内推
内推会是比到官网投递更有效的方式,所以不管是 LinkedIn 上的人脉或是自己的亲朋好友在心仪的公司中,就不要害羞,主动询问是否可以内推吧!
其他方法
ExplainThis 有分享过一篇文章《除了 LinkedIn 和求职网,3 个方法帮助你找到程序员工作》,里面提到可以透过其他管道找到程序员的工作机会,欢迎大家去阅读那篇文章
Q5: 有需要做 Side Project、开源专案吗?
我自己在投简历的经验中,时常看到海外新创会特别注明:如果有开源专案的经验加分,也有一部分的公司,会提到希望可以提供自己 side project 的网址或代码。我自己是没有参与过开源专案,工作之后,也几乎没有写过比较技术性的 side project,因此当时看到这些是颇为担心。
但后来有问过前辈,或从我自己的经验来看,我认为有当然会加分,但就算没有,在有限的时间下,也不需要特别为面试生出 side Project 或者参与开源专案,过去的工作经历,其实会更看重。除非你个人完全没有工作经验,或你觉得工作经验不足,那你可能就必须要有一项可以来证明你的技术能力的专案,这时候 side project 跟开源专案就蛮建议挑一个做。
Q6: 海外前端面试的英文程度要多少才够?
这个问题 ExplainThis 上有一篇文章专门在谈,可以参考《找海外程序员,英文要多好? 》