注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号
x
地里大多的资料都是适用于后端面试,前端面试的资料很少。前端领域更多白人,国人也比较少。
最近自己在职跳槽,身有此感,也绕了很多弯路。这次跳槽之后决定写些面试经验,希望帮到后来者。
也欢迎senior、有深入见解的大佬添砖加瓦,批评指正。
觉得好求点个赞、赏个米。
=======================================================================================
前端是什么:
- 大多数人的理解可能前端就是web。但是我觉得更应该说前端的core就是Javascript。因为有些App是用JS写的然后转译,也会走前端面试流程(比如Google YouTube App)。
- 前端是SWE / SDE。title、薪资等一切都和标准software engineer无差。
- 前端面试都是framework agnostic —— 不会考框架,更多集中在考察对JS的理解。
前端跟后端的区别:
- 前端的知识在于广度,tech stack可能不会特别深,但是涉及的面可以非常广。体现在面试上,比如会考算法,设计一个组件,JS basics,DOM API, HTML & CSS。
- 前端面试相比后端没有很固定标准。后端几乎所有公司只需要准备算法和design。前端有的侧重算法,有的侧重UI和JS,但是算法一般会更简单。后面会详细讲到。
- 前端的工作更靠近用户,所以前端工程师的的交流表达能力一般会更强。在一些非IT公司,因为business的人、PM 不了解太多技术,所以往往前端也离需求、离管理者更近。
- 前端工程师更不太可能会非常geeky,不太会是nerd。因为做的东西要presentable,要在意外在,在意和别人、尤其用户的交流,需要和很多人包括designer沟通。闭门造车,苦哈哈埋头独自干事情的情况不太多。
- 根据企业文化,前端和后端的重视程度可能不太一样。比如Google是标准后端文化,技术栈积累的很深。Facebook,LinkedIn这些公司就是前端文化,因为他们的旗舰产品就是那个web或者App。相应的前后端工程师的升职容易度在各个公司会不一样;体现在面试上也会有差,我之后会讲到。
- 前端面试下来面试官几乎都是白人,很少亚裔,几乎无印。
前端和后端的相似:
- 有没有工作经验会有区别。并不是说前端stack浅,面试就不会看出这个engineer够不够senior。有经验的工程师会在面试中考虑到各种可能的选择,比较pros & cons;会很快抓到可能遇到的坑,标出caveats;也可以联系到自己的经验,举出实际的例子来支持论证。所有这些都能看出这个engineer是不是确实写过很多代码,思考广度是不是够,交流能力是不是强。
面试:
- Google - Google是后端文化,🐶家面试的指导思想是看这个程序员是不是合格的engineer。所以面试的内容都更偏向核心,team match有可能不100% fit,会给6个月之久的时间ramp up —— 有利有弊吧。5轮面试3轮算法,1轮前端,1轮BQ。我被加面两轮,都是前端focus,主题是network & async data processing(其实就是Promise的一些操作),也算是前端里更底层的东西。🐶家的面试风格就是更考察面试者的交流能力和思考解决问题的能力。所以一定要think out loud —— 拿到题把你的想法说出来。可能说着说着就有更好的approach了,或者发现这是个坑不能走,或者面试者主动跟你互动告诉你该怎么走。
- Facebook - Facebook的面试很能体现企业文化 - 比较harsh。要求在45分钟内一定要完成他预定的所有问题。技术面试4轮,1轮BQ,2轮前端,1轮design。BQ大概塞了20个问题,一个赶一个不带多喘两口气地问完了。前端面试也是很赶,每轮会有两个问题,但是会有很多follow up。我记得其您好! 本帖隐藏的内容需要积分高于 188 才可浏览 您当前积分为 0。 使用VIP即刻解锁阅读权限或查看其他获取积分的方式 游客,您好! 本帖隐藏的内容需要积分高于 188 才可浏览 您当前积分为 0。 VIP即刻解锁阅读权限 或 查看其他获取积分的方式 =https%3A%2F%2Fwww.amazon.com%2FSecrets-JavaScript-Ninja-John-Resig%2Fdp%2F193398869X" rel="nofollow noopener" target="_blank">”Secrets of the JavaScript Ninja”。看完基本JS basics就能理解的很透彻了。HTML / CSS的话比较吃经验,多做些项目可解。时间不够的话就看看面试题库吧,这方面考的也不是很多。
然后就是JS更深入的feature的一些题目。这些题比较固定,但是FB和LinkedIn都会考,而且大部分会考这些。推荐网站BFE.dev,练一练。
剩下的零零散散的知识点随便看一些JS的问题题库、MDN吧。MDN里有很好的文章,比如request一个web page的全过程详解。MDN里的DOM、Promise的API也看一看,面试不需要记住那些API的名字,但要用到的时候得想起来有这个东西。
System design 考到了type ahead 和 chat room,都是很典型的题目。看看YouTube其实就够了。
总而言之,其实前端面试感觉下来在知识面的宽度,语言交流能力。问题的深度基本都没有很深。
|