奔三路 - 你30岁前的学习路!

奔三路学习网

当前位置: 主页 > 前端面试通 > 笔经面经 >

超详细的研究生实习面经,附心得和答案

时间:2020-06-16 10:25来源: 作者:小邱
其实面试被问到的仅仅是掌握的知识的一部分罢了,都是靠你平常的积累。 至于面试准备这块的话,就是重点突破 + 面试技巧了:

因人而已,每个面试官确实都不太一样。我也就一面被问了三四个算法题吧,而且我感觉面试官对我算法题的期待也不是那么高,算是非重点部分吧,毕竟开发中的算法题并不多,就算是代码题也都不会太偏,除了算法题还有关于某个需求的场景代码题。三面不难的,能实现准备的地方也不多,重点就是项目加场景设计,平常心交流就好

 


其实面试被问到的仅仅是掌握的知识的一部分罢了,都是靠你平常的积累。
至于面试准备这块的话,就是重点突破 + 面试技巧了:
1. 重点突破:重点准备项目部分和框架原理、源码部分,因为这些准备好了就是加分项。当然也是其他基础过关的情况下,基础包括js、css、框架基本使用、网络、数据结构与算法等
2. 面试技巧:加分项准备了那么多,当然要在自我介绍或者简历中提出来了,要不岂不是白费功夫。或者在跟面试官交流过程中往这方面引,也就是带面试节奏,这个面试技巧感觉是所有面试的精髓,也就是在面试官面前展示你事前准备好的有一定深度和吸引力的内容,直接暴击无解。

 

4-15日字节约面试:

本来自己准备春招暑期实习面试就晚,4月中旬才在牛客上找人内推了日常实习(字节的暑期实习和日常实习本质相同,区别不大),不抱任何希望,甚至都想撤回投递。突然接到HR小姐姐打来电话约面试时间,表示很懵,都不知道是之前投的哪个,本来约当时的周四/周五面试,HR小姐姐直接跟我商量约下周一视频面,也是想让我多点时间准备,甚至还给我发前端实习生面试重点(虽然之后也没用上),体验非常nice,对我来说也很关键,给HR小姐姐比小心心。

4-20日字节一面(1h20min):

Data架构组的一个帅气时尚的小哥(莫名觉得像UI),是在家里远程面试的。

1. 自我介绍:

答: 一定要事先准备好,总时长不要超过两分钟。基本信息说明学校和学历就行了,重点是展现你的优势,如学业成绩、岗位相关学校经历、岗位相关大赛经历、项目经历、实习经历、个人博客等。别说你现在感觉自己没有优势,仔细挖掘肯定有,如果真的没有,那就停止你的“牛客面经大厂速成之旅”,老老实实的打好基础、找项目练手,或者找个难度小点的小厂实习,去增加你的优势。

2. webpack打包过程:

答:webpack原理相关的基本操作,重点在于理解webpack的意义和作用。

3. loader和plugin区别:

答:我从二者的差别,比如本质、作用时间点、作用特点、执行顺序等等进行了阐述。

4. 如何写一个loader / plugin:

答:我根据上一问的回答进行展开,详述了二者的作用过程,然后说了一下二者的实现思路,然后就是两个人一起讨论了loader的实现过程对,没错就是一起讨论,氛围极好,像跟一个学长讨论技术问题一样,自己的热情也被调动了,让面试氛围不会那么紧张。

5. 详细说一下babel的工作过程:

答:代码拆分,token流,AST解析树,巴拉巴拉巴拉。。。因为对ast解析了解不够深入,没有展开回答,但面试官点点头,说他已经得到他想听到的答案了。

6. 讲一下React的虚拟DOM对象和虚拟DOM:

答:我从React的渲染过程开始回答,从JSX讲到Fiber,巴拉巴拉巴拉。。。。。自己对日常整理的React原理相关的问题进行了“线性”的梳理,不是简单的一问一答,所以能比较清晰明确的阐述各个过程(React渲染过程、合成事件触发过程、批处理机制过程等),且各React原理之间是互通的,总能在相关问题上找到关联处进行拓展/深入阐述,从而体现自己对原理的理解,而不是死记硬背,建议这块通过看源码辅助记忆,这点很重要,也很加分,因为我从面试官的表情里看到了赞许。

7. 说一下虚拟DOM对象有哪些属性值?

答:一开始大脑突然短路,只记得typeof(React元素类型标记、Symbol值、防止XSS攻击),后来巴拉巴拉typeof的作用的时候想起来key值、type值等等等,然后对他们的作用进行了阐述。这也得益于面试官营造的极好的面试氛围,如果过于紧张,很可能是想不起来其他属性的。

8. 代码题:

① 根据要求写Promise异步代码 / promise 应用层考察,判断打印顺序 (二选一)

② 二叉树遍历

③ 二叉树最大深度

9. 反问:对非科班转行学习前端有什么建议?对自己在这行缺乏自信,间歇性怀疑自己

4-20日字节二面(1h40min):

穿着格子衫有绝对气场的大佬,但却“和蔼可亲”,也是在家里远程面试的。

 

1. 自我介绍

2. 讲一下在公司实习的某个项目,做了什么重要的事:

答:解决了几个贼坑的bug(涉及快应用框架底层渲染)、webpack配置优化(10s→2s)、公共组件封装/优化

3. 讲一下怎么解决项目中解决的最大问题:

答:开发、发现bug、debug、解决bug、找原因、与同事沟通、写复现Demo、记录总结

4.在项目中做了哪些webpack配置优化:

答:css压缩、图片压缩、webpack缓存等等,因实习项目比较小,也都是比较简单的处理。

5. loader与plugins的区别,第二次被问:

答:这次把整个webpack的打包过程说了一遍,从Complier编译对象的初始化到文件列表输出,在中间穿插了loader和plugins的一些要点,webpack的API,发布订阅,依赖关系图等等。(面试官:嗯,这方面没问题,那就接着往下)

6. 为什么转行干前端?

答:对编程的热爱 + 个人价值观 + 研究生阶段的机缘巧合 + 师兄影响

7. 说一下项目中的“登录校验”过程

答:cookie/session这一套

8. 无cookie的“登录校验”怎么实现?

答:一开始以为出题的目的是考察cookie导致的一系列安全问题,所以说了token、localStorage、axios请求/响应拦截等等。后来才明白面试官的重点是“不使用任何存储方式来实现登录校验”,然后我说可以通过url传递。 然后面试官开始说JWT方案,Refresh Token ----> OAuth 2.0 (OAuth认证只听过,没接触过,二面完后立马补上,推荐阮一峰老师的入门博客)

9. 代码题:

答:也是一个场景设计题,面试官自己根据Node中的某个常见处理延伸的,让我用非伪代码实现,涉及异步 + 柯里化。

10. 反问:对非科班学习前端的建议?对我个人的建议?

 

4-29日字节三面(30min)+ HR面(30min):

发量茂盛且发型柔顺飘逸、知识的广度和深度都是绝对的、面试过程中学到很多技术和非技术上的东西。

1. 快应用的特点(之前公司实习的时候用的技术栈主要是快应用)

2. 快应用和小程序在渲染上的区别

3. 详细说一下快应用的native渲染,小程序的webview渲染 ,是如何实现的

4. 从产品角度分析快应用和小程序

5. 简历中提到了three.js,都做了些啥

6. redux流程

7. redux中dispatch原理

8. 如何实现一个redux

9. 反问:对非科班学习前端的建议?对我个人的建议?

 

 

HR面就是常见问题了,比如为什么转行,自己的优缺点,老师和同学对你是怎么评价的,最有成就的一件事,为什么想来字节跳动,你希望字节跳动能带给你什么。。。我希望大家不要也不必事先准备这些问题,HR都不是好糊弄的,不是你提前背一背喊喊口号就能过去的,而且每个人的情况也大有不同,重点还是表达出自己的真情实感吧,思路清晰就行。

总结:

1. 一面上来就问原理,基础问题基本不问,不过这也都是现在大厂前端面试的基操了,相信大家也见怪不怪了。但是不是为了考察原理而问你原理,而是考察你对它的深度程度,对整体设计思路的一个把控,这都是没办法提前准备的,面试中的很多话都是平时学习过程中的一些思考,是需要脱离原理本身,对其设计有个宏观的视角和认识。

2. 二三面的问题就有时候在天上,比如考察你的产品思维;有时候在地上,比如直接问redux中的某个api的实现。

3. 根据个人情况/经历的不同,面试问题的差异就大,所以一定一定一定要重视简历和自我介绍。比如因为自我介绍中提到了看过react、hooks、redux等源码,说构建过程的时候也把发现的redux中的一些问题和解决方案说了,所以才更深入的问我如何实现一个redux。

4. 我觉得做得好的地方就是:对基础知识的笔记积累 + 对原理、源码、项目(无论大小)的换个人认识和深刻理解 + 面试技巧。

心得:

己当初选择入坑,除了导师选择上的机缘巧合和亲师兄影响,最主要原因还是对编程的热爱和个人价值观,从大二开始接触编程,通过单片机入门,跟着老师做过大创项目,毕设做了个智能车,都取得了不错的成绩,感受到了编程带来的成就感和满足感,这是其他行业很难给予的,而且互联网行业在现阶段的创新力和活力都是远超过传统行业,自己也想在年轻的时候拼一把吧,不给自己留遗憾。所以才做了这个偏赌博性质、不顾后果的选择,甚至就算是现在我都不知道我当初所做的选择是不是真的正确。我是从去年5月开始集中学习的,之前课业多,都是零碎时间看看书和视频,然后在9.10月份找实习,拿到了爱奇艺、百度、**的offer,最后选择了有成熟前端团队的**实习了三个月,在实习过程中,真切的认识到自己与科班差距,每天在完成自己的任务之后,就自己充电,日常10点以后出公司,经常做最后一班地铁,拼了命的想弥补差距,因为忍不了自己这么的菜。就算是在准备暑期实习面试的过程中,2 7 7的复习模式也不能避免在一开始的不顺利,有过一段低谷期,开始怀疑自己,怀疑自己当初选择的正确性,怀疑自己的学习能力,怀疑自己适不适合干这个,怀疑自己是否足够热爱。。。但尽管这么难,尽管我想过放弃,但我还是选择了继续坚持下去,骨子里的不服输吧。再次特别感激字节,就是在低估期的时候接到了字节的面试邀请,在跟字节面试官的交流过程中,感受到了他们对我的肯定,让我有了一点自信和再坚持一下的理由。

摸着良心说,我跟大多数前端小菜一样,想都不敢想能有啥胆去面字节,毕竟是年轻程序员成长的天堂,当初也是各个厂海投加上内推人的极力劝说才投的,真是没想到最后能顺利通过三面,或许这真的就是“黎明前的黑暗”吧。这条路上的人太多,优秀的人大把有,如果你想要得到,就得付出比别人更多的努力,承受比别人更多的东西。最后写下这个“心得”,也是希望给同样遇到困难、怀疑自己的小伙伴们打个气,因为我经历过,对于长期的压力和困难来说,什么鸡汤都没用,靠的就是早已麻木的坚持。同样在奋斗路上的小伙伴们,尤其是非科班的,只要你认定了这条路,明确了这个目标,请务必一定要坚持到底,再多坚持一点点或许就能看到光了。 


作者:Offer把把有

(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
发布者资料
小邱 查看详细资料 发送留言 加为好友 用户等级:注册会员 注册时间:2017-11-26 17:11 最后登录:2020-06-16 10:06

奔三路小程序已改版