我知道在很多中大型公司,其实有好多领导前辈、以及师傅会给那些校招生,以及应届生规划一定的学习成长路线,可能还会有定期的大佬分享。有这么一个领路人、环境在其实成长是飞速的。
我入职了一家新公司,这家单位的没有太多规范,缺乏系统的组件库积累,并且每周还会对编写的代码量进行评估。我发现在某些阶段(比如测试阶段或需求讨论阶段),为了达标,大家会往项目里添加不必要的代码,也有人会把公共组件的代码复制到自己的模块中来增加代码量。技术栈使用的是vue3 + js + ant-design-vue
,在这里大部分人都做的是项目
。
我的表弟
已经工作两年了,期间换了两次工作。第一份是在一个小公司,也是负责后台管理系统的开发。现在他在第二家公司已经工作了一年多。他逻辑思维清晰,工作态度端正,是个积极进取的 00 后青年。他目前的项目主要是处理业务表单和工作流等,包含用户权限控制的功能。有时候,他会向我请教问题,我们聊着聊着就深入到了技术层面,我还把我的博客链接给了他,他说他有空会看看学习下。
我跟他从我的博客文章中聊了下他可能需要怎么做来获得成长,不过在这个环境下,我没法直接告诉他多学点东西就能涨工资
。如果是在三年前,我一定会鼓励他,学完这些技能后换家公司,待遇肯定会比现在好。但现在,我只能告诉他,即便学习后可能面临换工作的风险(比如裁员),但也会为他带来更多的机会。
大佬请绕路,我可能给的建议并不是最好的,但我认为,对于他现阶段来说,是最实用的。
他的 js 基础可能没那么好,像一些数据处理上是有些问题,那么我建议他:
1.重新学习下js
针对数组
,字符串
等 API,像字符串的cancat、includes、indexOf、lastIndexOf、endsWith、startsWith
等等,像数组的forEach、map、filter、reduce、find、findIndex、some、every
等等,他说他有些好像没有使用过。 学习了解用法,并且写一样的源码。例如:
123'.endsWith('3'); // true
export const _endsWith = (source: string, target: string) => {
const len = target.length;
const substrValue = source.substr(source.length - len, len);
return substrValue === target;
};
_endsWith('123456', '56'); // true
2.
● 对堆
和栈
要有一定的理解,对深拷贝、浅拷贝有一定的理解。
● 对宏任务
和微任务
以及事件执行的理解。
● 对防抖
和节流
有一定的理解.
● 对this
有一定的理解并写出apply
、call
、bind
的实现。
● 对类型判断instanceof
、typeof
、Object.prototype.toString.call
等方法有理解。
● 对对象方法的使用Object.keys、Object.values、Object.entries、Object.assign
等等
3.去看下lodash
的源码,例如:throttle、debounce、cloneDeep、groupBy、get、difference
等等一些常用的方法函数要会写源码,最好自己写一遍。
4.对正则表达式能对有一定的理解,并且写出一些常用的正则。
5.CSS
中对主题适配能有一定的理解,例如使用less
和 Scss
变量做主题适配,以及使用 2 套样式,或者使用 css 全局变量做主题适配。能区分出这几种的不同点
如果能把 js 的以上都能掌握了,那么你的基础算是扎实的了,差的可能就是工作经验以及深入了解一些框架的源码了。
6.这个时候可以学习下代码规范了,其实vue
的话可以看看element ui
组件代码的规范,组件的设计以及源码具体。至少能实现message
组件以及按钮组件
7.学习下设计模式,例如:单例模式
、策略模式
、代理模式
、发布订阅模式
等等。
8.可以多看看怎么写防御式编程,让你的代码更加健壮(这也就是为啥项目中 bug 多的问题,代码写的还不够严谨)
9.可以去学习下TS
,可能不用去特别做类型体操,基本的泛型能用,例如:Array<T>
、Record<K, T>
、Partial<T>
、Pick<T, K>
、Omit<T, K>
、Exclude<T, U>
、Extract<T, U>
等等。
10.如果你对vue
和react
想深入研究,可以对比着使用看看它们之前的差异,有自己的认识。
11.webpack
的配置,对打包优化有理解,对loader
和plugin
有理解,对打包工具有使用过。
12.了解下npm
,对 npm 发布等命令有一定的理解,并且尝试自己发布一个包。
13.对git
提交规范有理解,并且使用。可以深入了解下 git 规范定义以及拦截。
14.对 nginx
有一定的了解,并且使用。因为现在好多项目都是多页应用了,nginx 就显得很重要了。
15.echarts
是图表库,可以学习下他的那些简单图表怎么使用canvas
画出来的。
恭喜,假如你上面都能学会,我觉得你很了不起了,至少算是中级前端工程师。 16.制定公司代码规范
eslint
,git
提交规范等等
17.git CI
制定工作流是很重要的,可以学习下。
其实如果从事这个行业,可以把上面当作一个学习清单,然后按照顺序学习,这些都是必须且要学会的。然后把学习到的东西都记录下来,多总结,多思考。
<顺便吆喝一句,民族企业大厂,前后端测试捞人,感兴趣的来!>