前端工程师面试多长时间

刀剑美人
  • 回答数

    6

  • 浏览数

    9340

首页> 工程师报名> 前端工程师面试多长时间

6个回答默认排序
  • 默认排序
  • 按时间排序

萝莉个鬼

已采纳

链接:

33评论

南从马吹

近来几个月,一直在努力寻找前端战友,未果,一路的招聘经历下来,心生不少感慨, 一直都很小心翼翼的,怕错失了高人,又更加怕失误把关不够招到不合格的同学进来公司,对公司对项目造成某些影响。面试前端工程师对我来说是一件非常有意思的事,因为面试过程很大程度上也是自我提升的过程。无论大公司还是小公司,之所以在如何招聘到真正有能力的 前端工程师方面会遇到同样的问题,就是因为负责招聘的那些人不知道自己公司需要什么样的人,结果问问题时也问不到点子上。经过这几年在行业里的摸索,我总 结出了自己的一套很有效的面试前端工程的方法。有的应聘者说我不好对付,但留给他们这样的印象也并非我所愿。我觉得之所以他们说我不好对付,主要是因为我问他们问题时问得太细了。以前我曾专门写过一些 东西,告诉应聘者怎么才能通过我的面试(Surviving an interview with me)以及优秀的前面工程师应该具备什么样的素质(What makes a good front end engineer?),而我的面试可以说完全是按照那两篇文章的标准进行的。我不会问一些特别偏门的问题,也不认为出几道逻辑题就能考出人的真实水平。我 唯一的想法就是确定你能否胜任我们要招的这个职位。为此,我需要简单地考察如下几个方面。基本知识我们生活在互联网时代,你想知道的任何事情几乎都能在15分钟内找到相关信息。可是,能找到信息并不等于你会使用它。我认为所有前端工程师至少都应 该掌握某些基本的知识,才能有效地完成自己的工作。如果一遇到问题,就停下工作上网四处搜索解决方案,怎么可能保证按期完成工作呢?听听,还有谁在说“我 不知道,但我可以上网搜到。”请这些同学把手举起来,让大家认识一下(immediately raises a flag for me.)。下面我列出一些基本的知识点,这些都是我认为一名前端工程师(无论工作年头长短)在没有任何外来帮助的情况应该知道的。DOM结构——两个节点之间可能存在哪些关系以及如何在节点之间任意移动。DOM操作——怎样添加、移除、移动、复制、创建和查找节点。事件——怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别。XMLHttpRequest——这是什么、怎样完整地执行一次GET请求、怎样检测错误。严格模式与混杂模式——如何触发这两种模式,区分它们有何意义。盒模型——外边距、内边距和边框之间的关系,IE 8以下版本的浏览器中的盒模型有什么不同。块级元素与行内元素——怎么用CSS控制它们、它们怎样影响周围的元素以及你觉得应该如何定义它们的样式。浮动元素——怎么使用它们、它们有什么问题以及怎么解决这些问题。HTML与XHTML——二者有什么区别,你觉得应该使用哪一个并说出理由。JSON——它是什么、为什么应该使用它、到底该怎么使用它,说出实现细节来。重申一下,上述这些知识点都应该是你应该“想都不用想”的东西。我一开始问的所有问题都是想摸清你对所有这些领域知识的掌握程度。虽然上面列出的这些知识点并没有面面俱到,但我觉得你至少应该掌握这些,才有可能跟我坐到一间办公室里来。少量提问我非常赞同面试者问的问题越少越好。反复问应聘者各种问题既不公平,也很无聊。我在任何一次面试中,通常只问三个大问题,但每个问题又会涉及我所能想到的多个方面。回答每个大问题一般要经过几个步骤,这样我就可以在每个步骤中穿插着问一些小问题。比如说: 现在有一个正显示着Yahoo!股票价格的页面。页面上有一个按钮,你可以单击它来刷新价格,但不会重新加载页面。请你描述一下实现这个功能的过程,假设服务器会负责准备好正确的股票价格数据。这个问题牵扯到一组我想要考察的基本知识点:DOM结构、DOM操作、事件处理、XHR和JSON。如果我要求你对换一种处理股票价格的方式,或者 让你在页面中显示其他信息,就可以把更多的知识点包括进来。对于经验比较丰富应聘者,我也可以自如地扩展要考察的知识范围,最简单像JOSN与XML的区 别、安全问题、容量问题,等等。我还希望应聘者给出的任何解决方案中都不要使用库。我想看到最原生态的代码,你就当页面中没有包含任何库。你说你对哪个库了解多少多少,但我不能把 关于库的知识作为评判能力的因素,因为库是会随时间变化的。我需要的是真正理解库背后的机制,特别是能够徒手写出一个自己的库的人。解决问题做为一名前端工程师,最值得高兴的事莫过于解决同一个问题会有很多种不同的方法,而你要做的就是找出最合适的方法来。我在提问的时候,经常会在应聘 者解释完一种方法后问他们还有没有第二种方法。此时我会跟他们说,假设你的这个方法由于种种原因被否决了,那么你还能不能给出另一种方法。这样做可以达到 两个目的。首先,可以测试出他们是否在毫无意义地复述书本中的东西。不能不承认,某些人确实有过目不忘的天赋,听他们在那里滔滔不绝地讲,你会觉得他们什么都 明白。可是,只要一跟这些人谈到怎么查找方案无效的原因,以及能否拿出一个新方案来,他们往往就傻眼了。这时候,如果我听到“我不明白这个方案为什么不够 好”之类的反问,心里立刻就明白我的问题已经超出了他们的能力范围,而他们只是想拿自己死记硬背的结论来蒙混过关。其次,可以测试出他们已经掌握的(还是那句话,“想都不用想”)浏览器技术知识。如果他们对浏览器平台的核心知识有较好的理解,想出解决同一问题的不同方案根本没有那么难。对一名前端工程师来说,这绝对是最重要的能力。前端工程师在工作中遇到本该如此却并未如此的难题(说你啦,IE6),应该说是一件很平常的事。一个方案无效就无计可施的人,做不了前端工程师。考核应聘者解决问题能力的另一层原因,与我的个人喜好有关。在搞清楚应聘者知道什么不知道什么之后,我就会想着问一个他们知识领域之外的问题。这样 做的目的,就是想看看他们怎样运用已有的知识解决新问题。在解决问题的每一步,我也准备了一些提示,以防有人会卡壳打艮(在我面前15分钟一言不发,对我 评价这个人毫无帮助)。我真正感兴趣的,是他们能够从上一步前进到下一步。我希望看到一个人就在我眼前学到新知识。注意:所有问题都与浏览器技术相关。我不相信出几道抽象的逻辑题,就能够考出某人解决Web技术问题的能力。在我看来,这无异于让素描大师画肖像(或者让刘翔跟博尔特同场竞技),没有意义,也得不到任何有价值的信息。有激情要成为一名优秀的前端工程师,最重要的莫过于对自己做的事要有激情。我们技能都不是从学校中或者从研讨会上学来的,因此前端工程师必须具备自学能 力。浏览器技术的变化可谓日新月异,所以也只有不断提升自己的技能才做得到与时俱进。我虽然不能强迫谁必须多看博客、不断学习,但想应聘前端工程师的人恐 怕还是必须这么做的。你怎么知道谁对这种工作有没有激情?实际上非常简单。我只问一个简单的问题:“目前你对什么Web技术最感兴趣?”这个问题永远不会过期,而且也几 乎不可能出错……除非你答不上来。就眼下来说,我希望你对这个问题给出的技术中包括WebSocket、HTML、WebGL、客户端数据库,等等。只有 对Web开发充满激情的人,才会坚持不懈地学习新知识、掌握新技能;这些人才是我真正想要的。当然,我会让他们详细解释自己提到的技术,以保证他们不是随 口说了几个时髦的新词汇。最后一点计算机科学或者Web设计方面的知识当然也有用,但那都是基本知识之外的东西。只要基本知识在那儿了,一切就都有了基础,想扩充知识面也不难。可 是,如果等到正式上班以后,还得从头学习基本技能,那种难度是不可同日而语的。另外,高级前端工程师与一般工程师相比,肯定需要掌握更多的技能。而面试几 乎没有经验大学毕业生,同样也会有一套完全不同的程序。我在这篇文章里列出来的都是一些最基本的东西。对于那些还没有多少面试经验的人,我总是喜欢告诉他们,面试完了只要问自己一个问题就行:你想以后跟这个人在一起共事吗?如果不管为什么,回答是不,那就是不。

16评论

迷了路

想要通过前端面试顺利进入一线大厂成就高薪前端梦。那么首先,我们得知道前端面试中,社招和校招究竟有啥区别?

对于前端开发来说,如果说社招更看重对前端技术体系的深入理解,以及解决问题的能力话,那校招更看重的其实是基本功和学习能力(或者说是潜力)。

但其实,无论是社招还是校招,面试的时候都会问到一些曾经操作过的项目,尤其是大厂,或者热门高薪部门,面试官除必问的技术经验外,也会对技术深度进行一个基础的考核,那在这种情况下如何hold住大厂面试呢?

前端面试三要素:简历、个人介绍、技术能力。下面,就来分别聊一聊。

1、简历筛选关:

HR一般会去看简历中所提的技术栈是否匹配,怎么看呢?我们可以抓住简历中的技术名词,一般来说如果一点技术名词都没有提到,那么大概有以下几种可能:很水、很牛但概率很小、不会写简历。所以,一部分人可能会因为简历的问题没有了面试机会,这点是需要非常注意的。

2、个人介绍关:

通过了简历筛选阶段,就真正到了面试环节。这时候一定要准备好一段最多3分钟的个人介绍。请注意,最多3分钟!言简意赅的说明自己的工作时间,擅长技术栈和自己的工作预期。

