写在前面
入职平安2年。深陷业务无法自拔。又到了换工作的准备期。而且这次目标是一线大厂。所以记录一下准备面试的过程记录。
1。JS基础知识。JS基础在前几年的文章中已经吧难点基本写的比较清楚了。不过后续会拿面试题来提升理解。暂时先放过JS基础。
2。算法方向。总结算法方向。在本文解释大体算法类型。
3。项目工程化方向。微前端,构建工具。
4。业务方向。前端代码生成器,页面解释器,等等新颖业务解析。
5。网络层方向,前端安全性,前端性能优化,http请求,nginx。
6。node方向以及服务器渲染。koa,express。
7。运维方向。docker。
JS基础知识
把JS基础提到第一个去准备是因为JS基础真的很重要。不是一般的重要。不过难点和要点也不是太多。后续JS基础准备也是通过刷题来巩固知识。当然不排除再刷一遍JS书。也是一个不错的提升途径。
算法方向
算法是有分类的。面试一般会从各个大类挑选出1-2个方向考察面试者对算法的了解。不过最近貌似各个大厂都加强了算法的考察。不过不重要。方向总是没有变的。
1。Hash相关
2。链表操作
3。双指针遍历(滑动窗口)
4。快慢指针遍历
5。区间合并
6。字符串操作
7。数字操作
8。栈相关
9。堆相关
10。递归
11。分治法/二分法
12。动态规划
13。回溯法
14。树的遍历
15。二叉树搜索
项目工程化
但凡入行两年,还停留在业务层面,没有了解一个项目如何自动化构建,部署,发布以及到线上正常访问。都不能算是一个合格的程序员。无论前后端。至少得知道一种构建工具。并熟练的使用构建工具构建一个跟日常开发相近的前端工程。
当熟练使用一种构建工具之后。就需要在日常项目中去深入理解如何使用构建工具来提升开发效率、项目痛点以及性能优化。通过工具让coding更美好。
业务方向
现在的公司是从事人事系统管理的。主要还是2b的业务。因为有特定的交付压力。面对不同的客户会有不同的需求。但是我们公司的标准产品规划并没有很明确。所以疲于业务。
解决相关业务问题。个人总结两个方向。代码解释器(cms)和代码生成器。
cms适用于简单配置页面,当页面过于复杂时cms会存在解释器性能问题。但是用于配置一些简单的页面cms真的很方便。
而代码生成器在2b业务中会非常适用。而且便于二次开发。后续会有一篇文章来说明代码生成器的实现原理。
而2b的产品在交付时会有不同的模块。各个模块又是独立的工程。如何把这些工程结合在一起。微前端的出现又解决了相应的痛点。
网络层面,性能优化,以及nginx
这个方向主要解决的是项目上线过程中遇到的问题。作为一个合格的前端。你必须得知道开发结束之后。你的工程如何在服务器上运行。并且你构建的项目有没有可以优化的地方,以及会遇到的问题。
node
前端的趋势。虽然没有使用过,但是你必须知道如何使用。包括webpack中使用的express,当下中间键比较火的koa。也需要了解以及实践。
运维以及docker
还是哪句话,作为一个合格的开发,你必须知道你的项目如何在服务器上运行。且需要知道服务器如何操作使用,容器docker是个什么东西。
写在后面
明确了学习方向。我们就来逐一进行重点解析。争取在今年将以上的重点全部梳理一遍。