一起来完成 freeCodeCamp 课程 7.0

一起来完成 freeCodeCamp 课程 7.0
0

一起来完成 freeCodeCamp 课程 7.0

hey,freeCodeCamp 志愿者们 — freeCodeCamp 课程马上就要变成完全的项目驱动学习啦。和以往的一系列代码闯关不同,现在会通过一步步构建项目来完成学习。

在详述前,先声明一下:证书没有变。6 个证书还是每个都需要完成 5 个项目。我们只调整了代码闯关部分。

课程简述

好吧,已经版本 7.0 了!下面是各个版本的简要介绍:

  • V1 - 2014:我通过简单的列出 15 个资源发起了 freeCodeCamp,包括哈佛的 CS50 和斯坦福的数据库课程。
  • V2 - 2015:添加了交互式算法闯关
  • V3 - 2015:添加了自己的 HTML + CSS 闯关 (之前我们使用的是 General Assembly’s Dash 的课程)
  • V4 - 2016:课程展开为 3 个证书,包括前端、后端、数据可视化。每个证书都需要完成 10 个项目才能颁发,但是只有前端部分是自有关卡。其它的课程还是需要借助于外部资源比如 Node School。
  • V5 - 2017: 添加了后端和数据可视化的关卡。
  • V6 - 2018: 启用了 6 个全新的证书。这是目前为止最大的变动。

为什么需要 7.0 版

发起 freeCodeCamp 以来,每天听到的最多反馈就是:

  1. freeCodeCamp 的课程间难度不要差别太大。刚刚还在闯关,突然就要做项目。
  2. 请设立一些重复的内容这样学习的时候还能适当复习一下。

寒来暑往,我一直在思考着这两个问题,想着如何解决它们。在推倒了无数个方案后,终于有一天我摔倒了,头磕在了洗手台旁,突然灵光一现,悟出了穿越时空的方法:flux capacitor!

:face_with_hand_over_mouth:奇异博士的魔法传送门?实际上这是我跑步的时候想出来的。方案是:在项目实战中学习

区别于过去的一个个关卡,现在只保留了项目,每个项目都有对应的一系列测试。每个测试都给出足够的说明信息来怎样引导通过测试。 (如过还不够清晰的话还可以看提示)

没有说明文字的干扰,没有海量测试的阻挡。一次只是一组测试,完成的却是一个可以运行的项目。

当通过了有上千测试的课程后,完成了项目,同时也学会了编程。

也不存在课程和项目之间跨度太大的问题,因为课程本身就是一个个的项目。

同时也会有大量的重复内容帮助你温故而知新,哈哈,因为真实的项目本来就是有很多重复的地方呀。

新的改良过的测试

设计主要的挑战是当前的学习内容的解释说明,它们合并成了一整个测试描述文字。

旧的说明文字:h1元素的内容应该为:Hello World。

新的描述文字:大部分 HTML 元素都有一个开始标记和一个结束标记。 开始标记像这样:<h1> 结束标记像这样:</h1>,请把 h1 元素的内容改为:Hello World

每个项目都有很多像这样的测试。学员的全部时间都在编码,而不是在 “阅读模式” 和 “学习模式” 间不停的切换。

和以往一系列的编码挑战不同,学员只需要在代码编辑器里面通过一个个的测试,从而完成完整的项目。学员会进入真实的工作状态,就像将来他们在获得完证书后研发真实的项目的一样。从一开始就能体会到再项目实战中成长的乐趣。 freeCodeCamp 体验会更加丝滑。

学员构建可测试项目以获得证书的截图。

7.0 版课程的概览

每个主题都会通过构建项目来学习。每个证书的每个章节都会以下面的方式命名:通过搭建____来学习____。

比如,原来的 HTML 课程会变成 “通过搭建猫咪相册应用来学习 HTML”。

最终,所有的课程都会修改成面向项目设计的章节。

希望这能让你清晰课程会变成什么样子。

学习响应式 Web 设计

  • 通过搭建猫咪相册应用来学习 HTML
  • 通过搭建博客来学习 CSS 基础
  • 通过制作毕加索的画作来学习 CSS 进阶
  • 通过制作 Rothko 的画作来学习 CSS 盒模型
  • 通过制作城市天际线来学习 CSS 变量
  • 通过绘制摩天轮来学习 CSS 动画
  • 通过编写营养便签来学习排版
  • 通过搭建用户反馈系统来学习应用无障碍
  • 通过制作钢琴游戏来学习响应式 Web 设计
  • 通过构建相册应用来学习 CSS Flexbox
  • 通过制作杂志应用来学习 CSS Grid
  • 项目:制作一个致敬页
  • 项目:制作调查表格
  • 项目:制作产品落地页
  • 项目:制作技术文档页面
  • 项目:制作个人作品集页

学习算法和数据结构

  • 通过制作角色扮演游戏来学习 JavaScript 基础
  • 通过制作卡路里计算器来学习 JavaScript 进阶
  • 通过制作垃圾邮件过滤器来学习正则表达式
  • 通过制作骰子游戏来学习调试
  • 通过制作购物车来学习数据结构
  • 通过搭建搜索引擎来学习算法
  • 通过构建电子表格来学习函数式编程
  • 项目:回文检查器
  • 项目:罗马数字转换器
  • 项目:凯撒密码
  • 项目:电话号码校验系统
  • 项目:收银机

学习前端库

  • 通过制作 Flayppy Bird 游戏来学习 React
  • 通过制作俄罗斯方块游戏来学习 Redux
  • 通过制作扑克游戏来学习 TypeScript
  • 项目:制作名言随机生成系统
  • 项目:制作 MarkDown 可视编辑器
  • 项目:制作鼓机游戏
  • 项目:制作 JavaScript 版计算器应用
  • 项目:制作番茄时钟应用

学习数据可视化

  • 通过制作收件箱来学习 CSV
  • 通过制作运动团队来学习 JSON
  • 通过制作计数器来学习 AJAX
  • 通过制作仪表盘来学习数据可视化
  • 通过制作星系图来学习 SVG
  • 通过制作全球地图来学习 D3
  • 项目:用条形图可视化数据
  • 项目:用散点图可视化数据
  • 项目:用热图可视化数据
  • 项目:用地区分布图可视化数据
  • 项目:用树形图可视化数据

学习 API 和 微服务

  • 通过构建 npm 模块来学习 npm
  • 通过构建 web 服务器来学习 Node.js
  • 通过构建股票交易平台来学习 Express.js
  • 通过构建实时天气系统来学习 RESTful API
  • 通过构建电影评论数据库来学习 MongoDB
  • 项目:公制 - 英制转化器
  • 项目:问题跟踪器
  • 项目:藏书阁应用
  • 项目:股票价格查询器
  • 项目:匿名留言板

学习信息安全和品质保证

  • 通过构建信用卡表单来学习信息安全
  • 通过构建密码生成器来学习密码学
  • 通过构建食谱食材分析系统来学习测试
  • 通过构建登录页面来学习验证
  • 通过构建聊天室来学习 Websckets
  • 项目:公制 - 英制转化器
  • 项目:问题跟踪器
  • 项目:藏书阁应用
  • 项目:股票价格查询器
  • 项目:匿名留言板

怎样帮助我们完成它

我们已经开始设计这些项目了,比如,这个是 “通过制作角色扮演游戏来学习 JavaScript 基础” 项目的截图:

如果感兴趣,这里是 beaucarnes 在 CodePen 上的一个实现:

https://codepen.io/beaucarnes/pen/BbLWpe

学员会尝试构建这个游戏并通过最终的测试来学习 JavaScript。

这里是 “通过制作角色扮演游戏来学习 JavaScript 基础” 的代码:

构建这些项目会耗时数月,包括它们的测试、品质检测等等。我们计划在我们完成这些时在发布。

这就是为什么如此帅气的你点进了这个链接,并阅读到此处的意义。

上一次我们更新课程的时候,世界各地的众多志愿者帮助我们提前完成了更新。这次,同样你也可以和我们一起改进,让这些项目更早的面世。

我们需要你帮助我们做这些事情:

  • 构建初始化项目
  • 完成这些项目,拆解成一系列的数个 (可能数百个) 测试说明
  • 有了测试说明,就需要实现这些测试用例

我创建了 GitHub 项目以便所有人都可以知晓 7.0 的进度,课程链接在这里:https://github.com/orgs/freeCodeCamp/projects/10

如果你对志愿者工作有些陌生,我建议你由此开始:

  1. 在下面评论,介绍一下你自己并分享一下你的想法
  2. 加入 freeCodeCamp 志愿者聊天室 (如果你还不在里面的话):https://gitter.im/freecodecamp/contributors
  3. 在你感兴趣的的 GitHub issues 上面评论。哪怕只是一些文字的雕琢也会帮助我们更快的完成课程。 所有的issues 都在课程仓库里:https://github.com/freeCodeCamp/CurriculumExpansion/issues

有了你的帮助,正在通过 freeCodeCamp 学习的数百万的学员将会得到更好的学习资源,会帮助他们入门编程、在更多更好的项目中获得更多的乐趣和信心。

4月7日更新:@scissorsneedfoodtoo 发布一个官方 FAQ 方便志愿者更新课程信息。如果你的问题不在列表里面,我们会解答它。:+1:

4月12日更新:@scissorsneedfoodtoo 目前全职专注于课程的品质保证。他正在指导志愿者,将负责的项目或测试合并,并取得了很大进展,戳此链接:https://github.com/orgs/freeCodeCamp/projects/10

5月15日更新:一些项目的标题更新了:“通过构建一个测谎仪应用来学习测试” 变成了 “通过构建食谱食材分析系统来学习测试”,“通过构建视障友好的网站来学习应用无障碍” 变成了 “通过搭建用户反馈系统来学习应用无障碍”。

5月22日更新:添加了 “通过搭建博客来学习 CSS 基础”,“通过制作毕加索的画作来学习 CSS” 变成了 “通过制作毕加索的画作来学习 CSS 进阶”

5月23日更细:“通过构建地震预警系统来学习调试” 变成了 “通过制作骰子游戏来学习调试”

2赞

期待更新完成后的FCC

1赞