阿里腾讯面试梳理个人成长经历分享

大家好,我是若川。欢迎加我微信 ruochuan12,长期交流学习。今天分享一篇江西师范大学大四同学学习一年前端入职腾讯的经历,关注很久的读者朋友应该知道我也是毕业于江西不那么知名的高校。微信预计阅读只需18分钟。点击下方卡片关注我,或者查看源码系列文章。

前言

偷偷的发面经,然后惊艳老铁们。

小插曲,周六发了一篇关于蚂蚁和腾讯的面试题,出于一些原因,觉得内容不妥,存在着泄题嫌疑(高压线警告⚠️),吓得我赶紧

考虑到阅读效果不错,还是想分享出来,于是对部分内容做了修改,把原题内容删除。

历经一个月战线,投了阿里腾讯,具体部门这里不展开了,都是核心部门,提供的舞台很大,至于最后选择去哪一家公司,可以关注文末。

接下来复盘一下这一个月来的面试感受吧。

本文没有具体的题目,根据我的简历,来展开谈一谈,可能会被问到的题目。

最后以下都是个人观点,个人能力有限,如果有错误,希望能纠正我。

简单介绍

2021届毕业生,掘金里面的TianTianUp,双非本科院校(江西师大),没有听错,那个彩礼“天价”的省份。

21届里面,应该算起步比较晚的了。2020年暑假7月份,才开始认认真真“复习”前端,当时连js作用域,闭包,浏览器缓存都不清楚。因为起步晚,所以后续错过了秋招。

现在我才深刻意识到,视野的重要性。

当时大三学了点vue,做了点看起来牛逼的东西,就觉得很牛了,于是春招投了阿里,结果惨不忍睹。

重点当时没有放心上,还是继续玩,继续打游戏。

还好之后觉悟过来,才有了后面网易的故事。

嗯,也导致后续很多环节跟不上其他同届大佬。

秋招的时候,jack,三元同学,林不渡,单哥,承和等大佬都是offer收割机,各种腾讯,快手,字节ssp,无不冲击着我这个萌新。

暗自下决心: 我也要去大厂核心部门,去做有意思的事情。

有了规划,接下来就是看技术博客,动手实践,总结梳理,写博客。

熬了无数的夜,无数个周末在社区徘徊,这个知识点不懂,查文档,看不明白就换一篇文章,争取做到一遍过。

这么坚持了半年,2021年的春招,结果让我满意,但结果还是有些遗憾的。

满意的地方: 借面试机会,跟着大佬交流学习了一波。

遗憾的地方: 其他大厂没有去尝试,没有趁着面试机会去接触其他领域的大佬。我觉得原因可以归咎于:

  • 找不到大厂核心部门的内推,希望去核心部门。

  • 需要笔试,觉得流程很慢,没有人跟进。

所以后面提到了面试机会。

整个春招的过程中,聊一聊心态发生的改变吧,迷茫--紧张--坦然--自信,最后到意向书,到拿到offer。

面试机会

基本上我是靠内推的,是一位校招大佬帮忙推的,觉得履历还行,给了个面试机会,才勉强给我通过的。真的是勉强给的机会,因为学校确实跟985比起来,差距很大,还好有网易实习经历buff,加上写了点博客笔记等笔记输出,才有这个面试机会。

内推,内推,内推,这是最快,最有效的方式,可以第一时间知道面试结果,面评,以及后续的面试流程。

至于其他的,美团,百度,shopee走的都是官网流程,需要笔试。腾讯这边到四面总监面的时候,我基本上都放弃了。

最好的方式就是找靠谱的内推吧,比如秋风大佬,字节找ssh(昊神),很靠谱的。

好的履历也很重要:

  • 学校985,211。

  • 大厂实习经历,众多offer。

  • 扎实的基础,读过源码,理解框架设计思想。

  • 社区有一定影响力,坚持做博客产出。

  • 开源贡献,开源项目维护者,热爱前端。

基本上,我会把握其中的一两个点,争取做好,才会有后续的面试机会。

有了面试机会后,剩下的就是如何去做好一场面试的准备工作了。

如何准备

这个链接里面总结的特别好,我基本上看它复习的。

