前言 ?
这篇文章主要分享“当下前端行业”表象现状,如果你打算入行或有一两年经验,可以借鉴的技术栈建议。(大神可略过)
前端相对于其他研发组的工资都相对略高,例如后端、APP、测试等。
具体原因大家多少有体会(尤其是从IE6过来的同志们),前端需要做的任务越来越多,涉及的知识面越来越广。入门后的一条漫长和错综复杂的路,过滤掉了很多走错路的前端开发者。(对于顺利突破的大神则需要去那些有志同道合的大厂,那里提供了优质福利和舒适环境,以及技术氛围,导致小公司只有花更多的钱才能招到想要的人。)
话又说回来,既然叫“大前端”,很难搞的样子。那么,我们怎么才能更好更快的学习和突破自己呢?
对于学不动的同学摸摸头,来,我扶你起来,咋们可以的,学不动一定是姿势(方法)不对。
(下面我们回答三个简单的问题,从中找答案。)
第一个问题,我应该学什么??
关于性能、算法、内存,在前端刚开始你可以跳过,便可轻松上手工作。不得不说目前的框架和工具都帮我们做了太多的事情。(对于自己有清晰学习路线的同学可跳过)
前端是很有意思行业,正所谓写了便可见,所见即所得。认识和学习前端都应是轻松和有趣的,所以在学习路线上请不要给自己手动添加难度,不要看到网上或同行推荐的高科技、黑魔法就研究,只学自己感兴趣的,而忽视那些重要的基础知识。(拒绝满足需求就放慢和停止学习,拒绝舒适区)
这个问题其实在问 “请说下你掌握了哪些前端技能?” 。
“我会用Vue/React,了解Webpack...”
“看过ES6,搭过Express,参与Hybrid...”
“用过Angular,后来一直用Vue...”
———— 以上来自大部分面试者(除了优秀的╭( ′• o •′ )╭☞你)
OK,当追问为什么学这个时,大多则是“公司需要”和“觉的有意思”。这就会导致一个问题,它不系统,也不够全面!SO,我们先看看前端这个行业的现状,以及未来的可能,在来说该学什么更合理。
前端的现状
简单几点概括,有个概念就行:
- 依赖式,追求基于平台、框架、模块、组件等概念的开发方式;
- 多平台,追求前端开发带来的更小开发成本和更短发布周期;
- 可视化,追求在各个硬件上数据丰富的展示效果;
- 规范化,追求团队内高效高质量的协同办公;
- 交互性,追求用户的使用体验、解决用户审美疲劳;
咋们不深入,因为水太深太理论,看多了脑壳疼。
假想的未来
通过上面的几点,我们会发现,这些概念很久前就差不多听说过,其实它们至少都有个三四五六七八年了。且在前端行业没出来之前它们有些都已存在。所以未来基本也会保持这么长时间,毕竟前端这个行业还是算很“年轻”的。
那么,前端未来的方向大致会是(中大型项目中):
- 工程化开发,基于规范、编译、自动、集成等方式的开发流程,要求开发更快更稳;
- 全栈技术,基于node等偏前端技术的中间件服务开发,更重的业务开发更重的产品;
- 可视化及体验,各类设备和其他展示方式要求将更复杂,更具交互性的体验;
不同行业的开发者看到的角度会不同,因此可能我看到的不一定是正确的,但却是一个角度。
技术栈
我的推荐的初中级前端开发者的技术栈:
- 框架知识
- 基础知识
- 工程知识
① 前端框架知识
把他放在第一位,是因为它能直接让能满足工作需求的。但现在很多人仅仅把框架用成工具。因此你应该要求自己至少做到以下几点:
- 主流框架如何使用,只需通读官网文档,一定要配合demo,这样输入输出的学习才是印象深刻的。
- 各个框架的共同点和差异点,以及优缺点,在学习后不参考别人的认知下,做一份自己的理解报告。
- 随时关注主流框架的更新内容,当然还能思考它为什么做这些更新是最好的。
不管团队推行的框架是React、Vue,还是Ng。都应更多的去了解它们,对比差异和共性,一定会给你惊喜。
② 前端基础知识
当你的基本功被不断提升时,你会发现框架在你的眼里时另一番景象,例如:
- 组件可以对应到Web Components specifications的Custom Elements、Shadow DOM,以及ECMAScript class等。
- 指令和数据绑定可以对应到“DOM specifications”、“UI Events”等。
前端的基本功始终没变过:
或许你在w3school这样类似的平台看了一遍,脑海里有了大概的印象,这可远远不够。(当然,还有不少都没有认真过一遍的小伙,得反省反省,好好激励下自己了!)学习的过程中一定要反复的、奇怪的、玩命的实践,我想这就是眼过千遍不如手过一遍的道理吧。
在认识了它们之后,假如按照培训班的概念,你可以工作了。但是,在我看来你仅仅是从0到1,后面还有1到100。
接下来你需要:
- 知识结构整理,首先整理你的技术栈,你可以参考一些组织给的参考。
- 关注核心技术,对于日常使用到的关键技术点,或你认为重要的进行专注研究。
- 保持更新,了解他们的最新变化,或许你熟悉的已经在标准中被移除了。
③ 前端工程知识
如果你是做外包的一两人小项目,一定想着如何快和高效的完成项目,这绝不应是阻碍你学习工程化的借口,因为它能帮助你更快和更高效。
如果你是做十几个人的中大型项目,或许会为遵守着繁琐和枯燥的规范流程而苦恼。这不应该是没时间学习的理由,因为工程化是用来省时间,和帮助你工作的。
从上个世纪七十年代开始,软件工程都已经被推行,我们应该把自己看着开发者,而非一个的前端开发人员。
你应该了解它们的重要性,以及我们该如何更好的运用:
- 代码的规范;
- 开发流程的制定;
- 开发单元测试的必要性;
- 集成开发的方案;
关于该如何具体的学它们,我会在第二个问题讲到。
总结 ?
杜绝知道是什么而不懂为什么,在任何问题面前我们要有求知欲。
第二个问题,我应该怎么学? ?
杜绝被动学习,在任何团队自驱力非常重要。对于自己的时间安排,永远要有掌控力。
todo...
第三个问题,我该怎么用??
杜绝为了方便,而忽视规范,规范决定了项目能走多稳和多远。
todo...
正文 ??
招人!诚邀对于以上内容认同的同僚一起共事。
6k-10k /成都软件园G区 / 经验1-3年 / 本科及以上 / 全职
请点这里 >>>> 投个简历。