【回馈】千字长文之21届字节+阿里前端面经&&面试准备历程

一、前言

此处面经不是简单的面试题目列表,因为时间太过久远。而是参考我自己和一些朋友的面试经历,总结出的一些东西。

二、背景

分享下21届校招经验,我一共参加过三次面试。阿里云GTS高可用架构春招实习,20年4月份(一面挂)+ 字节跳动头条GIP春招实习,20年6月份(pass)+ 阿里云GTS高可用架构秋招,20年9月份(pass)。由于本人在北京过了几个月后发现不太喜欢北京这座城市—+一些其他因素+一直以来对阿里云的向往,放弃了字节的转正答辩,入职了杭州阿里云。

———————————————————灌水凑够千字,可跳过——————————————————————

我一开始喜欢前端完全是因为觉得一个网页挂在服务器上,别人都能看到,这件事情很牛逼。大一的时候用C++撸了一个教务管理系统,觉得那个加了绿色背景的字符界面丑的一批,但是我又不会整UI。后来接触了Qt,我释放了自己的天性,用Qt疯狂画界面,越花里胡哨我就越开心。甚至一些算法类的作业,我都给整个UI界面,甚至强制加入了背景音乐的播放按钮,用自己那天真的审美给代课老师的心灵重重一击。

后来接触了java,令我惊叹的不是java这么牛🐂,而是java能用代码画UI,不用手动拖动组件,更加自由。这可真厉害啊,于是java我学的最认真的不是网络编程,也不是线程什么的,而是awt相关的UI包。于是每当心情好比较悠闲的时候,我就奖励自己用awt画个东西,比如时钟、飞机大战等。

后来我就自己租了一台学生云主机,放个tomcat在上面跑,天天有事没事找几个开源的看起来很好看的html放上去,然后分享给不了解这个专业的朋友,以此进行炫耀(:)。

再后来就接触了w3school、菜鸟教程,了解了一些基础。最后在实训项目中,接触了vue,读读官网文档,查查api,专心的在项目小组中当一个快乐的前端切图仔。做了几个web项目以及基于electron的桌面类项目。后来感觉app更适合装逼,就花了一些时间去搞一下andriod开发->flutter开发。

最后感觉其实无论桌面客户端还是app还是网页,都可以通过容器+网页的方法展示出来,那我只专心做web,然后封装到桌面或者app端不就行了?遂专心搞起了web前端。

这是参加春招实习前的一些基本情况,那个时候虽然对前端有些概念,但本质还是菜🥬,当时虽然也慌得很,但是最终也是勇敢的迈出了简历投递的第一步。

———————————————————灌水凑够千字,可跳过——————————————————————

三、正文

以下个人经验,仅供参考,不提供保障,因为公司不一样、部门不一样、面试官也不一样,都不能一概而论的。
1. 综述
大厂面试考察的一般为 基础知识(数据结构、计算机网络、操作系统、数据库等) + 方向性(前端、C++、JAVA等方向)知识 + 编程实战(比如leetcode编程题、方向性的编程题等) + 项目经历(难点、亮点、做了什么、有什么收获,你怎么带项目组的等) + 个人软素质(你怎么学习的?你读了什么书?一些智力题?性格方面的问题等) + 实习经历(收获?做了啥?难点?亮点?)。其中大头部分是,方向性知识、编程实战、项目经历。基础知识会在前面三项中体现,个人软素质和实习经历会成为加分项。所谓,基础不牢,地动山摇。专业相关的东西不行,其他的说的再花也没用。
2. 提醒
这里需要注意,千万不要以为面经是万能的,通过面经可以carry以上所有问题,千万不要这样以为,面经最好只用来查缺补漏和划重点,做一个补充。我清晰的记得春招实习一面挂的惨痛经历,当时差点整自闭了。面试前我背完了牛客网前端part所有面经,刷完了所有js+html+css的题目,并且参考了其他人发布几十篇面经,可谓是信心满满,觉得不会吧?不会还有我不会的东西吧?结果面试的时候,面试官问了我一个前端很基础的问题,但是我一点概念都没有,当场一脸懵逼。面试官又问了我一个更基础的问题,我又一点概念都没有。暴露了菜的本质,遂一面挂,卒。于是后来痛定思痛,给自己规划了一个系统的学习路径,把前端基础打扎实了。然后再扩展技术视野,发掘项目中的难点亮点。最后再查缺补漏,遂后来成功上岸。编程实战方面因为有点底子,倒没有怎么花功夫。
3. 基础知识
以下先说前端的基础知识。对于一个前端,基础知识主要是计算机网络和数据结构。其他的也会最好,比如线程进程这些基本概念要有。计算机网络主要考察的是 TCP/IP协议栈,这里面有很多可以讲的点。比如TCP协议是如何保证可靠传输的(经典永垂不朽)?TCP握手过程?TCP和UDP对比等等等等。要注意一般面试官会往下延伸,我甚至还被问过拥塞控制算法,一般讲个大概就ok了。然后就是很重要的应用层了,这里会高于课本一些。比如websocket/webrtc(一般简历有才会被问,可能属于技术视野类问题了),http1.0/1.1/2.0/3.0、https、简单请求与复杂请求等等。然后就是数据结构,一般会在编程实战中体现其实,但是不排除会问一问经典的bfs/dfs/各种排序算法及手写等等。树、图这些东西看运气,一般研发岗考察的多。
4. 方向性知识
然后就是方向性的问题了。前端考察的多为js,css较少,dom侧基本无。如果简历中有写react/vue/angular等也会成为考察点。js比如基础语法与数据类型/事件的冒泡与捕获/高级技巧/各种继承/html多线程(这个是web worker,也可以说是技术视野),还有ES6以及ES后续等新的语法点。css大多会问一些经典的问题,可以自己搜集一下。一般是常用布局与兼容,比如垂直水平居中、z-index这种,有些还会问你应该怎么实现某种效果。spa类一般你说不会,面试官不会深究,但是会的话是一个明显的加分点。react和vue考察的重点无非那几项,可以自己搜集,不再展开。但是很多时候,比如vue双向数据绑定,面试官会让你手写(如果面试过程是需要手写代码的话),一般不会单纯的问。同时也要有自己的思考最佳,比如源码阅读、应用场景思考等,就像是致命四连,是什么?为什么?怎么用?怎么做得更好?关于编程实战,一般是做题那种,比如牛客网/leetcode那种题目,这个需要根据自己当前的编程水平决定怎么刷。一个是方向类(一般存在于面试过程中需要手写代码的情况),比如手写promisy、手写bind、实现apply等等,和面试方向强相关的。同时如果有过nodejs实践也可以写上简历,也是前端的一个方向。
5. 项目经历

