网站开发开发大致分为前端和后端,前端主要负责实现视觉和交互效果,以及与服务器通信,完成业务逻辑。其核心价值在于对用户体验的追求。可以按如下思路学习系统学习:
基础知识:
html+css这部分建议在w3school在线教程上学习,边学边练,每章后还有小测试。之后可以模仿一些网站做些页面。
javascript要学的内容实在很多,如果没有其他编程语言的基础的话,学起来可能要费些力,还是建议先在w3school上学习。之后建议马上看《javascript语言精粹》,js是一门很混乱的语言,这本书能够帮助你区分哪些是语言的精华,哪些是糟粕,对于语言精华,应该深入学习。糟粕部分能看懂别人写的代码就行,自己就不用尝试了。
对于习惯看视频学习的同学,以上内容也可以在慕课网-国内最大的IT技能学习平台上学习。虽然我没用过,但好几位同学推荐过了,大概看了下,内容还不错。
进阶:
有了以上基础,就可以进行一般的静态网页设计,不过对于复杂的页面还需要进一步学习。
css。截至今日(.12.08),天猫、淘宝、支付宝都已停止对ie6,7的支持,未来相信大多数网站都会停止对ie6,7的支持,ie8的市场份额也不像两年前那么高了(天猫即将停止对IE8的支持,.12.13),webkit内核已成为市场主流。对于css的学习,我推荐分三块:“基础概念”,“css2.1规范”,“css3规范”。必看精通CSS(第2版)(豆瓣),看完这本书你应该对:盒子模型,流动,block,inline,层叠,样式优先级,等概念非常了解了。这本确实有些年头了,但基础概念部分讲述非常清晰,可以称之为经典。ie6,7相关的内容可以不看。css3的部分可以参考:CSS3实用指南(豆瓣)。这本书同样有些老,只是最新出版的书中没发现有特别好的。
javascript。上面提到内容还不足以让你胜任js编程。在有了基础之后,进一步学习内容包括:
a)框架。推荐zepto,简单易用,在w3school简单学习js后,直接上手zepto即可完成一些简单的项目。zepto源码简单清晰,也适合新手阅读。补充:可以使用codecademy学习javascript,zepto,用户体验真的很好(感谢TonyOuyang)。最近比较热门的框架是React,VUE,Angular这些,根据需要稍作了解即可。随着ie浏览器市场份额的下降,以及移动端的发展,标准原生js已经可以在实际项目中使用(目前还需要借助es5shim、babel等),重点还是ES5,ES6,ES7。
b)javascript语言范式。这个名字可能并不恰当,只是我找不到可以描述“面向对象”,“函数式”这个两个概念的概念。javascript不完全是一个面向对象的语言,它的很多设计理念都有函数编程语言的影子,甚至说如果你不用面向对象,完全可以把它理解成一门函数式编程语言。javascript的很多语言特性,都是因为他具有函数式语言的特点才存在的。这部分推荐先学习面向对象的基本理论,对封装,继承,多态等概念要理解,维基百科,百度百科会是你的帮手,另外推荐《objectorientedjavascript》,应该有中文版。对与函数式编程可以参考这篇文章:JavaScript中的函数式编程实践
c)javascript语言内部机制。必须弄清如下概念:js中变量的作用域,变量传递方式,函数的定义环境与执行环境,闭包,函数的四种调用方式(一般函数,对象的方法,apply,call),以及四种调用方式下,‘this’指向的是谁。这部分内容你会在《javascript语言精粹》中详细了解。
d)dom编程,这个web前端工程师的核心技能之一。必读《dom编程艺术》,另外《高性能javascript》这本书中关于dom编程的部分讲的也很好。
e)ajax编程,这是另一核心技术。ajax建议在网上查些资料,了解这个概念的来龙去脉,百度百科,维基百科上的内容就足够了。真正编程是很容易的,如今几乎所有框架都对ajax有良好的封装,编程并不复杂。另外,ajax未来几年会被FetchStandard取代,也需要了解。另外关于xhr2,cors(跨站资源共享),formData文件上传,也需要了解。(web前端学习交流群:禁止闲聊,非喜勿进!)
f)es5,es6。现在开发js大部分基于es5的,ie8以下通过es5-shim。但利用一些工具,现在已经可以直接写es6代码了,尤其在reactjs,nodejs类型的项目中。对于从es5,es6每个阶段js发生了哪些变化都需要系统学习,学习顺序建议是JavaScript基础-es5-es6,越靠前的越重要。一些参考链接:ECMAScript5