3、项目经验表达:

对前端开发学习者而言,JS并不陌生,但大厂的JS面试题却总是显得很“陌生”,怎么样能够真正做到深入理解与高级应用?这不仅是面试过程中对前端求职者的要求,也是大多数前端开发者的痛点。

大厂面试中,面试官除了关注你的项目经验外,还往往喜欢和面试者深入探讨前端某些技术领域成体系的前端知识。比如:模块化、异步解决方案、网络、框架及原理、线程等,但在与面试官的正面battle中,求职者总会败下阵来。

所以,建议大家在Web前端面试前一定要注重这三个方面的内容。注重了这些想找找到一份适合的Web前端开发工作并不是难事。

176评论

丹青客

一、基本知识我们生活在网际网路时代,你想知道的任何事情几乎都能在15分钟内找到相关资讯。可是,能找到资讯并不等于你会使用它。我认为所有前端工程师至少都应 该掌握某些基本的知识,才能有效地完成自己的工作。如果一遇到问题,就停下工作上网四处搜寻解决方案,怎么可能保证按期完成工作呢?听听,还有谁在说“我 不知道,但我可以上网搜到。”请这些同学把手举起来,让大家认识一下(immediately raises a flag for me.)。下面我列出一些基本的知识点,这些都是我认为一名前端工程师(无论工作年头长短)在没有任何外来帮助的情况应该知道的。[list][*]DOM结构——两个节点之间可能存在哪些关系以及如何在节点之间任意移动。[*]DOM操作——怎样新增、移除、移动、复制、建立和查询节点。[*]事件——怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别。[*]XMLHttpRequest——这是什么、怎样完整地执行一次GET请求、怎样检测错误。[*]严格模式与混杂模式——如何触发这两种模式,区分它们有何意义。[*]盒模型——外边距、内边距和边框之间的关系,IE 8以下版本的浏览器中的盒模型有什么不同。[*]块级元素与行内元素——怎么用CSS控制它们、它们怎样影响周围的元素以及你觉得应该如何定义它们的样式。[*]浮动元素——怎么使用它们、它们有什么问题以及怎么解决这些问题。[*]HTML与XHTML——二者有什么区别,你觉得应该使用哪一个并说出理由。[*]JSON——它是什么、为什么应该使用它、到底该怎么使用它,说出实现细节来。[list]重申一下,上述这些知识点都应该是你应该“想都不用想”的东西。我一开始问的所有问题都是想摸清你对所有这些领域知识的掌握程度。虽然上面列出的这些知识点并没有面面俱到,但我觉得你至少应该掌握这些,才有可能跟我坐到一间办公室里来。二、少量提问我非常赞同面试者问的问题越少越好。反复问应聘者各种问题既不公平,也很无聊。我在任何一次面试中,通常只问三个大问题,但每个问题又会涉及我所能想到的多个方面。回答每个大问题一般要经过几个步骤,这样我就可以在每个步骤中穿插著问一些小问题。比如说:

HR一般不会面试太深的问题,主要是了解一下你之前的工作经历,更多的是你自己描述,中间可能会问一些初级的问题,比如,你为什么从上一家单位离职等类似问题。

这样的布局用绝对定位实现最合适,ABC的外层用相对定位,里边各列用绝对定位就可以。至于CBA且B宽度自适应,还是用绝对定位,但只定位C,A分部到两侧,中间的列margin设成左右列的宽度就可以。

web前端开发工程师想要硬气的跳槽,起码应该达到以下几点:1.掌握扎实的技术基础,需要掌握技术包括:HTML、CSS、JavaScript;HTML是Web程式设计的基础,HTML也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页档案本身是一种文字档案,通过在文字档案中新增标记符,可以告诉浏览器如何显示其中的内容。维护大型的CSS程式码库并非易事,特别是那些随意散漫未经组织的CSS程式码极易变成一团乱麻,所以,应该掌握CSS命名规范,来帮助开发者编写优质的程式码。2.深入理解前端工程化和元件开发;需要熟悉web前端框架—— React、等,React为我们提供了直接易用的,以状态为核心的前端应用开发方式,前端工程师应该会分析React内部工作原理,讨论React中简单元件、类元件等渲染流程。单元测试是应用开发中不可或缺的部分,日常开发中会用到的单元测试的例子,所以应该掌握。3.熟练掌握Web开发相关知识至少熟悉一门后端语言,例如、Java、Go等;内部原理视非常重要的,应该明白的主程序是如何启动的、如何载入内建模组、os包如何实现等等。4.对技术有热情,有一定前端架构能力或者技术深度;具备团队合作意识强,能够多团队协作开发;具备企业级大型前端应用开发经验更佳。

前端工程师需要懂得设计类程式码和js,有需要了解一些后台语言,例如PHP等。

1.入门阶段:能够解决一些问题的水平。有一定的基础(比如最常见的HTML标签及其属性、事件、方法;最常见的CSS属性;基础的JavaScript程式设计能力),能够完成一些简单的Web前端研发需求。2.进阶阶段:将JavaScript、HTML、CSS之类的编码帮助手册里的每个方法属性都通读几遍!只有将基础打好,以后的路才能走的顺畅。3.入室:最强程式码,知道所有能够解决需求的各种方案,能够选择使用最优秀的方案满足需求。这个级别基本上产品开发程式设计中的程式码主力。程式设计师应该能够肯定的回答:对于这个需求而言,我的程式码就是最优秀的程式码。4.注重细节,注意那些当前需求里没有明文给出的细节:程式码效能的差异、执行平台(浏览器)的差异、需求的隐性扩充套件、程式码的向后相容等等。

