关于 课程

MDN 前端开发人员课程旨在为前端 Web 开发人员在当今 Web 行业中就业和长期发展所需的必要技能和知识提供权威建议。

本课程由 MDN 团队创建,并得到了 Mozilla 内部以及更广泛的 MDN 社区的专家的审查和反馈。感谢你们的宝贵意见;你们知道是谁!

动机

Mozilla 每天都会与行业专业人士沟通,我们经常收到关于新员工知识差距的反馈。招聘经理经常观察到

  • 过分强调使用框架快速构建 Web 应用程序,同时缺乏对这些框架背后底层技术的理解。这导致缺乏解决问题的能力,并且随着工具的变化,长期就业能力下降。
  • 缺乏语义、可访问性和响应式设计等核心最佳实践。这会导致缺乏用户关注,从而导致可用性限制。
  • 对浏览器如何工作、如何呈现信息以及免费获得的交互性的知识差距。这会导致解决方案过于复杂,并且通常无法访问。
  • 解决问题、团队合作、研究和其他重要软技能有限。

因此,我们决定创建本课程来帮助人们学习更佳的技能,提高他们的就业能力,并使他们能够构建更佳、更易访问、更负责任的未来网络。我们希望他们有最大的成功机会。

本课程体现了我们认为 Web 应该具有的价值观——可访问性、可持续性、可用性、性能和社区。我们希望教育工作者、开发人员和学生能够使用此资源并在他们的工作、教学以及他们构建的产品中倡导这些价值观。

目标受众

学生

本课程对几个学生群体有用

  • 希望在业界找到工作的学生,这可能涉及获得相关资格或认证。本课程将作为他们应该学习什么的指南。
  • 希望“提升”自己技能的现有 Web 开发人员,确保他们的技能组合是最新的,并确定他们应该了解更多知识的知识差距。
  • 在其他领域拥有现有开发经验(例如后端 Web 开发人员或特定平台开发人员)的非前端 Web 开发人员,他们希望进入前端 Web 开发领域,并希望获得他们应该学习的主题指南。

一旦学生有了他们将要学习的主题列表,他们应该继续通过自学、参加课程或训练营来学习,或者两者兼而有之。无论哪种方式,在完成符合要求的课程后,学生都应该能够通过测试他们所学主题知识的考试。

注意:此资源不是学习前端 Web 开发的课程,也不旨在彻底教授它。它只是对现代前端 Web 开发人员应该了解的内容的建议。但是,我们确实花费了相当多的时间和精力来审查涵盖我们模块的不同课程,并打算推荐我们认为适合学习课程的免费和付费课程。

教育工作者

教育工作者可以在创建与 Web 相关的大学学位、大学课程、编码学校课程或类似课程的程序、单元和评估规范时,将本课程用作指南。遵守本课程将有助于确保课程教授最新的技术和最佳实践,并避免不良实践和过时信息。

注意:任何基于 MDN 课程的课程都应符合核心,但也可以选择包含一个或多个扩展

我们建议任何符合 MDN 课程的课程都应

  • 通过考试理论测试和实践真实项目相结合的方式评估学生,让学生将他们的知识付诸实践。
  • 为学生提供一个包含他们项目工作的存储库,该存储库可以作为作品集发布,以向潜在雇主证明他们的技能。

范围

术语“前端开发人员”可能模棱两可;它对不同的人可能意味着不同的东西,并且从事前端工作的人员可能会被期望执行各种不同的任务。

涵盖内容

本课程并未试图概述 Web 开发人员可能被期望深入了解的每个主题。本课程涵盖以下内容

  • 核心技术技能,例如语义化 HTML、CSS 和 JavaScript 基础。
  • 最佳实践,例如可访问性、响应式设计和 UI 设计理论。
  • 关键工具,例如框架和版本控制。
  • 软技能,以促进获得工作所需的思维方式和态度。
  • 环境知识,例如计算机和文件系统、浏览 Web、命令行基础知识和代码编辑器。
  • 我们认为构成开发人员开始扩展他们的知识和发展专长时需要学习的有用附加技能的几个“扩展”。这包括
    • CSS 转换和动画
    • 常见类别的 Web API(例如媒体、图形和存储)
    • 性能
    • 安全和隐私
    • 测试

详细程度

所介绍的主题以不同的详细程度进行涵盖。

  • 有些主题会深入讲解,例如 HTML 和 CSS 基础知识。在学生学习之旅中走得太远之前,了解这些知识非常重要。
  • 有些主题则会更浅显地介绍,例如版本控制或测试。了解这些主题是什么并开始学习一些基础知识很重要,但这些类型的技能可以在您职业生涯中继续扩展。

不涵盖的内容

我们也明确地没有在本课程中涵盖几个领域,即

  • 后端语言/平台,例如Node.jsPHPPython.NETJavaRuby。根据定义,后端超出了前端开发课程的范围,尽管您会在全栈开发课程中发现交叉。
    • 这里的一个例外是 Node.js;它在现代 Web 开发中具有广泛的用途,因此一些基本的 Node.js 知识应该被认为是必不可少的。我们没有明确地涵盖基于 Node.js 的应用程序的开发,但您会在课程的多个地方遇到它,作为使用各种工具/功能的机制。例如扩展 6 测试扩展 9 其他工具类型
  • 传统的关系数据库(例如MySQLPostgres)和其他服务器端数据存储(例如MongoDBGoogle Cloud Datastore等云数据库)。这些被认为是后端的一部分,因此不在范围之内。我们确实涵盖了客户端存储机制,例如cookieWeb 存储IndexedDB,但它们有不同且独特的用例。
  • 深入的 DevOps 主题,例如用于供应和自动化的云平台(例如Amazon AWSGoogle Cloud PlatformMicrosoft Azure)和容器化工具(例如KubernetesDocker)。我们确实稍微涉及了一些被认为属于 DevOps 领域的工具——例如 GitHub 和自动化测试工具——但这些工具与前端开发领域有明显的交叉。
  • 超出基本知识(在面向开发人员的设计中概述)的图形设计。
  • 与产品和项目管理等角色相关的技能(例如组织、研究和计划)。

署名

此资源可供任何人免费使用。如果您发现本课程有用,我们恳请您考虑执行以下操作

  • 链接到它。例如,教育工作者可以在其公开的程序信息中包含以下内容
    html
    <p>
      This course is based on the
      <a href="https://mdn.org.cn/en-US/curriculum/"
        >MDN front-end development curriculum</a
      >.
    </p>
    
  • 告诉其他人!我们希望尽可能多的学生和教育工作者开始使用本课程并将其作为 Web 开发人员基础知识标准进行融合。

注意:本课程应作为指南使用,但其使用并不意味着得到 Mozilla 的认可。

课程更新流程

Web 开发行业正在不断快速变化。为了使我们的建议保持最新,我们将定期审查我们的课程,发布更改日志,并每年发布公告,联系已知符合课程的课程创建者,让他们知道课程已更改,并鼓励他们根据需要审查/更新他们的课程。

我们打算每年在第二季度这样做,以便教育工作者在下一学年开始前有时间在第二/第三季度实施更改。

反馈

我们非常乐意听到您对我们课程的反馈。如果您有任何关于如何改进此资源的建议,或者如果您注意到任何不准确或错误之处,我们都希望收到您的来信。在课程源代码存储库上提交包含您的反馈的问题。