学前端,我们要学的是什么
前几天在知乎上看到一个帖子,“前端发展太快,有些小伙只会用react(了解api),招个jquery熟练的外包较难,如何看?”
上面回复赞同比较多的是,“如果他会react,那么jquery他几天就可以上手”。
我暂且不评价这种看法,我先来说说前端发展史吧。
石器时代 - 简单的html和javascript编写静态页面,配合jsp、asp等服务端的混合开发。
铁器时代 - ajax的应用,jquery的诞生,js动态加载(AMD、CMD)技术的出现。大幅提高前端开发效率。
蒸汽时代- mv*框架的应用。Backbone、Ember、Angular、React、Vue等,组件化开发深入人心,提高了代码的可维护性,更好的解耦业务逻辑。
新的可能 - nodejs、serviceWorker、webGL...
其中jquery的出现,基本上就是催生了前端工程师这个职业,jquery以其强大的选择器、丰富的插件称霸了前端很长一段时间。(想想我当年就是使用jq+bootstrap开发的)
mv*模式的出现,将前端开发推向了一个高潮。在我看来,jquery是封装了许多功能的一个插件库,属于工具类。而react等是一种开发框架,它重在设计模式。
它们没有好坏高低之分,我倒是推荐直接从angular、react、vue入手的新前端们,去试用一下jquery,看看它的源码,你们一定会学到很多很多东西。
前端发展的确非常快,去年的开发框架,今年的构建工具,可谓是百家争鸣。whatever,我们可自己衡量选择其一来使用(当然你精力好可以多学几个)。万变不离其宗,只要我们掌握了编码规范、设计思想,我们也可以造很多轮子。记住,想法永远比编码高级。
书归正传,我下面来谈谈怎样学前端吧。
首先,什么是前端?
前端主要有两个重点,界面展示和用户交互。界面展示包括UI、UX设计,界面布局,数据展示等。用户交互主要是用户操作、状态效果的变更、前后端数据交互等。
前端是随着web发展而细分出来的行业,web前端开发主要有三个部分:
结构层(Html、Html5)
表现层(CSS、CSS3)
行为层(Javascript、ECMAScript6)
其次,前端能干什么?
我们每天打开浏览器看的新闻、视频,大数据的图表展示,云平台管理系统,可视化操作,移动端app,页面游戏,IoT物联网,AR/VR 3D效果等,你所能想到的都可以使用前端技术实现。
最后,怎样学前端?
前端涉及面较广,入门容易精通难。前端学习曲线是先快后慢,而且前端技术、框架更新太快,所以说前端学习是一个长期持续的过程,我们应有较快的学习能力和较强的好奇心。
我把我认为有必要学习了解的一些知识点列出如下:
html、css、javascript基础知识的了解和掌握。可以去 w3school、MDN 看看。
html5、css3、es6的了解和熟悉。可以看看 阮一峰的ES6.
UI、UX的了解,布局和响应式设计的掌握。(如bootstrap)
前后端数据交互的了解和掌握。如Ajax实现原理。
MVC、MVVM架构了解和掌握。
前端构建工具的了解和掌握。
浏览器的兼容和多终端的适配
性能的提升和框架的维护升级。
html、css、javascript基础知识是核心技能,所以大家应先把基础打好,其他的可根据兴趣去了解学习。
最后,在学习过程中,提几点建议:
兴趣很关键,不要因为现在前端火而盲目去学习。
养成良好的编码习惯,代码的可读性、可维护性、可拓展性非常重要。
要善于做笔记,将一些你遇到的问题或者认为写得很赞的代码记录下来,便于以后使用或者分享。
多浏览一些好的UI设计网站、开源社区等,看看别人的页面是怎样设计的,代码是怎样编写的。
推荐一些认为对我们有帮助的网站:
stackoverflow
segmentfault
知乎
github
MDN
dribbble
下一期,我开始介绍html的一些书写规范。(什么,html需要介绍?)
下期见。
- java8-Stream之数值流
- POJ 3694 Network(Tarjan求割边+LCA)
- java之Cookie详解
- Ajax详解
- 1611: [Usaco2008 Feb]Meteor Shower流星雨
- 3893: [Usaco2014 Dec]Cow Jog
- 3892: [Usaco2014 Dec]Marathon
- BZOJ 2793: [Poi2012]Vouchers(调和级数)
- 3891: [Usaco2014 Dec]Piggy Back
- Java8-如何构建一个Stream
- 2016: [Usaco2010]Chocolate Eating
- javascript 闭包详解
- 3016: [Usaco2012 Nov]Clumsy Cows
- POJ 3207 Ikki's Story IV - Panda's Trick(2-SAT)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【一天一大 lee】 把二叉搜索树转换为累加树 (难度:简单)-Day20200921
- 【一天一大 lee】子集 (难度:中等)-Day20200920
- 用了这个jupyter插件,我已经半个月没打开过excel了
- Webpack学习笔记
- 正则表达式学习笔记
- R 可视化 | 华夫饼图
- 绝了!Python定时爬取微博热搜+pyecharts动态图展示
- 实战 | Python爬取B站柯南弹幕+Gephi梳理主线剧情
- 别再问我 Python 怎么识别数字验证码了!
- Python自动化办公 | 同事要我帮忙补写178份Word日报!别闹!
- Excel多区间判断,其实很简单
- 外观模式
- cp命令
- java基本数据类型及相互间的转换(转)
- 【java设计模式系列】1. 工厂方法模式(Factory Method)