https://bitable.feishu.cn/app8Ok6k9qafpMkgyRbfgxeEnet?from=logout&table=tblEnSV2PNAajtWE&view=vewJHSwJVd

不过面完,给我感觉,重在平时的积累,基本上都是围绕项目展开的,之前做的项目得好好准备一下,比如项目难点,项目如何做优化的,项目的亮点。

这里推荐一个链接:

面试被问项目经验不用慌,按这个步骤回答绝对惊艳

https://juejin.cn/post/6844904102795706375

至于其他的部分,更多的是向面试官展示自己的优点,闪光点。

面经心得

基本上都是围绕我的简历来梳理内容,有兴趣的话,可以联系我要pdf,可以给你参考下。

专业技能

简历上技能写的不多,基本上保证的是我写的都能聊上两句。

从我简历部分来看,主要涉及几个点:

  • React部分,这里面可以问的内容也很多。

  • 浏览器相关的。

  • 计算机网络部分。

  • 算法与数据结构,基本上这算是我的一个杀手锏吧。

  • webpack相关的,同时会涉及到babel。

我现在回顾我的面试部分,都是围绕这些点张开的。可能我是应届生校招的原因,很多时候,考察的是我学习能力,理解能力,对前端热爱的程度这些方面。

基于这几点,展开聊聊我面试过程中会注意的点,以及围绕我写的专业技能,会聊到的一些话题。


自我介绍

很重要的一个环节,说不定可以奠定本次面试的节奏,会根据你说的内容,来张开问你,同时也会给给面试官一个缓冲的时间来重新熟悉你的简历

面试自我介绍,要:

遵守极简原则,突出重点,忽略细节。

小参考:

  1. 我是谁。

  2. 我的亮点,可以描述一下几个点,最近的经历。

  3. 我为什么需要这份工作(其实这个我自我介绍都是忽略的)。

围绕上面的点,我会着重突出,我在大学的经历,主要是算法相关的经历,接着就是我在网易实习期间的收获,以及中间会持续更新博客,写总结。

基本上,面试官对我的掘金博客,以及大学搞算法的经历感兴趣,进入了自己擅长的领域,就会轻松很多。

记住一个点,面试是跟人打交道,学会去展示自己,以及及时跟面试官做合理的沟通很重要。

以上是我会注意的一些点,我也是这么去做的,尽量围绕自己的亮点去展开,当然了,有些面试官有自己的风格,可能一上来就是问你项目或者做题,那么我们应该如何把握呢。


项目相关

我觉得项目相关的话题,是个挺难的话题,围绕它展开的话,可以延伸出很多话题,我列举了些有意思的:

  • 项目难点。(如何发现问题,解决思路,最后结果)

  • 项目考虑过优化吗,你是如何优化的,思路是什么。

  • 项目的组织架构,你对它的现有架构的理解,哪些优点值得借鉴,哪些缺点需要改进。

  • 如果让你从0到1建一个项目,你考虑的点是什么,有哪些流程需要注意的。

  • 项目中代码规范,你们项目有方案吗,你了解的代码规范有哪些方案。

  • 说一说项目中你们是如何测试的,有哪些单元测试方案,能不能说一说。

  • 项目中引入TS的原因,为什么这么做。

不过对于应届生来说,问项目都是围绕你简历来问的,比如我当时的项目,我觉得没有好的难点,我就着重说明了下,我对项目是如何优化的,优化了哪些点。

整个面试下来,都会问,你项目写到的优化的地方,能不能具体聊一聊。

这个时候,真的要把握机会了,问到你会的点,你得有清晰的思路,可以参考STAR法则。

重新回顾一下 STAR 法则四要素:

  • Situation:事情是在什么情况下发生,基于一个怎样的背景;

  • Task:你是如何明确你的任务的;

  • Action:针对这样的情况分析,你采用了什么行动方式,具体做了哪些工作内容;

  • Result:结果怎样,带来了什么价值,在整个过程中你学到了什么,有什么新的体会。

这里有段话,我觉得说的很不错:

往往大部分同学一上来就直接介绍做了什么以及实现的过程,条理也比较清晰,内容也颇具技术含量。但很多同学很容易忽略了 Situation 和 Result 的部分也就是背景和结果。或者是在面试官进一步了解追问细节的时候容易惊慌失措。这些原因往往都是由于面试前对自己的经历没有将来龙去脉讲清楚以及总结不够全面和深入。

基本上,我对项目这块目前能聊的就是这么多,对了,如果你面大厂核心部门,可能还需要关注的点是,项目的组织架构理解,让你实现一个项目,整个流程需要注意考虑哪些点。

这块真的可以着重准备一下,以我这次春招经验来谈,是重点。

聊完项目,接下来就围绕我简历写到的专业技能,依此来梳理一下。


JS基础

考察的是一些基础问题,这里最好过一遍,切记不要丢大分。

比如我写了对异步编程有理解,所以得看一下,异步编程的解决方案,它的发展过程,每种解决方案的优缺点,得了得,最后我会拓展一下async方案存在的缺陷,对错误的捕获,聊到babel相关的,现有的babel社区是否实现了对async语法做错误捕获处理,以及谈了下,社区里面的这个插件存在的缺陷。

总结的话,我会围绕面试官问的基础点展开,把相关连的部分描述一下, 面试官有兴趣的话,会顺着你的思路往下问。

至于面试过程中问到JS基础相关的题,这里就不列举了。


React相关

第二部分,简历上写了React相关的,那我总结了些可以会问到内容:

  • React框架的原理,聊一聊它是如何执行的。

  • React更新流程,主要经历了哪些步骤。

  • React的setState的理解,需要注意哪些。

  • vue和React区别,如何从项目的选型上区分它们。

React框架的理解,vdom,patch,批量更新,渲染的过程,经历了啥。

你对React源码很感兴趣,可以关注一下卡颂大佬,他的自顶向下学 React 源码值得推荐学习一下。

当然了,React真的要问,太多可以问你的啦:

  • 比如让你手写一个Hoc组件,实现类似怎么样的功能,思路是怎么样的。

  • 比如Hook你对它的理解,当时面试问到了Hook实现原理,还好看平时喜欢折腾,看了下大致流程。

  • React-fiber机制引入,解决了什么问题,具体的流程是怎么样的,数据结构上发生了哪些变化。

  • React的时间切片了解嘛,如何实现的,流程能不能说一说。

这次问到好几个React相关的问题,更关注的点是你对原理的过程,有关注嘛,大致是一个怎么样的过程,最后又从中学到了哪些点。简历上写看过React原理相关的,得慎重啊!!!

快进到浏览器部分。


浏览器相关

这也是我简历上专业技能写到的一个点,这里也写了几个点。

  • 输入URL到页面渲染。

  • DNS解析的端口号是多少,为什么采用UDP协议。

  • 你渲染流程知道的这么详细,图层,分层,绘制,栅格化线程池,GPU加速,能不能说一下,对你开发有啥影响呢。(其实这个时候,被无情打脸了,知道这个有什么用,当时反问我)

  • 浏览器缓存。(可以拓展一下,结合webpack如何命中缓存,然后就到你熟悉的webpack领域了)

  • 浏览器进程架构历史。

  • 浏览器内核。(这个可以了解)

  • 浏览器的垃圾回收机制

经典八股文了,不过其实我感觉也是可以拓展的,问到浏览器缓存的时候,结合webpack谈一谈如何命中缓存的。比如讲到浏览器的渲染流程时,我们都知道里面的一些具体流程,比如分层,绘制,栅格化操作,然后其实可以结合实际去思考一下,有哪些具体的用途呢,这里我们需要借助浏览器中的performance来看看。

performance相关

里面有很多关键性指标,比如 Long  Task执行的细节,跟面试官交流了下,排查性能问题,我是如何通过这个Performance相关的细节去把握的,当然了,里面的内存使用情况,是否出现内存泄露问题,都可以借助它。

遇到八股文不要怕,尽可能的向外拓展,往自己熟悉的地方聊。

最近也在学习性能优化相关的部分,发现Performance相关的部分,还是有很多地方可以学习的,可以持续关注我噢~


webpack相关

