给初学者看的Web开发教程

给初学者看的Web开发教程

课时持续12周,共24课,主要讲解JavaScript、CSS、HTML相关的基础知识及现代Web开发人员常用的工程化工具链,并通过开发打字游戏、虚拟玻璃容器、浏览器扩展、太空游戏、银行应用程序共5个实战项目,带你了解Web开发的整体流程。该教程英文版为微软团队出品,在国外颇受好评。

给初学者看的Web开发教程

微软公司的Azure Cloud Advocates团队为Web开发新人打造了一门颇爱好评的免费课程,地址见:

https://microsoft.github.io/Web-Dev-For-Beginnersopen in new window

在这个教程中,微软团队用12周时间、24节课,带领读者学习了JavaScript、CSS 和 HTML等Web开发基础知识。每节课都包括课前测验、课后测验、完成课程的书面说明、解决方案和作业等。该团队基于项目实战教学法,让读者在构建项目的实践过程中完成学习,该团队认为这是一种已经被验证过的,让新人迅速掌握新技能的行之有效的方法。

这也是作者open in new window一直倡导的PBL实战项目教学法的简化版,PBL是在项目实战教学的基础之上,将多个项目合并成一个项目进行实践,以此减少学习者的学习负担,提高学习效率。在没有PBL实战教程的时候,项目驱动的实战教程已是上选,它作为系统化从易到难的学习教程,已经比零散的非系统化的教程高级很多了。

感谢英文版本的作者:Jen Looper、Chris Noring、Christopher Harrison、Jasmine Greenaway、Yohan Lasorsa、Floor Drees 和素描艺术家 Tomomi Imura。

这本英文入门教程在Github上已经斩获了62k Star,作者在网上查找了一下,竟然没有中文版。可能是翻译不讨巧吧,毕竟这是既辛苦又没钱的苦差事。既然英文版如此受欢迎,翻译过来对中文社区的读者应该也很有价值。后面的内容,主要由作者open in new window在微软英文版本的基础上翻译,作者在努力保持原意+流畅的前提下,离加入了一些自己对于前端开发的理解,希望这更有助于中文读者的学习与理解。

你是学生吗?

读者,如果你是学生,可以访问微软网站上的学生中心页面open in new window,在上面可以找到初学者资源、学生资料包,甚至还有获得免费证书凭证的方法。

如何开始学习?

如何开始学习呢?

读者要自己学习这个课程,fork整个仓库并自己完成练习,英文版本的仓库链接是:

https://github.com/microsoft/Web-Dev-For-Beginnersopen in new window

作者open in new window在翻译过程中,也打造了一个中文仓库,链接是:

https://github.com/rixingyike/Web-Dev-For-Beginners-CNopen in new window

你在学习的是中文教程,要fork后一个仓库。注意,作者open in new window是边写作边完善这个仓库的,所以每次在追随课程学习新内容时,记得同步一下仓库的最新内容。

在fork了仓库以后,有两条学习建议:

  • 从课前测验开始学习,然后阅读课文,完成其余的学习活动。尝试独立理解课程并完成实践,而不是复制老师的解决方案代码。解决方案代码位于每个课程的solutions文件夹中。
  • 另一个建议是,与朋友组成一个学习小组,这个小组最好是三个人,大家一起研究、学习课程内容。

为了方便读者学习,如果有必要,作者open in new window会考虑录制一些实操视频,看有多少读者需要再定。

基于教育学的课程设计

在构建这个课程时,我们选择了两个教学原则:

  • 确保它以项目为基础且包括足够多的测验。

到本系列课程结束时,学生将完成构建一个打字游戏、一个虚拟玻璃容器、一个“绿色”的浏览器扩展、一个“太空入侵者”类型的游戏和一个商业类型的银行应用程序,并且还将学习到JavaScript、HTML 和 CSS等基础知识,以及当今 Web 开发人员常用的工程化工具链。

为了确保课程对学生具有足够的吸引力,方便读者对概念的理解,团队还编写了几个 JavaScript 基础知识入门课程来预先介绍相关概念,它们是JavaScript初学者入门系列课程,地址位于:

https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/open in new window

这是由微软团队录制的视频教程集合,读者可以选择性观看。

此外,课前测验可以测试学生学习某个主题的意图,启发思考,而课后的第二次测验可以确保记忆进一步加深。该课程设计灵活而有趣,可以全部或部分学习,五个小项目都是从小规模开始,到 12 周结束时变得越来越复杂。(这是零散的项目驱动式教程的优点,PBL实战教程便不能直接从后面某一处学起。)

在课程中,团队有意避免引入任何 JavaScript 框架,以便读者专注于 Web 开发人员所需的基本技能的学习。在完成本课程后,读者下一步可以继续学习Node.js初学者系列课程,它的地址是:

https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/open in new window

