一. 某在线教育公司¶
统计信息:字数 7193 阅读15分钟
职位: 全栈工程师
第一面
比较年轻的一个小哥,给人一看就是大佬的感觉,上来看了一下简历,开始做了自我介绍后,进入提问环节。
- 说一下对bind,call,apply三个函数的认识,自己实现一下bind方法。
- 前端的requestAnimationFrame了解吗?有使用过吗?说一下使用场景。
- 对前端性能优化有什么了解?有在之前的工作中解决过性能问题么?一般都通过那几个方面去优化的?
- 对前后端跨域可以说一下吗?有碰到过跨域问题吗?如何解决跨域的?
- 介绍一下对nodejs的异步IO原理。
- 一道简单的算法题,实现输入一个字符串,返回字符串翻转输出。
第二面
进来气场就不一样,年纪差不多35以上,自我介绍了一下,便开始提问环节。
- 说一下之前应用服务的部署模式。
- 对nodejs的进程维护有了解过么?你们有遇到过nodejs一些内存泄露方面的问题吗?说一下内存泄露。
- 之前用redis做缓存中间件是为了解决什么问题?说一下你们关于redis的设计架构。
- 说一下你做过最有成长的一个项目,简单总结一下。
- 讲一下你对之前项目里使用的消息中间件的理解,为什么引入这个东西,它解决了什么问题。
- 他开始介绍他们团队做的事。
二. 某创业公司
职位:全栈工程师
第一面
上来就是做题,心态完全没有调整过来,贼紧张。
-
手写一下快速排序算法。
-
看你简历有加密算法的内容,简单讲一下关于加密算法相关的内容。
-
说一下https的工作原理,里面涉及到的加密算法都有哪些?
-
设计一个后台管理系统,从数据库表设计到后端服务提供。
-
一道算法题,一个数组中找出所有相同的元素,并且做出分类,在彩笔白板上写完,面试官笑了一下,js写还真方便。
三. 某数据广告公司(500人左右)
在这里是我遇到真正最难的一次面试,被大佬虐的体无完肤,最后还是拿到公司的offer。首先面试的是公司的类似于“基础建设”的部门,应该是只搞技术不做业务的部门,但是需要的比较资深的nodejs大牛,最终不合适,但是大佬推荐到了一个业务部门,这边的又经历了两次面试,最终拿到offer,一共经历了三轮技术面
职位:全栈工程师
第一面
未面试通过,简历被推荐到另一个部门。
-
说一下nodejs里对Buffer数据类型的认识,对于初始化的Buffer,可以实现增加长度吗?
-
对nodejs的异步IO的认识,异步IO内部的工作原理,以及内部线程池相关内容。
-
说一说Linux的几种IO模型,分别描述一下是怎么一回事。
-
多进程部署的Nodejs应用有何优缺点,简述一下进程之间的通信方式。
-
TCP三次握手四次挥手的具体细节。
-
Nodejs源码层面的一些内容。
第二面
- 说一下Vue和React的认识,做一个简单的对比。
- React的Dom的diff算法描述一下。
- 浏览器cookie和session的认识。
- 跨域分哪几种类型,如何解决各个跨域的问题。
- nodejs的setTimeOut不准时的原因分析。
第三面
- nodejs进程间通信方式。
- nodejs高并发怎么理解?为什么不适合运算量大的操作?如果我要用实现运算量大的操作有什么方式?
- redis缓存系统的相关内容。
- 在之前工作中做的项目中有收获的,系统描述一下收获了什么?
- 介绍了一些他们使用的技术栈和正在做的事情。
四. TMD某条大厂
职业:全栈工程师
第一面
首先上来给了一套题,两大业,我拿到后,翻看了一下,汗水直流啊!一边擦汗一边做!题目做完开始按照做的题提问环节。
- 关于css3里阴影的一些知识。
- div布局相关的知识,涉及双翼齐飞,盒模型等。
- javascript同步异步的输出顺序问题。
- 关于Promise的then,catch,reject,all,race一些api的用法问题。
- 一道关于动态规划的算法题。
- 一道概率论关于摇硬币正反面概率的问题。
问完后,接下来又做了一套题...
这一套关于nodejs的,主要涉及流(stream)与Buffer,事件触发器(EventEmitter)等相关模块的认识与使用。这一套基本满分通过,因为之前专门学习过这几个模块,接下来进入二面。
第二面
面试官是一个漂亮的妹子,但是非常犀利,上来做了自我介绍后,直接进入正题。
-
可以手写一些Promise么?不是写Promise怎么用哦,让你实现一下Promise。O
-
nodejs中的异步回调中的错误怎么处理。
-
闭包为什么会造成内存泄漏?
-
javascript的垃圾回收机制讲一下。
-
了解express的内部原理么?简单实现一下。
-
写一下希尔排序算法,注意空间和时间复杂度。
第三面
由于三面面试官出差,中间隔了一周多。后来约到面试后,一位非常年轻的小哥,大概刚30左右的样子,很儒雅客气。
- 从页面输入一个链接到加载成功过程中发生了什么,尽可能详细。
- https相关原理,涉及中间人攻击,证书协议,加解密内容。
- nodejs的运行原理,有哪些优缺点?对nodejs怎样的看法?
- 之前项目中的一些总结。
- 聊了一些关于他们正在做的事。
五. 某金融巨头
职位:前端/Nodejs工程师
第一面
- 前端模块化,使用过的打包工具有哪些,打包原理,关于webpack多一些。
- 简历有做过断点续传的一些内容,问了一些断点续传在实现方面的一些内容。
- cookie与session原理,还有token相关的一些内容。
- React的使用经验,react-router的内部原理解释。
- XSS,CSRF攻击过程,前端怎么去防止这类攻击。
- nodejs的事件循环怎么理解?事件循环里各个阶段的认识。
第二面
- Nodejs的内部运行机制,异步非阻塞IO与事件循环原理,事件循环中的每个阶段描述。
- 前端数据流管理工具用过哪些?解释一下这数据流管理工具出现的原因,解决的问题和它的本质原理。
-
redux这一类的工具在解决什么问题,它的本质原理详述。
-
在使用开源框架的时候有没有发现一些坑,如何去处理这些坑的。
- 做过的所有项目简单梳理一遍,有哪些收获和心得描述一下。
总结一下
大厂面试问深度,小厂面试问广度,如果有同学想进大厂深造一定要有一个方向精通的惊艳到面试官,还要平时遇到问题后思考一下问题的本质,找方法解决是一个方面,看到问题本质是另一个方面。还有大家一定要有目标,我在很久之前就想来蚂蚁这边,然后默默努力,每天看一些大佬们的文章,总是觉得只有再学深入一点才有机会,所以才有恒心一直学下去。