web前端工程师是不参与任何的设计,直接将网站美工制作的网站效果图使用ps按照效果图进行切片并使用、css、js等程式码进行网页的制作,最终编写出符合w3c标准的相容各个主流浏览器的静态页面,同时还需要按照后台开发人员的要求留下一些后台资料的介面。所以说网站前端工程师更多的是程式设计而不是设计。UI设计师一般是学美术或者设计出身,精通photoshop、AI、AE等平面设计工具,其在网站开发过程的中的职责就是按照客户或者公司的需求设计出符合客户需求和介面或者颜色符合大众视觉的网站效果,如根据不同行业的需求设计颜色、设计介面风格等,其工作的最后成果就是网站的效果图。

less和sass什么时候学都行,1,2天就能学会。这个不著急,没有什么承上启下的作用,可以单独拿出来学。bootstrap就是一个框架,把最主要的栅格系统看看就好。其他的大概了解能干啥就行,很多公司,是不让用bootstrap的,而是用原始码自己写。这个用一天的时间没啥问题。和angular比较重要,如果学会,算是上了一个台阶了。所以重点说说这个。angular属于mvvm框架,一开始觉得angular挺复杂的,所以想学一个简单的,轻量级的,所以决定先学vue。但是在了解的过程中发现,很多的专业名词,没听过,或者理解不透。所以又开始从头学习。在学习的过程中又开始迷茫,发现了很多JS不懂的地方。所以,又开始深入研究js的dom,函式,ajax,阵列等。总之用了很长的时间,浪费了很长时间。最后总结一下啊。其实,没必要钻那么多牛角尖。先做着vue的例子,不懂的地方,直接略过,很多时候,不理解的不懂的东西,用着用着,突然就能明白。照猫画虎先把VUE的例子跟着做一遍之后,同时梳理一下涉及到的JS知识点。能自己用vue做出几个小成品的时候,开始结合js研究。之后再去涉及angular。angular差不多有个大概了解的时候,反过头接着学vue,你会发现,又会发现很多新东西。web前端这个东西特别有意思,当你达到一个高度,返回来再看以前的技术,会发现,哎呀,竟然又能发现新大陆。

培训学校很多,没有具体的衡量标准的。但是可以从几方面去选择:1 有很多优秀导师的2 培养出很多优秀学员的3 只做培训的,没有做其他的4 做的比较久的。

建议找全程面授课程的地方学习,课程体系很重要,现在企业在用人方面讲究全栈的前端工程师人才,所在在课程选择上要慎重,学习内容要基于HTML5,要包含pc端+移动端+后端。这要才能学的系统,就业上才会有所保障。

157评论

共长歌

Web前端面试技巧

Web前端工程师的面试前的准备:1. 自我介绍准备不同时间版本的1 分钟、3 分钟的自我介绍.反复练习,并脱稿,但不是背诵.因为背的话自我介绍就显得十分的生硬,一定要用自然的语言将自我介绍说出来.这样可以给面试官留下很好的第一印象.2. 预演搜索一些你应聘的公司和职位,在宿舍里、家里,先自己预演下,可能会被问及的各种问题和答案.即使你不能猜中所有问题--当然HR也不会面面俱到、一直不停的提问,最关键词的只有那么几个.思考问题的过程会让你减轻紧张而且在面试时心里有底.3. 积极自我暗示在群面的时候,我们可能会因为别人的发言而绕乱了自己的思路.这时候千万不要乱,适当的做深呼吸调整一下自己,做到沉着冷静,整理好自己的思路,努力回忆自己所学和所掌握的知识,给自己积极的心理暗示,一句话:相信自己能行!你是最棒的.

