网站开发开发大致分为前端和后端,前端主要负责实现视觉和交互效果,以及与服务器通信,完成业务逻辑。其核心价值在于对用户体验的追求。可以按如下思路学习系统学习:
基础知识:
对于习惯看视频学习的同学,以上内容也可以在 慕课网 - 国内最大的 IT 技能学习平台 上学习。虽然我没用过,但好几位同学推荐过了,大概看了下,内容还不错。
进阶:
有了以上基础,就可以进行一般的静态网页设计,不过对于复杂的页面还需要进一步学习。
a) 框架。推荐 zepto,简单易用,在 w3school 简单学习 js 后,直接上手 zepto 即可完成一些简单的项目。zepto 源码简单清晰,也适合新手阅读。补充: 可以使用 codecademy 学习 javascript,zepto,用户体验真的很好(感谢 TonyOuyang )。最近比较热门的框架是 React, vue, Angular 这些, 根据需要稍作了解即可。随着 ie 浏览器市场份额的下降,以及移动端的发展,标准原生 js 已经可以在实际项目中使用(目前还需要借助 es5shim、babel 等),重点还是 ES5, ES6, ES7。
b) javascript 语言范式 。这个名字可能并不恰当,只是我找不到可以描述 "面向对象","函数式" 这个两个概念的概念。javascript 不完全是一个面向对象的语言,它的很多设计理念都有函数编程语言的影子,甚至说如果你不用面向对象,完全可以把它理解成一门函数式编程语言。javascript 的很多语言特性,都是因为他具有函数式语言的特点才存在的。这部分推荐先学习面向对象的基本理论,对封装,继承,多态等概念要理解,维基百科,百度百科会是你的帮手,另外推荐《object oriented javascript》,应该有中文版。对与函数式编程可以参考这篇文章:JavaScript 中的函数式编程实践
c) javascript 语言内部机制。必须弄清如下概念:js 中变量的作用域,变量传递方式,函数的定义环境与执行环境,闭包,函数的四种调用方式(一般函数,对象的方法,apply,call),以及四种调用方式下,'this'指向的是谁。这部分内容你会在《javascript 语言精粹》中详细了解。
d) dom 编程,这个 web 前端工程师的核心技能之一。必读《dom 编程艺术》,另外《高性能 javascript》这本书中关于 dom 编程的部分讲的也很好。
e) ajax 编程,这是另一核心技术。ajax 建议在网上查些资料,了解这个概念的来龙去脉,百度百科,维基百科上的内容就足够了。真正编程是很容易的,如今几乎所有框架都对 ajax 有良好的封装,编程并不复杂。另外,ajax 未来几年会被 Fetch Standard 取代,也需要了解。另外关于 xhr2,cors(跨站资源共享),formData 文件上传,也需要了解。(web 前端学习交流群:328058344 禁止闲聊,非喜勿进!)
f) es5, es6。现在开发 js 大部分基于 es5 的,ie8 以下通过 es5-shim。但利用一些工具,现在已经可以直接写 es6 代码了,尤其在 reactjs,nodejs 类型的项目中。对于从 es5,es6 每个阶段 js 发生了哪些变化都需要系统学习,学习顺序建议是 JavaScript 基础 -> es5 -> es6,越靠前的越重要。一些参考链接:ECMAScript 5 compatibility tableECMAScript 6 入门 ES5 « 张鑫旭
再进一阶 · 代码层面:
有了以上知识,对于大多数小型网站,你应该已经可以写出能够工作的代码了。但要想成为更专业的前端,你还需继续努力。更高的要求大概还有四方面:1 易维护,2 可测试,3 高性能,4 低流量(移动端)。
1. 易维护。对于页面你该理解'样式','数据','行为'三者分离,对应的当然就是 css,html,js。对于 js 代码,你最好了解设计模式,重构,MVC 等内容。
2. 可测性。就是保证你的代码能沟通单元测试 100% 覆盖到所有分支
3. 高性能。必读《高性能 javascript》
4. 低流量。移动端关注比较多,PC 端现在可以不用太关注了
再进一阶 · 工程层面:
前端项目同样面临软件生命周期的各个环节,首先是代码管理,你必须学会使用 svn 和 git。其次是代码的构建,如今前端代码构建已经不是简单的压缩一下了,需要进行依赖管理、模块合并、各种编译,必须要学会使用 grunt、gulp、webpack、rollup 等前端构建工具,以及前端模块管理的方式,amd,cmd,es6 module 等等。
然后呢?
以上内容只是简单说了前端学习的顺序。前端工程师应该有的知识结构请参考这里:JacksonTian/fks · GitHub
补充:
对于前段开发,基本内容就这些了,可以根据自己的兴趣爱好选择性学习以下内容。
1. 交互设计。大公司依然有专业人士搞这些,不过不懂交互的前端一定不是好前端。推荐《简约至上》。
2. 后端。应该说前段工程师必须至少了解一门后端语言,不过如果爱好也可深入学习,入手难度比较低的应该是 php 了。这部分由可分为基于页面,基于框架两种。大型项目都是基于框架开发的,建议至少了解一个 MVC 框架,比如 php 的 ci, yii, yaf 等,好还框架的设计思想都大同小异。如今 NodeJs 在大公司已经得到普遍的使用,推荐大家使用在 Node 上使用 Koa 框架做一些后端服务的开发。
3. Android 和 ios 开发。时至今日,前端的工作领域已经非常广泛,native 的界面开发本质上也是前端开发,个大公司都面临着 Native 环境和 web 环境页面同时维护的问题,如果能够在技术上得到统一,将会有巨大的价值。对于学有余力的同学,应该了解 Native 开发的基本流程,至少了解到界面构建的技术。
4. 如果你能够认真看到这里,说明你对前端有真爱,最后说一个编程习惯的问题,绝对是保你工作平安,少出故障。代码提交前必须做的三个事情:
A. git diff(svn diff), 检查所有变更;
B. 跑一边单元测试;
C. 手动运行一遍所有 demo.
我有一个前端学习交流 QQ 群:328058344 如果你在学习前端的过程中遇到什么问题,欢迎来我的 QQ 群提问,群里每天还会更新一些学习资源。禁止闲聊,非喜勿进。
来源: http://geek.csdn.net/news/detail/247970