基本上,看我简历上写了这部分的,会问到,部分问题:

  • webpack打包原理。

  • import最终被webpack编译打包成什么。

  • 路由懒加载的原理是啥,能不能结合webpack说一说。

  • 写过webpack loader 或者插件吗。

  • webpack 如何做性能优化。

  • babel的原理了解吗,babel是用来干嘛的。

  • 说一说常见的babel库,你有使用过哪些。

  • 写过 babel 插件吗?用来干啥的?怎么写的 babel 插件

  • 知道怎么转化成 AST 的吗?

基本上考察,你是否实践过,因为自己简历上写了这方面的,可能问的比较多。

比如问到babel原理可以这么答:

babel的转译过程分为三个阶段:parsing、transforming、generating,以ES6代码转译为ES5代码为例,babel转译的具体过程如下:

  1. ES6代码输入

  2. babylon 进行解析得到 AST

  3. plugin 用 babel-traverse 对 AST 树进行遍历转译,得到新的AST树

  4. 用 babel-generator 通过 AST 树生成 ES5 代码

基本上至少得知道它大致的原理,平时如果有积累的话,其实问题不大。

比如babel的话,推荐可以看看babel是如何处理async错误捕获转换的,这个有点意思,正好借这个机会跟面试官交流一下这块的知识点,个人觉得还是很有意思。

学的时候,多折腾一下,应该就问题不大了。


算法与数据结构相关

其实这块,我希望面试官问我多一些,因为大学期间,更多的精力放在算法。有幸碰到过面试官也是打过ICPC,CCPC等比赛的,曾经都是热血青年,最后因为某些原因,选择了前端。

聊得过程还是很愉快的~ 也是第一次,跟面试官聊到了,线段树,主席树,最小费用流,二分图匹配(匈牙利)算法,AC自动机。

似乎找回了大二那一份对算法的热情。

记得退役的时候,在QQ个签上,写过这么一句话:我永远热爱算法,无论它虐我千百遍。

可能是真的熬了无数的夜,才会有这样子的感慨吧。有点跑题了,感兴趣的话,后续会更新,我是如何走上算法这条路的,最后给我的成长收获又是哪些。

回到正题,至于这部分的话,我觉得没有一个很明确的范围吧,毕竟算法太广了,过一遍吧。

  • 有向图判断是否有环。

  • 给定一个数组,如何拆分,保证两个数组的和接近。(想到的是贪心,正解应该是dp)

  • Json.parse()实现。

  • 常见的数据结构。

  • 数组和链表区别。

  • 时间复杂度和空间复杂度计算。

  • 排序算法

  • 你是如何看待算法的,给你的收获是什么。

算法很重要的,对你未来的发展,我觉得还是很有必要去学习的。至于怎么学,我没有能力回答这个问题,要我给建议的话,看书是一个选择,如果要临时应对面试,刷一刷leetcode来说,只能说短期有效果。

个人建议:

可以结合书的内容,分专题去刷,比如动态规划dp专题很难,我记得我当时看完书后,对它的理解就很清晰了,当然做题是另外一回事,通过题目不断巩固你对一个算法知识点的理解,我觉得是没有问题的,但是至于完完全全刷leetcode,应付面试,不从最基础的开始,这样子“超车”,觉得意义不大。

以上是我个人理解,能力有限,说的不对,您就当看个笑话。

下面是自己发布在公众号上面的算法系列文章⬇️

算法总结


个人经历

问到这部分的话,可能是总监面你的时候会问,也可能是hr会问,到hr环节的话,基本十拿九稳了。不过也不能大意,说不定一不留神,一个月的面试付诸东流,还是要认真对待的,罗列了几个点:

  • 整个经历自我介绍,越详细越好,什么时候接触计算机,什么时候接触前端。

  • 整个经历中,你认为最值得骄傲的事情,最难的事情是什么。

  • 什么事情让你自豪,什么事情让你有挫败感。

  • 未来的发展,自己的规划。

  • 为什么现在才来秋招,不选择秋招。

拿我来说,我双非本科,最担心的就是学历这块,内推的人也告诉我说,学历有点小问题。当时hr明确问了我,你对现在的学校满意嘛,师范类的院校,怎么选择走软件工程呀,诸如此类的问题很多,无不困扰着我。

不过确实没有办法,实话实话,为什么高中成绩差,又为什么选择软件工程,争取做到坦诚相待的态度,表达出自己最真实的想法吧。


小结

看到这里的话,可能对你来说,没有具体说明白,哪些知识点会考,哪些不会考。

我面腾讯和阿里的时候,也没有看到我这个部门具体的面试题。

我觉得更重要的是,把握好专业技能和项目经历的表达,引导面试官去往你所知道的领域交流问题,最后在这个领域拿出自己的杀手锏,这样子面试官会更有好感,接下来的交流会更加愉快。

对简历感兴趣的话,可以参考下:

简历

需要获取简历模板pdf的话,私信我(文末有联系方式),或者公众号回复,个人简历,即可获取。

最后

作为一个即将毕业的我来说,第一份工作很重要。经过慎重考虑以及找前辈交流过后,最后选择了腾讯

在即将毕业的最后阶段,我应该算交上了一份满意的答卷,未来的路还很长,让我们拭目以待吧!


最近组建了一个江西人的前端交流群,如果你也是江西人可以加我微信 ruochuan12 拉你进群。



················· 若川出品 ·················

今日话题

逛github看源码时,有时只是想看某个文件,或不想克隆仓库时。推荐使用github1s这个项目,在线VSCODE打开github项目,非常方便。

比如访问我的博客则是:https://github1s.com/lxchuan12/blog

一个愿景是帮助5年内前端人走向前列的公众号

可加我个人微信 ruochuan12,长期交流学习

推荐阅读

我在阿里招前端,我该怎么帮你?(现在还能加我进模拟面试群)

如何拿下阿里巴巴 P6 的前端 Offer

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/276064.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity 局部照亮_通过著名的艺术家照亮“光与空间运动”

unity 局部照亮Ever since minimalism momentously gained popularity in the 1960’s, the “Light and Space” movement has naturally acquired prominence for its stunning juxtaposition in geometric abstraction, luminescence, and space. Artwork from this distinc…

如何抓住重点,系统高效地学习数据结构与算法?

你是否曾跟我一样,因为看不懂数据结构和算法,而一度怀疑是自己太笨?实际上,很多人在第一次接触这门课时,都会有这种感觉,觉得数据结构和算法很抽象,晦涩难懂,宛如天书。正是这个原因…

Google Map浏览下载器

很久没有更新博客了,最近为了玩Google Map,专门写了个小工具。用以在浏览Google地图时,将关心区域的图片保存到本地。软件主界面如下图: 主界面提取子库主要功能有: 1、可以浏览Google网站的三种图:交通、地…

Node.js 开发者 2020 年度报告

大家好,我是若川。欢迎加我微信 ruochuan12,长期交流学习。今天分享一篇Node.js报告,记得当时我还参与填写这个调查问卷了,Node.js的重要性不言而喻。微信预计阅读只需7分钟。点击下方卡片关注我,或者查看源码系列文章…

视觉设计_视觉设计:

视觉设计What does the customer first see in your application? Yes, its your application design. So it is very important to pay attention to how the design is made. There’s so many factors to include, like how usually people meaning a symbol, how their pr…

开源分布式中间件 DBLE 快速入门指南

2019独角兽企业重金招聘Python工程师标准>>> 环境准备 DBLE项目资料 DBLE官方网站:https://opensource.actionsky.com 可以详细了解DBLE的背景和应用场景,本文不涉及到的细节都可在官方文档获得更细节都信息;对于刚了解到同学&…

文字输入限制_从拼音输入法的兴起看汉字文化圈的衰落

曾经韩国的报纸是这样的:现在的则是这样的:(上面两图均来自网络,如有侵权请告知)二战之后,曾经广泛使用汉字的朝韩跟越南都走上了废除汉字之路。日本虽然依然使用汉字,却也发布了《当用汉字表》…

跟各位读者朋友分享下公众号运营策略

大家好,我是若川。欢迎加我微信 ruochuan12,加群交流学习。目前我的公众号运营策略,分享给各位读者朋友。点击下方卡片关注我,或者查看源码等系列文章。可能大多数关注的人不知道,我的公众号取名为若川视野的原因。「若…

