摘要: 在知乎上看到一个问题,问题如下: 大二,学前端大半年了,html,css,js,jq,less,bootstrap这些不敢说精通,但也熟练掌握,项目也做了不少。最近学react的时候开始感觉力不从心了,之后再去了解webpack,npm,node等简直一脸懵逼,各种配置命令行根本看不懂,仿佛到了另一个世界。到了这个阶段应该怎么继续学下去呢,是我基础知识不足的问题吗? 针对这个问题,我讲讲我的理解吧
这种先易后难的学习现象其实不仅仅是在前端领域,在任何一个领域都是一样的。入门简单,随着学习的不断深入,需要学习的东西越来越多,越来越复杂,这是十分正常的。
你回想下你刚开始学数学的时候,是不是觉得很简单呢,1+1,1-1。之后慢慢开始学乘法,学方程式,学积分,是否感觉越来越难,步履维艰。
回到题主问的问题。web前端其实在编程界是最容易入门的分支,其中html,css,js,jq,less,bootstrap这些你都可以理解成数学中最简单的 加减乘除法,所以当你稍微花点心思学习下html,css,js,你就发现你能开始写页面了,做简单的项目了。然后如果只是局限在做页面,不管做再多项目,你也只是一个页面仔而已,技术水平不会有所提升。这时你突然去接触react,webpack,npm这些高级的前端框架和工具的时候,就如同从 1+1跳跃到解微积分,当然会懵逼,觉得这还是前端嘛,我以前学的都是啥啊。
所以首先排除学习者自身的学习态度问题,我们假设大家都是努力学习的人,题主说的问题其实是在前端领域的一个学习顺序的问题。
一个简单的前端项目从开发到上线我认为是要经历以下几个步骤的:
1. 用html实现页面结构
2. css实现页面样式
3. js实现页面交互
4. 使用压缩混淆工具如 grunt或者gulp 处理css和js,减小css文件和js文件的体积,从这个步骤开始其实就是前端项目的构建了,也就是进入到了题主所说的另一个世界
5. 部署项目
如果你一直局限在前三个步骤,那么当然不会有什么进步。 从第4个步骤开始就是真正需要去花大量时间研究学习的了。首先拿构建工具grunt或者gulp举例,如果说你对js十分熟练的话,那么grunt或者gulp里面的每一行代码你是能看的懂得,你需要学习的是
1. 这些工具为什么会出现,他在整个前端开发和构建上线过程扮演者什么样的角色
2. 他能实现哪些东西,每一项功能的具体代码实现是怎么样的
3. 为什么要这么来实现
按着这么个研究学习顺序,你会发现这些东西都是通过很简单的无数的接口拼装而成的。研究完一个工具,接着按照整个项目的工程顺序,研究接下来需要哪些东西。这样的话学习webpack,react等都和上文说到grunt没有任何差别,自己也能循序渐进。
所以希望迷惘的人不要过于焦虑,认清学习路径,按部就班就行了。
本文希望能给入门或迷茫的同学一些建议,合不合适自己才是最明白的,欢迎留言。另外新手学习前端开发除了要多动手敲代码最重要的还是经验的交流欢迎有需要的的小伙伴进前端开发交流群624293552来一起交流问题学习经验,我把所有比较适合新手学习的教程资料都放到里了。