前言

最近朋友的师弟找到了我,早早地就准备了询问问题,我震惊了,没想到哇,我还小有名气,话不多说,直接开门见山地看问题吧:

1. 算法题应该刷到什么程度?除了剑指offer,其它类似Leetcode还需要刷哪些题,是刷一些像HOT100类型的,还是不同标签的题象征性的刷点

2. 其它像react这种框架,还有flutter、element这种目前框架中没用到的技术是不是不急着学?

3. 还有webpack、node这种应该学习到什么程度,目前webpack只是照着视频模拟了一下,不过这种东西很容易忘记,node还没怎么接触过

4. 网络协议之前看过面试时会问到输入url之后会发生什么,这块东西是不是直接看面经然后总结知识点会比较好?

阅读须知

对于这四个问题,我想应该是大多数人都会考虑的,在这里,我仅发表我自己的观点与想法,如若与你的不同,请 海纳百川有容乃大。当然,你也可以在留言板提出你自己的观点(公众号没有留言板,但我会在文末提供给你留言板,欢迎来留言~)

我仅代表我个人建议,你觉得你的观点是对的,那就是对的,我不会有任何意见。

问题一

算法题应该刷到什么程度?除了剑指offer,其它类似Leetcode还需要刷哪些题,是刷一些像HOT100类型的,还是不同标签的题象征性的刷点

对于第一个问题,算法刷到什么程度。我觉得前端相比于后端来说,算法这一块都还好,刷题的话,如果是之前没有接触过或者零基础,应该要花费一个月左右的时间准备,至于刷哪些题的话,最好是分专题来刷题,比如说这周就刷数据结构-栈,下周刷递归与回溯专题,再下周刷链表。我自己也是分专题刷的,在github上面整理一个做题路线:https://github.com/Chocolate1999/leetcode-javascript 大概80道题,主要是学习思维,当然,刷完剑指offer也是不错的选择。其次,我觉得前端算法面试来说的话考察也不是很难,我遇到的和我看的一些面经,很多就是考察一下排序算法,递归例如走楼梯,回溯的话也还是比较简单,代码量的话一般就10-20行左右。前端算法面试的话,我就觉得字节跳动会考察算法比较多,然而也不是很难,手写代码确实会常见,问的比较多的是JS原理实现,比如深拷贝,防抖与节流理解,数组操作,业务上问题,这些手写很能体现前端的能力。综上,前端算法不是很难,但也重要,这对于理解前端框架一些源码很有帮助,如果没有接触过,还是需要好好准备,有一定基础的话,找一些top题做做差不多了,面试的时候就算没能A掉,说清楚思路也不会很惨。

问题二

其它像react这种框架,还有flutter、element这种目前框架中没用到的技术是不是不急着学?

对于第二个问题,前端框架确实也很多,这个也要看自己想学的技术栈和意向公司的招聘信息,比如想去的公司,例如字节跳动,腾讯这些,我觉得学会react在面试中会有更大优势。其次,我觉得这些框架只是一个我们前端工程师使用的工具而已,不管是现在主流的vue还是react框架,说不定未来又有新的框架出来。真正体现前端人能力的还是js能力,js基本功扎实,我觉得这些框架学起来都挺快的,所以不必都学,例如大家可能都在学习vue,那么与一般人的能力差距就在于有没有读过源码,能清晰地分析讲解其中源码实现,这对于面试是一个加分项,也可以作为自己的杀手锏,其实vue源码看了一些了,会发现学习react也不是很难,没有大家所说的react就很难学,这些都只是一个工具而已。综上,如果目前在学的是vue的话,那就往底层学一点,如果已经在学react,也可以去了解一些源码,例如react-fiber,然后讲清楚redux工作流等等。

问题三

还有webpack、node这种应该学习到什么程度,目前webpack只是照着视频模拟了一下,不过这种东西很容易忘记,node还没怎么接触过

对于第三个问题,对于webpack和node来说的话,个人觉得面试考察频率不算太多吧,除非简历上明确写了会问,这些都与业务,工程化偏向多一点了,校招来说的话不会太多涉及,不过也要看一下意向公司的招聘信息,webpack这东西如果有时间可以深入理解一下,如果准备时间不够了,大概了解一下它是一个打包工具,然后看看一些面经应该足够。而node的话,现在后端也可以用js来写了,nodejs也有几个框架,比如经典express,同一个团队开发的Koa,还有阿里的egg.js,这些在自己js基本功扎实情况下学习起来也很容易,面试的话考察也较少,也看点运气咯。如果公司对这个考察比较多的话,那一般前端团队技术比较牛吧,前后端都能写!基本上就是react+ts技术栈了。

问题四

网络协议之前看过面试时会问到输入url之后会发生什么,这块东西是不是直接看面经然后总结知识点会比较好?

对于第四个问题,关于网络方面的话,我觉得前后端都是重点吧,至于输入url之后发生什么,这个其实是属于浏览器工作原理方面了,网络原理方面是这方面的前置基础,关于这方面,我也正在写我自己的前端学习路线,https://yangchaoyi.vip/posts/2021520/(这份技术路线,我会一直持续更新到2021年春招,打算在最近两周内完成一个大概,后续会持续更改)其次,网络协议和浏览器这一块问题也算比较固定,其次前端还有网络安全,比如xss,csrf等。还有比较常见的跨域问题。