4. 面试简历一定要准备充分面试你的人可能不止1 个.预先料到这点.并准备好会显得你做事正规、细致.没有比当被要求提供多一份简历而你却没有.更能表明你缺乏准备的事了.你说呢?5. 完整而认真的填写公司要求的表格尽管你认为它们用处不大、尽管你带了简历来,很多公司都会要求你填一张表.你愿意并且有始有终地填完这张表,会传达出你做事正规、做事善始善终.面试过程:1. 给面试官留下深刻的印象最初和最后的五分钟是面试中最关键的,在这段时间里决定了你留给人的第一印象和临别印象以及主考人是否欣赏你.最初的五分钟内应当主动沟通,离开的时候,要确定你已经被记住了.要让人产生好感,富于热情.人们都喜欢聘请容易相处且为公司自豪的人.要正规稳重,也要表现你的精力和兴趣.2. 学会自我营销营销自己十分重要,将你所有的优势推销出去,包括你的技术资格,一般能力和性格优点,雇主只在乎两点:你的资历凭证、你的个人性格.你能在以往业绩的基础上工作并适应公司文化吗?谈一下你性格中的积极方面并结合例子告诉对方你在具体工作中会怎么做.展示你勤奋工作追求团体目标的能力,大多数主考人都希望找一位有创造力、性格良好、能够融入到团体之中的人.你要必须通过强调自己给对方带来的好处来说服对方你两者皆优.

168评论

像梦境一样

前端工程师不一定需要懂设计方面。倘若有这等要求,前端工程师岂不是一项除其本身特征性工作外还包含用户界面设计、视觉设计、业务逻辑及交互动画设计师等工作的职称了么!前端工程师,主要工作内容与用户界面的表现紧密联系,但均为在图形上或以其为基础通过某种实现方式去正确、准确呈现什么。之所以以“主要工作”修饰,是因为的出现与发展致使前端被引入服务器端性质的工作内容。在能力方面:对 HTMLCSSJavaScript 具有专家级别的知识;有较熟练使用 AngularJSjQuery 或者其它类库的经验;较熟悉第三方组件(插件)生态环境及具体案例;有较熟练使用 JadeSwigHandlebarsMustache 或者其它模板引擎的经验;有较熟练使用 SASS 或者其它 CSS 预处理器的经验;有较熟练使用 CoffeeScript 的经验;对 CSSJavaScript 设计模式有很好的认识及应用;对常用数据结构和算法熟悉;有使用 GruntJSGulpJS 任务运行器的经验;有使用 Yeoman 生成器的经验;有诸如 BowerVoloJSPM 等前端静态资源包管理器使用经验;熟悉本地及远程(真机)调试操作;有 Git 的使用经验;意识驱动行为,所以:有自己的技术信仰;有渴望尝试新技术的强烈愿景及较强的主观学习、客观探索能力;拥有令人难以置信的关注细节的精神;在诸如 Github、Sitepoint 等这样的技术社区活动;因为你不是一个人工作,并且要对一个产品付之责任心,所以:有良好的编程风格和文档习惯;对模块化开发及相关标准有很好的认识及应用;有对网页标准和标准制定机构重要性较深刻的理解;建站过程中考虑其它诸如UI、安全性、高性能、SEO、可维护性以及技术因素等方面;有跨浏览器(主:兼容性)、跨设备(主:响应式)开发并测试页面的经验;对网格在WEB设计中的应用有深刻的理解,以及具备系统(有组织)地实现出来的能力;能够独立工作并做出正确的抉择;能够适应不断变化的更新扩展改版需求,同时处理多个项目;能够提供准确的定时估计工作(适应准时交付管理法则);有与服务器端程序开发人员协同工作的经验;能够(熟练)阅读英文资料;有一定的工作压力承受能力;然后再为自己从长远打算及加分:有 NodeJS Web服务器客户端应用程序设计、开发、优化经验;有 MangoDBRedis 等No SQL 数据库设计、实现、维护经验;有使用 PhoneGapApache Cordova 进行移动应用开发经验;有浏览器 Addon 扩展(以扩展的形式添加一些为提高用户体验的附加功能)开发经验者;

156评论

相关问答