然后是项目经历了,一般如果有实习经历的话,也会问实习的项目经历。对于一个项目,一般主要集中在两个方面。一个是项目进行过程中候选人遇到的技术问题(难点亮点技术点),一个是项目进行过程中候选人的个人软素质。难点和亮点需要自己挖掘,技术点就是前面说的项目中涉及的方向性知识。个人软素质比如,遇到了什么问题(可以是时间上、进度上、人员配合上,也可以是技术点)?怎么解决的?有什么收获啊?其实这些都是一套差不多的方法论。可以自己思考一下。

6. 个人软素质
还有就是个人软素质,这个见仁见智了。
7. 实习经历
参考项目经历,一套方法论。做了什么?遇到什么问题?怎么解决的?有什么收获?深一点可能问到,为什么你做这个东西?你做的东西有啥用?都需要自己去思考,去感悟。
8. attention
最后注意了,作为一个前端。可能还会考察一些用户体验侧的东西,比如性能优化、web安全、产品sense等等,作为加分点。产品sense说一下,就是项目相关的,怎么做得更好?怎么去优化?对于一个东西你有没有啥想法?这个考不考察看面试官。但是性能优化和web安全如果比较熟悉的话,被问到了答得好就是一个亮点。还有就是对于一些比较经典的综合的问题,比如浏览器从输入一个url到页面展示经历了那些过程?可以借助这些问题构建自己的知识体系。答完了经历哪些过程,也可以想想怎么把性能优化、web安全和这些东西结合起来。当然还有一些项目工程涉及到的构建工具、容器、代理服务器,如果写的话,被提问到的概率也比较大。
看完之后你可能会发现,通篇都是考察点,那该怎么去学习呢?这些其实借助搜索引擎就ok。比如一些js经典书籍《js高级程序设计》《你不知道的javascript》等、再比如牛客网/掘金这些社区、再比如github里一些经典博客、再比如vue/react等的官网&github仓库、再比如leetcode/牛客等这些刷题网站等等等等。网上的知识有很多,要有所取舍,最后梳理出自己的前端知识体系。

四、广告

阿里云GTS支撑平台22年春招火热进行中,详见下图。

扫码加群进行内推。或加微信 chenweixiang688,了解详情。


#22届春招实习##学习路径##实习##内推##面试流程#
全部评论
校友好
1 回复
分享
发布于 2021-02-28 15:13
很细致,感谢师兄,很受用。希望我也能尽快拿到offer
点赞 回复
分享
发布于 2021-03-01 10:07
联易融
校招火热招聘中
官网直投
非常感谢分享,马克一波
点赞 回复
分享
发布于 2021-03-03 16:48
非常有帮助!感谢!正在面gts!希望能成功!
点赞 回复
分享
发布于 2021-03-22 21:48
滴滴,内推码在这。
点赞 回复
分享
发布于 2022-02-28 09:55

相关推荐

10 40 评论
分享
牛客网
牛客企业服务