往期阅读:
【面试】前端疫情下个人面试总结,目前找到合适的offer(B轮融资,人工智能行业),薪资保密。之前看过的同学请保密。谢谢
【硬货】vue全家桶+Echarts+百度地图,搭建数据可视化系统
本文将先从个人背景讲起,然后谈谈在字节跳动、虎牙、YY 以及 BIGO 的面试经过,最后讲一下关于计算机基础、算法与数据结构、JavaScript 等方面的学习经验,以及聊聊个人学习经验。
文章整理不易,欢迎小伙伴们点赞、评论吐槽~
2016 年到 2017 年在网易互动娱乐从事游戏品牌宣传后期美术、CC 语音(现 CC 电竞)的栏目包装和现场导播助手,由于一些原因放弃美术这个行业。
于是在 2017 年毕业后准备了 6 个月考研计算机,那时候真的痛苦,从零开始学数据结构、计算机网络、组成原理和操作系统,还要数学。
不负众望,没考上就出来找工作。
从以上背景来说,我的经历可以是超级减法,被人按在地上摩擦。
好像基本给我去面试就都过了,剩下内推投了简历基本连面试机会都没有……
由于家在广州,还是想在广州发展所以深圳的岗位就没去面了。
而且这几家面试感觉都有点反套路,经常黑人问号。
对 tree-shaking 的了解
{ module: false }
和 sideEffects: false
Common.js 和 es6 module 区别
你写的脚手架其中有一个模板是针对销售快速迭代的情节,能介绍一下吗
npm run page=[文件夹名称] env=[环境] method=[dev|build]
图片编辑器做的性能优化
能介绍一下缓存策略吗
301、302、307、308的区别
OK,搞完上面问题,开始做题:
做完上面 2 道题后:
面试官:emm....面试时间还没结束再做一道题目吧!
好了,面试结束,然而这才是噩梦的开始。由于算法题做的太快,不知面试官写了我啥评价,后面的面试基本变成做各种题。
然后就开始做题:
(又是 5 分钟写完)
我:这题居然说稍微难点???还好之前做过,那方法真的不是一般人想得出来。然后又做出来了。
面试结束了,感觉都是在做题。
开始做题,做了一题比较偏冷的题目,看概念我都要理解几分钟的。
虽然做出来,但是不是用数组实现,而是用链表,面试官问我如何再优化,我就是说改成跳表,空间换时间,但是其实正确答案是二分查找……
四面就比较轻松,问了一下项目就开始做题。
先从简单开始 112. 路径总和
做完后在此基础上,改变成
路径不需要从根节点开始,也不需要在叶子节点结束
虽然题目不难,我也做了减枝的处理,但是面试官说还能优化,如何减少重复计算。这就难倒我了,我知道需要用一个 map 来保存中间的结果,但是这个 map 的 key 如何设计一时想不出来。想了很久说没思路面试就结束了。
然后还问了一下别的东西,但是我不是很懂就不知清楚了,感觉这一轮面试好奇怪。前端基本没面,反而音视频处理问了很多。
这一面就是聊人生,扯得比较远。讲了一下产品一般盈利套路,如何拉新、留存、激活、转换和收益。以前在网易 CC 电竞做的事情。对中国电竞前景的看法。
由于是年前面的,所以在会议室面
然后有白板写了一下
做到上面,我就十分懵逼,我是不是面错岗位了。
然后是情景题,当场设计系统。
情景以下:
emm。。。。那我大概知道为何之前问我这么多数学问题
这个项目的难点有以下
面完情景题,就做算法题,题目也是很奇怪的。
第一题:洗牌算法,这个可以
第二题:假设有偶数位的整数,将整数分开两边,然后对每边的每个数组的每一位求总和,当两边的总和相对就认为这组数符合要求,求2n位数的符合要求数占总数的多少。。。。。有点晕
例子:287962 可以分成 287 962,其中 2 + 8 + 7 = 9 + 6 + 2,那么他就是符合要求的。
可能一面比较难,二面就比较随便:
聊得比较广,没啥重点
三面也是聊得很广,基本木有前端。
其实也没有太过特意去准备面试,其实都是靠平时积累的,在 2019 年开始我就制定了自己的学习计划了,并且每天都坚持学习。可参考 lien的每日学习
以下会分为:
顺序有优先度之分,之所以把计算机基础放在第一位,是因为经过这些面试发现计算机基础考察还有比前端还要多,甚至有些公司面试都不怎么问我前端了。
tip:里面涉及很多都是极客时间的课程,然而我并没有打广告。推荐是因为我看完后真心觉得讲的好,当然好是指容易让初学者了解和上手,深度还是去看专门的权威书做普通吧。
学习办法不是一开始就刷题,要先学点入门。
我刷的题目也不多,就 100 来道,和别人比起就差远了。
但是我做的题目范围比较广,而且都是自己总结高频再去做,命中的几率比较大。
基本数据结构
常见的算法
参考资料:
blog:
网络是前端重要中的重要,也是面试高频的范围。很多人都是一开始就去看计算机网络、TCP/IP 协议、这些书入门,也不是说不好,但是对于新手入门门槛可能太高,还没看几页就放弃了。可以一开始看点视频跟着作者一起来抓包,慢慢熟悉。
观看顺序:
最后补充的书籍
tips:
对于前端来说,http,http2,https 的握手是高频题,要主要复习。
本来想聊聊计算机组成原理、操作系统和编译原理,但是一个我学得不精,第二面试也没有怎么问,操作系统就问 linux 的一些简单指令和写一下 Jenkins 的脚本而已。或者后端对这方面会问得比较多。
以下必须要十分熟悉:
prototype
和 __proto__
参考资料:
先做一份自我检测,一名【合格】前端工程师的自检清单。然后根据自己薄弱点去看相关资料。
书籍:
入门
BLOG:
掘金好文章:
付费好东西:
对知识付费其实是好事情,站在巨人的肩膀上看东西才会远。
有以下比较经典的问题:
参考资料:
参考资料:
基础使用:
源码:
组件
使用:- Class 的生命周期 - Hooc 高阶组件 - Hook 的使用 - react-router 的使用 - Context - redux(包括mobx或saga)
参考资料:
然后 react 最难就是 fiber,fiber 的代码实现十分复杂,这时候无需太过关注代码,只需要知道,fiber 是解决什么问题而诞生,以及相关的概念就好。
推荐按以下顺序阅读文章
有能力者,可以直接科学上网看原文吧
以下按自己喜欢挑选吧:
热身做完,直接上战场吧:
视频:React源码深度解析 高级前端工程师必备技能
电子书:React 源码解析
惭愧,我到现在还没看完。
看得差不多就做点题目吧:
组件设计:
准备看 ant.design的源码
参考资料:玩转webpack
参考资料:
其实 webpack 配置都是靠抄。。。。
其实学习心得并没改变,只不过坚持做两年而已
这个之前 2018 年时候写过,就不重复了~
链接:刻意练习
对时间敏感
我桌面上有3个表
按以前一样我会有年度计划、月度计划、周计划和日需要执行的任务,并且打卡记录当天所学
为了确保大脑的清醒和减肥,我采取的是轻食。尽量不吃高 GI 食物,如过度加工过的食物,米饭等等,尽量吃低 GI 食物。GI 其实是血糖指数(glycemic index, GI)的英文缩写,也译作血糖生成指数。主要原理是当人血糖过高或者过低时候,会容易犯困,大脑运转速度变慢。所以要保持血糖的一定稳定,就能减少疲惫感,使效率更高。顺便可以达到减肥效果。
往期阅读:
【面试】前端疫情下个人面试总结,目前找到合适的offer(B轮融资,人工智能行业),薪资保密。之前看过的同学请保密。谢谢
【硬货】vue全家桶+Echarts+百度地图,搭建数据可视化系统
THE END
感谢您的阅读,如果你觉得我的公众号还不错,请多帮我推荐给你的朋友,多谢了。
前端大牛爱好者:每天一篇前端技术文章,不定时前端干货发送
欢迎长按(扫描)二维码关注:前端大牛爱好者
粉丝专属福利:公众号关注回复“前端架构设计”,将限时领取书籍一份,每天只限前50份,已累计下载超过30000份。