现状和背景
个人背景

我是17年毕业的,大三升大四的暑假期间开始学习前端;在这之前一直在小公司打滚;而且至今已经换了四家公司了(算上接下来入职的公司),可谓跳槽非常频繁(其实是小公司容易倒闭)。如果说别人的经历的是如何的加分,那我得经历大概是负无穷。
在这样的背景下,我从2019年末到2020年三月底为止;基本面完了深圳大多大公司和一些小公司;这篇文章主要就是讲个人简历准备、面试准备和心态方面的经历。
面试情况

腾讯 - offer
京东凹凸实验室 - 谈薪环节
字节跳动 - 谈薪环节
富途证券 - offer
Coding - 谈薪谈崩
顺丰 - 笔试 + 一面(薪酬面试官直言给不到,就没继续下去)
还有一些中途挂了的公司(蚂蚁、阿里国际化、大疆、微众)
可能大家觉得面试收获不错,但其实我拿到的大厂offer基本是2020年3月份左右收到的,而面试挂掉的基本是2019年年末;当时真是陷入了自我怀疑和崩溃之间。下面具体说一下,个人的整个心路历程吧。

写作本文目的

写作本文的目的,除了抒发自己最近面试的一些感想,另外就是为了给有技术实力却缺少背景的技术同学提供一些进大厂的实操经验;对于背景过硬的同学其实参考价值不大(飞龙骑脸还能输?)。

面试前准备
技术基础

扎实的技术基础是面试大厂的前提

JavaScript基础(ES6+)
浏览器基础(Dom Api、Bom Api、运作机制、渲染原理等等)
算法基础(常见数据结构的应用(栈、队列、树、链表)、dfs、bfs、简单的dp)
网络基础(https、http、http2、dns、tcp等等)
上面这些基础知识算上是基本要求,而且大多需要日常的积累,基础问题最好还要答出具体的应用场景和解决了什么问题。

例子:

栈的应用:实现面包线或者路由组件,是典型的栈。
dfs:vue diff过程中采取的策略就是dfs,优势是****。
http2解决了什么问题?解决了http大请求阻塞等等。
另外就是原理题目要答的够细致:

浏览器加载/解析流程
浏览器渲染原理
event loop工作原理
最好能够去看一遍HTML Standard。

上述这些问题如果停留在看技术文章,如果遇到深入的问题会被问懵。

如果对自己这方面的技术有信心后,就可以去刷面试题进行查漏补缺(面试题真的只能当查漏补缺看)。

另外不要看不起一些基础技术,觉得用到去查就行了,常见被我们忽略的基础:

正则表达式(我一开始忽略了,死的很惨)
隐式转换(我一开始忽略了,死的很惨)
可能其他同学也会有各种平时觉得用不上的技术,压根看不上的技术,觉得没必要看。但到真的问到就凉了,所以我觉得是看的越多成功率越高。

框架层面,类似react和Vue反而没有太多问题,基本上了解实现原理,看过核心源码,理解设计上的理念就问题不大。

工程项目基础

个人之前还发过一条沸点吐槽自己项目不够优秀,老实说大多数前端同学的日常业务就是写写后台管理界面、切切图;业务毫无复杂度,即使业务有复杂度也不一定和面试岗位契合。

个人也是这样的,做得是金融方面的业务,虽然存在一定的复杂度,但业务专业性太强,面试官根本不懂我做得是啥;一开始我只要聊自己写的业务,面试官基本处于懵逼状态,然后就挂了。

所以后面工程和项目相关,我主要说的就是大家都能听得懂的方向了:

性能优化(内存、初始化)
前端监控(用户轨迹埋点、错误监控)
如果项目不大行的同学可以考虑聊这方面的实践。在聊项目实践的时候需要注意的是深度的问题,在小公司的场景下,往往对工程化的实践是非常浅薄的。比如说问初始化优化回答的就是:dll分包、按需加载、图片base64、gzip压缩。显得非常苍白,在回答工程化实践的过程中个人个人认为需要说清楚下面的问题:

为什么要做这件事情(交代背景和原因)
实施过程是怎么样的,遇到了什么困难,如何解决?(确认你参与度)
最后取得了什么样的成效(最好能提供实际数据)?
拓展:在大量的用户(数据)环境下,会遇到什么样的问题?
比如:监控海量日志怎么样写入(小公司哪有海量日志,所以需要自己拓展思考)
这些问题都要在面试前,自己提前想清楚,临场发挥往往不如意。

面试过程中技巧

面试过程中除了写编程题和问一些基础问题;其余时间基本都属于聊天,所以重点在于能把天聊下去。聊得开心也就过了;聊得卡顿,让面试官频繁看简历找问题问,基本就凉了。

所以事先准备一套能够足够深入聊下去的技术方向就显得非常重要,自己脑补好一套连续的问题,自问自答;在面试过程中,引导面试官到自己事先准备好的方向。

心态
不得不说心态非常重要,面试是双方互相选择的过程,最终结果受多方因素的影响:

对于面试者来说:扎实的技术 + 运气 = Offer

毕竟不同的公司、不同的部门、不同的面试官的面试偏重都是不一样的,要拿到一个合适的offer不仅技术重要,其实运气也很重要。

在我个人的经历中:一面面试官赞赏我技术基础扎实,二面面试官直接说我技术基础不扎实的情况也是发生过的。

在现在相对内卷的环境下,面试更多是要表现比其他人更好,而不是达到某个标准;所以摆正心态还是蛮重要的,没面过也不代表自己技术不行。

另外就是制定好目标,规划好自己到底为了什么而跳槽,打算去哪家公司?为了平台还是钱,亦或是纯粹想换个环境。

就我个人而言,一开始锁定的目标就是腾讯,中间迷茫了一段时间考虑要不要去中小公司算了;后面觉得跳槽去小公司并非我的目的,最后坚持下来才拿到了腾讯的offer(可以看到我有些公司谈薪谈崩了,有部分原因就是我故意开的很高)。

简历的准备

最好当然是每一份岗位单独准备一份简历。但是对于个人而言,我投出去的简历并没有把握收到面试邀请(背景不够硬),所以每份单独准备时间成本太大,所以我这里是只准备了一份简历的。

对于简历而言,个人认为大概三个方面:会什么、做过什么、能做什么

项目描述遵从star原则;而不是单独罗列做过的东西,最好的检测方式我认为就是,如果自己是面试官,看到这份简历能够问什么问题,这样的问题足不足够支撑我进入大厂?

另外有个雷区就是切忌简历过于夸大,被问到自己无法hold住的面试题就完了。

例子:

初始:我写了推广落地了http2(在小公司的环境下基本改个配置,做一些测试就行了);在大公司的环境下更换应用层传输协议,其中工作量和技术评估相差巨大。
后续改进:在前面加了限定词,公司内部项目推广落地了http2;这样把影响范围网络环境限定在比较简单的环境下,也说明了自己实际使用过http2。
在面试的过程中,应该不断修改自己的简历,把自己回答的好的问题凸显在简历上,吸引面试官提问;把答得不好的问题在简历中边缘化。

下面是个人简历部分的截图,能够获得面试邀请基本是因为这部分吧,各位看官可以做个简单参考:

各大大厂的面试风格
每个厂之间的面试风格都不一样,甚至每个部门之间的风格都不一样;面不同的公司进行有针对性的准备可以提高成功几率。下面我说下个人经历下来的一些看法。

头条飞书、富途证券(算法扎实优先考虑)

把这两个放在一起说是因为这两家都喜欢写算法题。

富途证券这边一共三轮技术面试,基本上每轮都两道以上的编程题或者概率题,全程基本不会问项目,只有第一轮面试会过一遍前端基础问题,后续基本写题就完事了;反馈非常快,大概面试完第二天就能知道面试结果。

头条这边面得是飞书,每轮面试官除了固定的编程题外,像是有明确的问题方向;第一轮偏重前端基础,第二轮偏重项目设计,第三轮主要是针对某一方向深入挖掘和有点压力面得感觉。

另外头条比较好的地方是每轮面试记录比较详细,基本不会出现两轮面试之间问重复问题的情况;头条的反馈也是非常快的,基本上也是面完第二天就有反馈了。

这两家基本上要对自己的算法有一定信心才去尝试,因为算法题占面试的比重极大。

京东凹凸实验室(适合复杂工程化和nodejs方向)

京东也是三轮技术面试,京东是我面的唯一一家没有编程题的大厂。

三轮技术面试基本偏宏观,比较少落到具体某个点的细节;也是唯一一家问了webpack的(我简历中并未提及webpack);京东面的是凹凸实验室,场景比较核心(负责618和京东PC首页),内部平台使用nodejs;成员基本上全栈开发。

着重nodejs的工程化方案、部署运维(内存管理、监控方案);webpack内部原理和针对小程序的应用;面试官对小程序、多端方案、前端微服务这些比较感兴趣。

另外据反馈,商家平台经常挂(nodejs),所以有这方面经验的同学去面基本很稳;基础题极少。

阿里和蚂蚁

这两个都挂了,而且说实话并不知道为啥挂了;二面之前会有道编程题并不难,但不能debug,到时间会自动提交;而且不知道执行结果。

总体的面试风格比较务实,一面基础,二面会根据项目展开进行提问;

个人建议的话,面阿里还是选择杭州的岗位比较靠谱。

腾讯(比较综合,但题目不算难)

腾讯面试轮次很多和流程较慢,如果像我这样下定决心要进腾讯的,要做好长期作战准备;个人面试腾讯经历了五轮技术面,一轮GM,一轮HR一共七轮;前后一个多月的时间。

腾讯因为技术面比较多,所以总体问的会比较面面俱到,编程题、前端基础、项目、设计都会有所涉及;

个人经历大概是组员负责面基础、leader会根据项目进行展开提问、总监(非前端)聊技术视野、面试委员会会比较难类似头条三面、GM聊人生;leader后面的面试基本都会问职业规范和跳槽原因;这些面试之中会穿插编程题。

总得来说,腾讯面试难度并不高,但是容错率比较低,一些问题没回答到点上就会挂;因为本身轮次也非常多,所以造成了面腾讯非常考验心态,两次面试之间的间隔非常随机,有可能隔一天,有可能隔一周;所以面试腾讯心态是最重要的。

一些面试题
编程题

实现Promise
实现xss-filter
实现正则获取url params
合并n个有序链表
渲染一个超长的list,实现dom节点的复用
random7实现random10
实现正则切分千分位(10000 => 10,000)
实现正则切分银行卡卡号(像实体卡一样四位一个空格)
实现jsonp
判断一个ipv4地址是否存在已有的1000万条ipv4地址中(bitmap)
实现bind,实现new
一次可以走一步或者两步,n个阶梯的楼梯有多少种走法
实现扫雷(二维数组,随机分布地雷坐标)
计算累进税率
求一个数组中比左边和右边的元素都大的元素(On)
实现双向绑定
实现InputNumber
上面基本上是个人半年来遇到大部分的编程题,还有一些不大好描述的;还有一些闭包相关的编程题都算比较常见的题目了。

网络和安全

https原理(握手过程)
http1和http2有什么区别,http2优势
http常见返回码及其含义
http缓存控制,协商缓存相关的几个头部的之间的优先级关系
什么是cors?为什么要用cors?
xss是什么?如何防范?具体例子,jsonp如何防止xss?
cookie有什么用?存在什么问题?如何解决?crsf如何防范?
dns寻址过程?简述cdn原理
其他简述题

谈下vue和react的差异
谈下对react hook的理解
谈下对typescript的理解
谈下对前端微服务的理解,有什么好处,有什么坏处
谈下对serverless架构的理解
谈下react fiber的理解
浏览器输入url后流程,尽可能详细
前端适配方案
谈下mobx和redux的差异和选择
如果让你从零主导一个项目,描述下整体思路,前端后端,开发到部署
如果让你搭建一套前端监控方案,具体思路
如何定位内存泄露
除了这些比较通用的问题,大多还是聊项目具体内容会多一些;由于面试完有点久了,题主一个只能回忆大概这么多问题,实际远不止这么多题目;实际可以发现简述题和我写的简历是息息相关的,所以其实除了基础面试题可以翻阅一下面经;这类简述题只能当做参考。

没有标明具体的公司是考虑到可能会有部分公司不允许发面经;如果有同学对具体某个公司感兴趣可以留言。

总结
疫情期间总体行情还是只有头部公司在进行招聘,题主面得小公司都是去年面得;头部公司岗位还是比较充足的,但是竞争也比较激烈;实际上可以看到有部分岗位题主已经面完HR了,却迟迟不肯发offer,可能也被丢到备胎池里面就行对比了。

所以总体建议还是充实自己,充分准备;不要浪费面试机会。

最后祝大家都拿到心仪的offer。