每节课的课程内容设计

  • 可选草图笔记
  • 可选的补充学习视频
  • 课前的热身测验
  • 笔试
  • 对基于项目的课程,有关于如何构建项目的分步指南
  • 知识检查
  • 一个挑战
  • 补充阅读内容
  • 任务
  • 课后测验

关于测验说明一下,所有测验列表如下所示:

Lesson 1 - Intro to Programming Languages: Pre-Lecture Quiz
Lesson 1 - Intro to Programming Languages: Post-Lecture Quiz
Lesson 2 - Introduction to GitHub: Pre-Lecture Quiz
Lesson 2 - Introduction to GitHub: Post-Lecture Quiz
Lesson 3 - Creating Accessible Webpages: Pre-Lecture Quiz
Lesson 3 - Creating Accessible Webpages: Post-Lecture Quiz
Lesson 4 - JavaScript Basics - Data Types: Pre-Lecture Quiz
Lesson 4 - JavaScript Basics - Data Types: Post-Lecture Quiz
Lesson 5 - JavaScript Basics - Methods and Functions: Pre-Lecture Quiz
Lesson 5 - JavaScript Basics - Methods and Functions: Post-Lecture Quiz
Lesson 6 - JavaScript Basics - Making Decisions: Pre-Lecture Quiz
Lesson 6 - JavaScript Basics - Making Decisions: Post-Lecture Quiz
Lesson 7 - JavaScript Basics - Arrays and Loops: Pre-Lecture Quiz
Lesson 7 - JavaScript Basics - Arrays and Loops: Post-Lecture Quiz
Lesson 8 - Terrarium Project - Introduction to HTML: Pre-Lecture Quiz
Lesson 8 - Terrarium Project - Introduction to HTML: Post-Lecture Quiz
Lesson 9 - Terrarium Project - Introduction to CSS: Pre-Lecture Quiz
Lesson 9 - Terrarium Project - Introduction to CSS: Post-Lecture Quiz
Lesson 10 - Terrarium Project - DOM Manipulation and a Closure: Pre-Lecture Quiz
Lesson 10 - Terrarium Project - DOM Manipulation and a Closure: Post-Lecture Quiz
Lesson 11 - Typing Game: Pre-Lecture Quiz
Lesson 11 - Typing Game: Post-Lecture Quiz
Lesson 12 - Browser Extension Project - All about Browsers: Pre-Lecture Quiz
Lesson 12 - Browser Extension Project - All about Browsers: Post-Lecture Quiz
Lesson 13 - Browser Extension Project - Call an API, use Local Storage: Pre-Lecture Quiz
Lesson 13 - Browser Extension Project - Call an API, use Local Storage: Post-Lecture Quiz
Lesson 14 - Browser Extension Project - Learn about Background Tasks and Performance: Pre-Lecture Quiz
Lesson 14 - Browser Extension Project - Learn about Background Tasks and Performance: Post-Lecture Quiz
Lesson 15 - Space Game - Introduction: Pre-Lecture Quiz
Lesson 15 - Space Game - Introduction: Post-Lecture Quiz
Lesson 16 - Space Game - Draw Hero and Monsters to Canvas: Pre-Lecture Quiz
Lesson 16 - Space Game - Draw Hero and Monsters to Canvas: Post-Lecture Quiz
Lesson 17 - Space Game - Adding Motion: Pre-Lecture Quiz
Lesson 17 - Space Game - Adding Motion: Post-Lecture Quiz
Lesson 18 - Space Game - Adding A Laser and Detecting Collisions: Pre-Lecture Quiz
Lesson 18 - Space Game - Adding A Laser and Detecting Collisions: Post-Lecture Quiz
Lesson 19 - Space Game - Scoring and Lives: Pre-Lecture Quiz
Lesson 19 - Space Game - Scoring and Lives: Post-Lecture Quiz
Lesson 20 - Space Game - End and Restart: Pre-Lecture Quiz
Lesson 20 - Space Game - End and Restart: Post-Lecture Quiz
Lesson 21 - Bank Project - HTML Templates and Routes in a Web App: Pre-Lecture Quiz
Lesson 21 - Bank Project HTML Templates and Routes in a Web App: Post-Lecture Quiz
Lesson 22 - Bank Project - Build a Login and Registration Form: Pre-Lecture Quiz
Lesson 22 - Bank Project - Build a Login and Registration Form: Post-Lecture Quiz
Lesson 23 - Bank Project - Methods of Fetching and Using Data: Pre-Lecture Quiz
Lesson 23 - Bank Project - Methods of Fetching and Using Data: Post-Lecture Quiz
Lesson 24 - Bank Project - Concepts of State Management: Pre-Lecture Quiz
Lesson 24 - Bank Project - Concepts of State Management: Post-Lecture Quiz

上面只是一个列表,方便读者了解有什么测试。这些测试的具体网址地址位于下面这个页面内:

https://ashy-river-0debb7803.1.azurestaticapps.net/open in new window

这些测试目前都是英文原版的,可能会被作者open in new window在翻译的过程中改写。总共48个测验,每个测验包含三个问题,每个测验应用程序可以在本地运行,在quiz-app文件夹中有详细的操作说明。

课程内容大纲

项目名称教授的概念学习目标联课原作者
01入门编程和行业工具简介了解大多数编程语言背后的基本原理以及帮助专业开发人员完成工作的软件编程语言和行业工具简介open in new window茉莉花
02入门GitHub 的基础知识,包括如何与团队其他成员协作如何在项目中使用 GitHub,如何在代码库上与他人协作GitHub 简介open in new window地面
03入门辅助功能了解 Web 可访问性的基础知识辅助功能基础open in new window克里斯托弗
04JS 基础JavaScript 数据类型JavaScript数据类型基础数据类型open in new window茉莉花
05JS 基础函数和方法了解控制应用程序逻辑流的功能和方法函数和方法open in new window茉莉花和克里斯托弗
06JS 基础逻辑控制语句了解如何使用条件语句在代码中做出逻辑控制做出决定open in new window茉莉花
07JS 基础数组和循环在 JavaScript 中使用数组和循环语法处理数据数组和循环open in new window茉莉花
08玻璃容器open in new windowHTML 实践构建 HTML 以创建在线玻璃容器,着重于构建布局HTML简介open in new window
09玻璃容器open in new window实践中的 CSS使用 CSS 样式语言设置在线玻璃容器的样式,重点关注 CSS 的基础知识,包括使页面响应CSS简介open in new window
10玻璃容器open in new windowJavaScript 闭包、DOM 操作构建 JavaScript 使玻璃容器具有拖放界面的功能,重点是闭包和 DOM 操作JavaScript 闭包、DOM 操作open in new window
11打字游戏open in new window构建打字游戏了解如何使用键盘事件来驱动 JavaScript 应用程序的逻辑事件驱动编程open in new window克里斯托弗
12绿色浏览器扩展open in new window使用浏览器了解浏览器如何工作、它们的历史以及如何构建浏览器扩展的第一个元素关于浏览器open in new window
13绿色浏览器扩展open in new window构建表单、调用 API 并将变量存储在本地存储中构建浏览器扩展的 JavaScript 元素,以使用存储在本地存储中的变量调用 APIAPI、表单和本地存储open in new window
14绿色浏览器扩展open in new window浏览器中的后台进程、网络性能使用浏览器的后台进程,来管理扩展程序的图标,并了解网络性能和一些优化后台任务和性能open in new window
15太空游戏open in new window使用 JavaScript 进行更高级的游戏开发了解使用类和组合的方式,以及发布/订阅模式,为构建游戏做准备高级游戏开发简介open in new window克里斯
16太空游戏open in new window绘图到画布了解 Canvas API,用于将元素绘制到屏幕上绘图到画布open in new window克里斯
17太空游戏open in new window在屏幕上移动元素探索元素如何使用笛卡尔坐标和 Canvas API 获得运动能力移动元素open in new window克里斯
18太空游戏open in new window碰撞检测使用按键使元素相互碰撞并做出反应,并提供冷却功能以确保游戏性能碰撞检测open in new window克里斯
19太空游戏open in new window计分根据游戏的状态和性能进行数学计算记分open in new window克里斯
20太空游戏open in new window结束和重新开始游戏了解如何结束和重新启动游戏,包括清理资产和重置变量值结束条件open in new window克里斯
21银行应用程序open in new windowWeb 应用程序中的 HTML 模板和路由了解如何使用路由和 HTML 模板,创建多页面网站架构的脚手架HTML 模板和路由open in new window耀汉
22银行应用程序open in new window建立一个登录和注册表单了解构建表单和处理表单验证的流程形式open in new window耀汉
23银行应用程序open in new window获取和使用数据的方法学习数据如何流入和流出应用程序,及如何获取、存储和处理数据数据open in new window耀汉
24银行应用程序open in new window状态管理的概念了解你的应用程序如何保留状态,以及如何以编程的方式管理它状态管理open in new window耀汉

注意:表格中所附的地址仍然是英文版本的地址,稍后作者open in new window在翻译过程中会慢慢改造它们。看过这个表格,相信读者就能明白这个课程主要是讲什么内容的啦。

离线访问与PDF版本

您可以使用Docsifyopen in new window脱机运行课程文档。首先fork仓库,在本地计算机上安装 Docsifyopen in new window,然后在此仓库的本地根目录下,键入docsify serve. 该网站便在本地主机上的端口 3000 上提供Web浏览服务了:

http://localhost:3000

英文版本的PDF文件可以以下地址下载:

https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdfopen in new window

稍后中文版本的PDF在完结后也会提供在线下载。

2022年12月25日