[轉載]用PHP的ob_start();控制您的浏览器cache!

FROM http://www.phpchina.com/html/28/1628-3870.html Output Control 函数可以让你自由控制脚本中数据的输出。它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况。输出控制函数不对使用 header() 或 setcookie(), 发送的…

oracle 带有变量的语句_【成都校区】Oracle SQL语句之常见优化方法总结

本帖出自于黑马程序员成都中心,更多资源可关注微信公众号1、SQL语句尽量用大写的;因为oracle总是先解析SQL语句,把小写的字母转换成大写的再执行。2、使用表的别名: 当在SQL语句中连接多个表时, 尽量使用表的别名并把别名前缀于每…

js 获取上下文后面的路径_通过在数据后面显示上下文来可视化公众意见

js 获取上下文后面的路径In 1824, The Harrisburg Pennsylvanian, a newspaper from a town in Pennsylvania conducted the first known public opinion polls in history, and successfully predicted the result of the vote in the close race between Andrew Jackson and …

甘肃甘南步班邮递员:草原上的“递爱”艰途

图为甘肃甘南藏族自治州碌曲县郎木寺镇邮政支局的投递员进行投递工作。(资料图) 钟欣 摄 中新网兰州1月25日电 (吴玉蒿)渐近春节,刘权英投递邮件的工作愈加繁重。现年45岁的刘权英是甘肃甘南藏族自治州碌曲县郎木寺镇邮政支局的一名投递员。由…

看了就会的 Node.js 三大基础模块常用 API

大家好,我是若川。欢迎加我微信 ruochuan12,加群交流学习。今天分享一篇nodejs基础的文章。点击下方卡片关注我,或者查看源码等系列文章。在日常使用 Node 进行开发的时候,会使用到一些文件系统、路径操作等基础 API,这…

ios设计登录功能_亲爱的产品设计师,这是iOS 14的新功能

ios设计登录功能On June 22, 2020 Apple previewed iOS 14 for the first time. As always there are quite some changes you should know about as a product designer like widgets, pickers, app clips, permissions and more.2020年6月22日,Apple首次预览iOS 1…

c++ int 转 short_C/C++结构体内存对齐

在面试或工作中,经常会遇到内存对齐的问题。这里结合我的理解谈一谈对内存对齐的理解。1. 为什么要内存对齐,不对齐会怎么样?内存中存放数据是为了给CPU使用,CPU访问内存数据时会受到地址总线宽度的限制,也就是一次能从…

jakob slam_Jakob Nielsen针对用户界面设计的第二种可用性启发法

jakob slamIn the pursuit of providing great user experiences, it’s imperative that digital products are evaluated. A 为了提供出色的用户体验,必须对数字产品进行评估。 一个 heuristic evaluation is essential to delivering great user experiences. I…

微软Office 365正式上架Mac App Store

今天,Office 365正式在Mac App Store上架,Mac用户可以轻松下载Word,Outlook,Excel,PowerPoint,OneNote以及整套微软的热门应用程序。用户还可以从应用程序内订购Office 365。苹果全球开发者关系高级主管Sha…

一文搞懂浏览器原理

大家好,我是若川。最近这几年,云计算的普及和 HTML5 技术的快速发展,越来越多的应用转向了浏览器 / 服务器(B/S)架构,这种改变让浏览器的重要性与日俱增,视频、音频、游戏几大核心场景也都在逐渐…

dataframe中将一列数据切分成多列

为什么80%的码农都做不了架构师&#xff1f;>>> 原sheet中数据 目的 将【备注】列切分成【key】列和【value】列 Python sheet[key] sheet[备注].str.extract(r(_.*(?\u503c))) sheet[value] sheet[备注].str.extract(r((?<).*))结果 参考 pandas.Series.st…

matplotlib可视化_EDA:Geopandas,Matplotlib和Bokeh中的可视化

matplotlib可视化Nowadays, everyone is immersed with plenty of data from news sources, cellphones, laptops, workplaces, and so on. Data conveys with tons of information from different data variables like date, string, numeric, and geographical format. How t…