大学生前端,毕业面试知道这几点,offter拿到手软相关推荐

  1. 大学生计算机面试,大学生计算机毕业面试自我介绍

    大学生计算机毕业面试自我介绍 发布时间:2020-02-26 计算机专业在目前是比较需要的,那么你会自我介绍了吗,今天小编就给大家来分享一下面试自我介绍,好好参考哦 计算机专业应届生面试自我介绍 我学 ...

  2. 计算机应聘大学生自我介绍,大学生计算机毕业面试自我介绍

    计算机专业在目前是比较需要的,那么你会自我介绍了吗,今天小编就给大家来分享一下面试自我介绍,好好参考哦 计算机专业应届生面试自我介绍 我学习成绩优良,学风端正,学习刻苦努力,奋发向上.在认真完成自身学 ...

  3. 写给初级前端的面试经验

    最近到了金三银四的跳槽季,很多人都会面临跳槽找工作,并且再过几个月又会到毕业季,越来越多的毕业生会面临这个问题. 同样,我们组因为业务需要(我们今年倒是还没有人员离职,感动╭(╯^╰)╮)需要进行社招 ...

  4. 三年前端,面试思考(二)

    为什么还有(二) 没有想到上一篇 <三年前端,面试思考> 有这么多前端同学看到. 在评论区也有很多鼓励和质疑的声音,而且群里面交流的同学两天就达到了700人. 群里有同学问了很多问题,同时 ...

  5. web前端新手面试指南:自我介绍

    web前端新手面试指南:自我介绍 面试时注意:自我介绍不能太长,也不能过短,3分钟左右最合适,尤其做为web前端技术方面的面试,更加要说到点上,我依次从学习方面.项目实践.未来规划这三个方面写下web ...

  6. 深圳某某网前端开发面试2020年12月

    深圳某某网前端开发面试 面试时间: 2020年12月8日上午10点-12点 面试形式: 笔试+技术面+项目面 笔试题 position的值有哪些? A. static B.relative C. ab ...

  7. Web前端培训面试攻略

    学会web前端技术之后,接下来就是要找到一份合适的工作,今天小编要跟大家分享的文章是关于web前端面试攻略,做好这些可以给面试环节加分,找到合适的工作几率会更高,希望本篇文章能够对大家有所帮助. ​ ...

  8. Web前端经典面试试题(二)

    上次由于时间有限只分享了一部分的前端面试题,所以本篇继续分享前端经典面试试题 一. 栈和队列的区别? 栈的插入和删除操作都是在一端进行的,而队列的操作却是在两端进行的. 队列先进先出,栈先进后出. 栈 ...

  9. vue 高阶面试题_高级Web前端工程师面试之Vue问题汇总解析

    又是一年毕业季,很多学习前端的同学面对激烈的求职竞争倍感压力,想要了解企业招聘会提问哪些问题.今天千锋郑州Web前端培训小编就给大家分享一下高级Web前端工程师面试中有关Vue的问题及解析. 1.Vu ...

  10. 记一次网易前端实习面试

    记一次网易前端实习面试 很幸运地能收到网易的面试通知,就毫不犹豫翘了课去面试了hhhh~三点的面试,因为从来没去过那个中关村西北旺区,吃完饭早早就去了,想象中那里应该是繁华的地方hhhh,到了发现都在 ...

最新文章

  1. 大数据学习01——配置虚拟机节点相关网络
  2. 目前有量子计算机,中国“祖冲之”刚刚成为当前最强大的量子计算机
  3. Qt: 找不到Qt5Widgets.lib
  4. windbg命令集合
  5. java拷贝文件夹和删除文件夹
  6. 关于ddx/ddy重建法线在edge边沿上的artifacts问题
  7. 百名花粉神秘参与3个月 荣耀9X满帧挑战计划被爆进入收尾阶段
  8. 次表面散射材质_游戏开发者怎么做出以假乱真的画面效果?大气散射渲染了解一下...
  9. 20200728:力扣199周周赛题解(上)
  10. csv文件的使用,csv空白行问题
  11. atitit.设计模式(2) -----查表模式/ command 总结
  12. 心电图是模拟计算机吗,心电图仪
  13. 读书笔记|《金字塔原理》第三章
  14. 手把手教你:微信小程序内嵌网页或H5页面
  15. 失落的帝国攻略java,失落的帝国 --- 吴哥旅游日记(8)
  16. 51单片机键盘、矩阵键盘松手检测
  17. 找不到合适的工作怎么办
  18. DB DBMS SQL 分别是什么?
  19. 高效搬砖之EXCEL查找公式LOOKUP系列
  20. Maven打包Excel等资源文件损坏问题

热门文章

  1. 最新vue实战视屏 vue2.x thinkPHP5.0后台 nodejs+mong0DB
  2. 哈哈,美食是生活的重要组成啊,自己烹调鲍鱼
  3. 【CAD.Net】第四课:添加实体类和符号表到图纸
  4. vue和java图片上传
  5. 关于SQL:已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行
  6. 如何动态创建水晶报表
  7. 鸡兔同笼,有35个头,94只脚,求鸡兔各几只
  8. 家庭“好用”优化师:每一件好物都是在积攒生活闪光
  9. 新的开始,fighting
  10. DELL台式机安装Centos7无法正常展示图形化安装界面