您的位置:首页 > 职场人生

IMWeb提升营 | 第三次课堂直播笔记:细解鹅厂面试题

2017-06-09 17:25 423 查看

1 面试的目的

寻找合适的人

1.1 面试主要环节

自我介绍 3-5min

问答环节 20min

手写代码 15min

拓展性问答 10min(潜力,问一问还有没有其他擅长的东西)

提问 5min(面试者反问)

1.2 面试形式

笔试题

问答式

现场手写代码

问题探讨(一般没有答案,主要看面试者思维逻辑的跳跃性和逻辑性是否跟得上)

2 前端面试

2.1 重点考察的能力

编程素养

对于语言特性理解到位,不同语言之间的不同特性使用场景

具有良好的手写代码的能力,主要是平时多写代码,现场写代码不会让你用框架,一般用原生代码写

具有良好的编程思想,有一定的实践后的理解,比如,用的一些设计模式和框架,不仅仅会用,还知道为什么要用,原理是什么

思维逻辑

观点表达清楚:清晰的表达观点,并把逻辑梳理出来。打个比方:如何实现无人驾驶,回答不一定要真的能实现,但是能把思路回答出来,首先系统分成几个模块,哪几个模块由什么来完成之类的。

知识经验

项目经验:对于做过的项目实现原理理解到位,最好能有一些自己做的小项目的demo,比如说自己实现过的一个最复杂的Web项目是什么,怎么实现的,遇到了什么困难

实习经验:如果有实习过的话,最好能有一些问题的处理经验,怎么处理的,谈谈方法和思路,以及总结。

2.2 主要方面

前端基础

编程基础

其他



前端基础

其实面试的时候面试官不会要求面面俱到,毕竟面试者不是万能的,一般面试官会先问你最擅长的是什么,然后细问最擅长的一些点,如果也回答不好,那就会减分。

回答的好坏不是说全都能回答出来,但是一些具有挑战性的题目可以回答的很好,就会加分

计算机编程基础

对于前端要求不高,但是一定会问

算法是最基本的编程素养的一部分

其他

拓展性的问题一定会问,但不固定

比如问学习方法

同学你最近在看的一本关于前端的书,看的前端的博客,跟我谈谈

通过了解这些去了解同学的学习的频率和学习的效果

3 面试怎么问

3.1有哪些问题

1 知识性问题

请说出JS作用域的理解

2 编程思维问题

对组件化开发的理解,阐述价值

3 挑战性问题

对于刚刚提到的方案有没有性能问题,可以怎么优化

4 引导型的问题

除了你刚刚说的方法,还能不能想到性能更优的方法

3.2如何更好的回答面试题

1.准确的理解问题,读题

2.清晰的阐明观点,分条列述

3.给出分析的思路,结果不一定对,分析的路是对的,面试官也会给点分

4.真诚面试最重要,没有哪一条道路可以通往真诚,真诚是通往所有的唯一道路。

3.3这样的面试不可取

真诚面试不要做以下的事情

不懂装懂,面试官看的出来

伪造项目经历,经不住深挖

与面试官争吵,对自己不利

太过于张扬,容易引起反感

4 真实面试

##4.1 实现Object的深拷贝

思路

做遍历,利用浅拷贝完成深拷贝

遍历过程中会遇到不同类型,分类处理

考察

思考问题的深度

紧急问题的应对

5 常见问题

1.碰到不会的问题怎么办

一定会碰到,一般面试官如果没有提出你不会的问题,不会罢休的。

说一下其他思路,询问面试官可以说思路

说一下现在暂时不会,但是如果给我时间,我会怎么去获取资料和学习解决

一般不要直接说不会,实在不行可以说不会,真诚一点

2.我不知道面试官问的问题,但我知道有其他思路,是否有必要回答

可以的,可以先问一下面试官的许可

3.面试前端会面试算法吗

会的,算法体现个人编程能力的理解

4.如何给面试官提问

面试官一般会给你5分钟,聊嗨了的会给更多的时间

面试前有意识的准备,比如了解职业未来的方向,部门的定位和发展

模拟面试

第一个模拟面试

先做一下2分钟自我介绍(了解做过的项目)

说一下你觉得最复杂的项目

说一下这个项目中你觉得最难的点

以上是常见问项目的套路:好几个最的问题

评价第一位模拟面试者:

1.自我介绍:时间过长了,可以简单说一下自己是XXX来自哪里,目前做了哪几个项目,在这些过程中获得了什么技能和经验积累,对前端的热爱

2.最难的项目:直接问某个项目并不能体现面试者的能力,所以直接问最复杂的项目,面试官的用意其实是想知道复杂项目中有哪些点可以体现你的能力

3.最难的点:全面的描述这个难点,分析为什么这个是有挑战的,然后自己尝试了多少种方法,最后才成功的

经过一系列问答,就可以考察面试者阐述问题的切入点和思路

第二位模拟面试者

先用一分钟自我介绍

对你的技能排序,最擅长的是什么语言

解释一下什么是闭包

什么时候会用到闭包

C++四个作用域的原理

怎么实现一个功能把内部变量封装出来被调用

闭包可以通过模块化来隐藏独立变量,还有什么方法,或者模式

JS模块化开发主要指的是什么

在nodejs开发里,有cmd,知道是什么吗

后端有用过什么框架吗?express

看过这个框架的源码吗

express有中间件的概念,能谈一谈原理吗

以上是一些知识性的问答

对第二位面试者的评价:

对于知识性的问答,希望能够对一些概念的原理有所了解。

闭包、模块化方式、cmd方式、amd方式、和其他的区别

问框架的时候,其实不是想听到某些接口是怎么用的,主要是想了解,如果没有用过,那就看看有没有什么了解,如果用过,就希望看看面试者有没有看过源码实现

如果是压力面,也是很常见的,让面试者感觉怎么自己老是回答不出来

在自己回答不出来或者想不起来的时候,可以让面试官提示一下的

6 Q&A

1 为啥有些笔试考试考C语言

因为比较通用,计算机的学生都有学到,所以尽可能复习一下C语言语法

2 如果进行项目积累

可以把项目放到GitHub上

3 单页面里如何使用PV

可以有一些ajax请求

4 实战项目

可以找一些开源的项目,自己重写都可以

5 设计模式ES6和OOp的掌握程度

是加分项,概念性的要掌握和准备

大家肯定到不了企业级应用,但是可以写一下小Demo

6 UI测试

是有一些自动化测试工具的

7 面试重视JS的设计吗

看岗位需求比重,比如有一些重构工程师,对JS的逻辑性要求比较高,对CSS要求就比较低,JS偏逻辑,HTML和CSS偏标记性语言,逻辑性没有那么强

有一些岗位就对逻辑性要求没有那么高

8 资源推荐

可以去搜一下“前段资源体系”,有一个开源项目是介绍前端知识体系的

9 框架影响大吗

看面试官的喜好,有些面试官是问道框架就会问问原理,最好还是能够对原理有了解

平时原理的了解,知识的积累,很重要

10 算法

算法还是很重要的,刷刷题

不一定要看算法导论那么厚的,但是还是要看一些算法书整理一下

11 React native和其他框架Habriac的了解

12 转方向到前端

看决心,看平时项目开发,参与到论坛里的开源项目的讨论

循序渐进

13 熟悉了SSH开发的后端知识,对前端有什么帮助

对于全栈工程师有什么帮助

最后的话

面试时一面镜子,照出来平时的你

所以工作重在平时

好的面试官一定是发现真实的你,所以一定要让真实的自己变得足够优秀
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: