推荐学习网站www.freecodecamp.cnjavascript
http://www.w3school.com.cn/php
步骤:css
做者:张帅html
知乎连接:https://www.zhihu.com/question/19834302/answer/13108148前端
网站开发开发大体分为前端和后端,前端主要负责实现视觉和交互效果,以及与服务器通讯,完成业务逻辑。其核心价值在于对用户体验的追求。能够按以下思路学习系统学习:
基础知识:
1. html + css 这部分建议在 w3school 在线教程 上学习,边学边练,每章后还有小测试。 以后能够模仿一些网站作些页面。
2. javascript 要学的内容实在不少,若是没有其余编程语言的基础的话,学起来可能要费些力,仍是建议先在 w3school上学习。以后建议立刻看《javascript语言精粹》,js是一门很混乱的语言,这本书可以帮助你区分哪些是语言的精华,哪些是糟粕,对于语言精华,应该深刻学习。糟粕部分能看懂别人写的代码就行,本身就不用尝试了。
进阶:
有了以上基础,就能够进行通常的静态网页设计,不过对于复杂的页面还须要进一步学习。
1. css。截至今日(2015.12.08),天猫、淘宝、支付宝都已中止对ie6,7的支持,将来相信大多数网站都会中止对ie6,7的支持,ie8的市场份额也不像两年前那么高了,webkit内核已成为市场主流。对于css的学习,我推荐分三块:“基础概念”,“css2.1规范”,“css3规范”。必看 精通CSS(第2版) (豆瓣),看完这本书你应该对:盒子模型,流动,block,inline,层叠,样式优先级,等概念很是了解了。这本确实有些年头了,但基础概念部分讲述很是清晰,能够称之为经典。ie6,7相关的内容能够不看。css3的部分能够参考:CSS3实用指南 (豆瓣)。这本书一样有些老,只是最新出版的书中没发现有特别好的。
2. javascript。上面提到内容还不足以让你胜任js编程。在有了基础以后,进一步学习内容包括:
a) 框架。推荐jQuery,简单易用,在w3school简单学习js后,直接上手jQuery便可完成一些简单的项目。学习方法也很简单,照着产品文档作几个页面就好了,不用面面俱到,之后遇到问题查文档就好了。框架能够帮你屏蔽浏览器的差别性,让你能更专一与web开发学习的精髓部分。补充: 可使用 codecademy 学习 javascript,jQuery,用户体验真的很好(感谢 TonyOuyang )。(12年时jQuery如日中天,现在讨论比较多的是“去jQuery”,只依赖最近的web标准 + polyfill + 一些工具库去开发项目,重点仍是ES5, ES6, ES7。最近比较热门的框架是React, VUE, Angular这些, 但jQuery几年以内依然会被大量使用。这部份内容我近期会再更新)
b) javascript 语言范式 。这个名字可能并不恰当,只是我找不到能够描述“面向对象”,“函数式”这个两个概念的概念。javascript不彻底是一个面向对象的语言,它的不少设计理念都有函数编程语言的影子,甚至说若是你不用面向对象,彻底能够把它理解成一门函数式编程语言。javascript的不少语言特性,都是由于他具备函数式语言的特色才存在的。这部分推荐先学习面向对象的基本理论,对封装,继承,多态等概念要理解,维基百科,百度百科会是你的帮手,另外推荐《object oriented javascript》,应该有中文版。对与函数式编程能够参考这篇文章:JavaScript 中的函数式编程实践
c) javascript 语言内部机制。必须弄清以下概念:js中变量的做用域,变量传递方式,函数的定义环境与执行环境,闭包,函数的四种调用方式(通常函数,对象的方法,apply,call),以及四种调用方式下,‘this'指向的是谁。这部份内容你会在《javascript语言精粹》中详细了解。另外,你必须理解json。
d) dom编程,这个web前端工程师的核心技能之一。必读《dom编程艺术》,另外《高性能javascript》这本书中关于dom编程的部分讲的也很好。
e) ajax编程,这是另外一核心技术。ajax建议在网上查些资料,了解这个概念的前因后果,百度百科,维基百科上的内容就足够了。真正编程是很容易的,现在几乎全部框架都对ajax有良好的封装,编程并不复杂。
f) es5, es6。如今开发js大部分基于es5的,ie8如下经过es5-shim。但利用一些工具,如今已经能够直接写es6代码了,尤为在reactjs,nodejs类型的项目中。对于从es5,es6每一个阶段js发生了哪些变化都须要系统学习,学习顺序建议是 JavaScript基础 -> es5 -> es6,越靠前的越重要。一些参考连接:ECMAScript 5 compatibility tableECMAScript 6入门ES5 « 张鑫旭
3. html5。须要了解html都提供了哪些api,而后项目中用起来。这部分没有什么难理解的,关键在于能用html5解决业务问题。
再进一阶 · 代码层面:
有了以上知识,对于大多数小型网站,你应该已经能够写出可以工做的代码了。但要想成为更专业的前端,你还需继续努力。更高的要求大概还有四方面:1易维护,2可测试,3高性能,4低流量(移动端)。
1. 易维护。对于页面你该理解‘样式’,‘数据’,‘行为’三者分离,对应的固然就是css,html,js。对于js代码,你最好了解设计模式,重构,MVC等内容。
2. 可测性。
3. 高性能。必读《高性能javascript》
4. 低流量。移动端关注比较多。
再进一阶 · 工程层面:
前端项目一样面临软件生命周期的各个环节,首先是代码管理,你必须学会使用svn和git。其次是代码的构建,现在前端代码构建已经不是简单的压缩一下了,须要进行依赖管理、模块合并、各类编译,比须要学会使用grunt、gulp等前端构建工具。
而后呢?
以上内容只是简单说了前端学习的顺序。前端工程师应该有的知识结构请参考这里:JacksonTian/fks · GitHub
补充:
对于前段开发,基本内容就这些了,能够根据本身的兴趣爱好选择性学习如下内容。
1. 交互设计。大公司依然有专业人士搞这些,不过不懂交互的前端必定不是好前端。推荐《简约至上》。
2. 后端。应该说前段工程师必须至少了解一门后端语言,不过若是爱好也可深刻学习,入手难度比较低的应该是php了。这部分由可分为基于页面,基于框架两种。大型项目都是基于框架开发的,建议至少了解一个MVC框架,好比php的ci, yii, yaf 等,好还框架的设计思想都大同小异。现在NodeJs在大公司已经获得广泛的使用,推荐你们使用在Node上使用Express框架作一些后端服务的开发。
3. Android和ios开发。时至今日,前端的工做领域已经很是普遍,native的界面开发本质上也是前端开发,个大公司都面临着Native环境和web环境页面同时维护的问题,若是可以在技术上获得统一,将会有巨大的价值。对于学有余力的同窗,应该了解Native开发的基本流程,至少了解到界面构建的技术。html5