Java方向的读者预期
1、 有Java 语言基础( Java SE ),想进一步了解 Java EE 和 WEB 前台页面开发。
2、 有WEB 页面开发经验 / 经历,但感觉知识不够系统,希望加强学习。
Java方向的主要内容
WEB开发相关知识: HTTP 协议, HTML 标准, CSS 和 JavaScript 。参加本部分的学习,要求有计算机基础知识,最好了解一门计算机编程语言(不限于Java )。
J ava EE入门:基于 J ava EE Tutorial官方资料, 选择其中 最常用的 部分 进行 学习 。 参加本部分的学习,要求有Java SE 基础。
Java方向的目标
有一个现状,那就是很多公司的WEB 开发职位是既负责前台又负责后台,但我们心里要明白, Java Web 开发相关的工作,是由两个相对独立的知识体系组成的。
前台,也就是在浏览器环境中,以HTML 为载体,以 Javascript 为控制中枢,由 CSS 做布局和美化。后台,也就是在应用服务器(比如 Tomcat )中,以 Java 为载体,以 Servlet 为控制中枢,由 JSP 和自定义标签负责信息展示。相应的,前台后台各有自己的框架和工具。比如,前台的 Ext , JQuery ;后台的 Struts , Spring , Hibernate 。
前后台之间的纽带,就是HTTP ,当然还有大名鼎鼎的 Ajax ,以及基于 Ajax 的类库,如: DWR 。
我觉得,所有的类库、框架和工具,都是对基础知识的封装,但类库和框架的出现,让很多人无暇顾及底层的基础。由于框架往往屏蔽了很多细节,所以在碰到问题的时候,不了解底层的人,往往有一种无处下手去解决的感觉。
框架可以提高开发效率,要学;基础可以提高开发人员的判断力,有助于更好、更高效的利用技术,也要学。因为现在很多人学习框架的热情很高,所以 我的这一系列计划,就致力于给那些想学基础又有些怵头的朋友们,提供一点助力 。
总体计划
读S 计划第一期总时长为一年,大概从 2009 年 11 月起,到 2010 年 10 月止。其中,最后三个月要留出来,与参加 C 方向学习的朋友们共同阅读《代码大全》的部分内容,所以,实际的学习时间为 9 个月。
按照“读S 计划”的设想,学习内容都按照项目方式来组织, Java Web 方向,一共有五个项目,总体安排如下表所示:
项目 | 周期 | 主要学习资料 |
HTTP 1.1 | 7 周 | RFC 2616: ftp://ftp.isi.edu/in-notes/rfc2616.txt (纯文本) http://www.w3.org/Protocols/rfc2616/rfc2616.html (HTML ) 中文译文: http://www.blogjava.net/sunchaojin/archive/2009/05/31/279164.html |
HTML 4.0.1 | 7 周 | W3C规范: |
ECMAScript第三版 | 9 周 | ECMA官方: http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf |
CSS 1 和 CSS 2.1 | 7 周 | CSS1: CSS2.1: |
Java EE 5 Tutorial 精选 | 10周 | Sun官方: |
第一个项目(HTTP 协议 1.1 版)的具体学习计划
HTTP协议 1.1 版 共同学习项目的主要阅读材料为 RFC2616 ,该规范自 1999 年通过后,至今未有大的变化。阅读 HTTP 协议规范,有助于了解 WEB 前后台通信的原理和细节。学习的重点包括: HTTP 协议包结构, HTTP 请求 / 应答模型, HTTP 的主要方法, HTTP 重要返回值的含义, HTTP 的缓冲管理等。
具体计划如下表所示:
单元 | 时长 | 学习资料 |
1 | 1周 | 规范1-3 章。 HTTP协议介绍, RFC 所用的语法说明以及 HTTP 协议的基本概念和参数。 重要知识点: Ø I ntermediaries Ø URI / URL Ø Multipart Ø 相关术语 Ø 主要协议参数 |
2 | 1周 | 规范4-7 章。 HTTP消息结构(概要), HTTP 请求 / 应答 机制。 重要知识点: Ø HTTP Message Ø HTTP Request Ø HTTP Response Ø Entity |
3 | 1周 | 规范8-9 章。 HTTP链接管理机制, HTTP 方法。 重要知识点: Ø Persistent Connection Ø GET方法 Ø PUT方法 Ø POST方法 Ø HEAD方法 Ø DELETE方法 |
4 | 1周 | 规范第10 章:协议的状态码定义。 重要知识点: Ø 码组的含义(1xx, 2xx, 3xx, 4xx, 5xx ) Ø 常见状态码的含义(200, 400, 403, 404, 500 等等) |
5 | 1周 | 规范第13 章: HTTP 缓冲处理。 重要知识点: Ø 缓冲控制机制 Ø 缓冲超时机制 Ø 缓冲验证机制 |
6 | 1周 | 规范第14 章:消息头字段详解 重要知识点: Ø 常见HTTP 头字段的作用 |
7 | 1周 | 查漏补缺,总结。 |
学习计划的推进
订出学习计划,还需要一系列的“学习活动”来完成此计划。
在“读S 计划”中,我们为每个主要的学习目标(如: HTTP 、 Javascript )创建一个“共同学习项目”;一个项目由多个“学习单元”构成;每个学习单元有特定的“学习资料”。
考虑到参与学习的人员的组织是松散的,所以通常把“学习单元”作为组织“学习活动”的最小单位。一个学习单元通常对应一周的时间,在一个学习单元内,会依次组织如下学习活动:
1、 分头阅读本单元指定的“学习资料”。
鼓励参与者自行拓展阅读,并把自己认为有价值的资料推荐给其它成员。
2、 KO负责把本单元学习的内容,整理成“知识点”。
每个知识点附带有一个Checklist ,可用于快速检查我们对这个知识点的掌握情况。
3、 自由讨论(形式不限)
4、 安排QQ 群定点、集中讨论和答疑
5、 KO负责对本单元的学习过程进行总结,形成“学习心得”,供后人参考。
6、 PO和 KE 对待提交的成果(知识点、 Checklist 、学习心得等)有审核的权力和义务。
总结一下,一个“共同学习项目”的结构如下:
总学习计划
|-学习单元
|-学习资料
|-知识点
|-CheckList
|-学习心得
|-衍生资料