我如何成为 AWS 认证开发人员 - 如何通过助理考试!
最初发表于andredevries.dev
几个月前,我通过了AWS 认证开发人员助理考试 (AWS Certified Developer Associate Exam)。这项考试考察你对开发、部署和调试云应用程序所需的核心 AWS 服务的掌握程度。AWS 认证目前是业内最抢手的证书之一,我想分享一下我参加这项考试的经验和技巧。因此,这篇博文应该对那些想进入科技行业或有兴趣成为使用 Amazon Web Services 的开发人员的人有所帮助。我觉得考试本身相当难,但收获颇丰,学到了很多东西!
介绍
亚马逊网络服务 (AWS) 规模庞大,有很多东西需要学习。它目前包含 200 多项服务。当我开始深入研究它时,我感到不知所措。我参加的第一门考试是云从业者 (Cloud Practitioner) 考试。我在今年早些时候通过了这项考试。对我来说,这项考试感觉像是 AWS 和云计算的入门考试。考试内容涉及从虚拟化到机器学习和数据库等各种服务的大量高级问题。这导致我很难事先知道自己是否学习得足够充分。但认证开发人员助理 (Certified Developer Associate) 考试的情况则有所不同——而这正是本文的重点。
考试详情
考试形式为选择题。没有开放式问题,你也不必写论文。通常,考试在考试中心举行,但由于我们正处于全球疫情之中,AWS 已将所有考试转移到在线监考环境中。我仍然不确定我是否喜欢这种设置。监考人员会在你考试时持续关注你。整整 130 分钟!这意味着即使你的手或脸有最轻微的动作,屏幕也会暂停,并会询问你为什么要移动。我在拿放在笔记本电脑旁边的水杯时,真的被拦住了。我觉得这真的令人沮丧,它让我无法集中注意力,尤其是在我第一次参加云从业者考试时。第二次参加开发助理考试时,我接受了(并且没有喝水)。
我如何备考
在深入探讨考试细节之前,我想先解释一下我是如何准备这门考试的。我认为每个人的学习方式都不一样,所以请不要盲目相信。从报名到实际参加考试大概花了3.5周的时间。虽然过去几个月我经常使用AWS,但我还是需要学习很多以前从未使用过的服务。我主要通过Udemy课程和下面提到的模拟考试进行学习。尤其是模拟考试,它能让我更好地了解自己掌握的知识点以及需要关注的重点。对我来说,这主要是学习更多关于DynamoDB和CI/CD管道的知识。每当我学习某个主题时,我都会努力让自己沉浸在学习材料中。我通过书籍、播客和YouTube视频来学习。我在这篇博文的结尾列出了大量的资源,但我阅读书籍和收听播客的主要原因是,这样可以获得一些关于你正在学习的AWS服务的“真实”见解。 A Cloud Guru 的 Udemy 课程很棒,但它是一种非常结构化且不带任何主观意见的云学习方法。而如果你听一听关于无服务器的播客(例如The Burning Monk的《Real-World Serverless》播客),你就能获得对各个学习主题更深入的讲解。
先决条件
我们先来了解一下这项考试的要求。Developer Associate 考试是三项 Associate 级别考试之一。另外两项是解决方案架构师考试和系统操作管理员考试。点击此处了解更多关于这些考试的信息。AWS 规定,您需要具备一定的经验,在某些情况下甚至需要几年的实际操作经验才能通过考试。但是,注册该考试没有任何实际的先决条件。因此,任何人都可以报名,即使您没有任何 AWS 认证。
考试题目分布如下:
- 部署:22%
- 安全:26%
- 开发:30%
- 重构:10%
- 监控:12%
AWS 建议您参加 Developer Associate 考试时具备以下知识和经验:
- 深入了解至少一种高级编程语言
- 了解核心 AWS 服务、用途和基本 AWS 架构最佳实践
- 熟练使用 AWS 开发、部署和调试基于云的应用程序
- 能够使用 AWS 服务 API、AWS CLI 和 SDK 编写应用程序
- 能够识别 AWS 服务的关键特性
- 了解 AWS 共享责任模型
- 了解应用程序生命周期管理
- 能够使用 CI/CD 管道在 AWS 上部署应用程序
- 能够使用或与 AWS 服务交互
- 能够运用对云原生应用程序的基本理解来编写代码
- 能够使用 AWS 安全最佳实践编写代码(例如,不在代码中使用秘密和访问密钥,而是使用 IAM 角色)
- 能够在 AWS 上编写、维护和调试代码模块
- 熟练编写无服务器应用程序代码
- 了解容器在开发过程中的使用
这是一个很长的清单,每一项都会被测试。但有些测试比其他测试更重要。因此,我将把最重要的测试分解如下:
深入了解至少一种高级编程语言
这是列表中的第一个,可能会吓到一些人。我真的需要了解甚至学习一门完整的编程语言才能通过这门考试吗?答案是否定的,但它可能会有所帮助。我的意思是,你实际上不必编写代码,但你必须理解它。这也有助于你在 AWS 的未来职业生涯。尽管你可以在 AWS 控制台中做很多事情,但许多云开发人员正在使用CLI和CloudFormation来部署他们的“基础设施即代码”。因为问题是选择题,如果你不太确定,你可以使用排除法来获得这些类型问题的正确答案。我遇到的涉及与缓存相关的代码的问题,以及哪个代码片段最有效地演示了缓存。
了解核心 AWS 服务、用途和基本 AWS 架构最佳实践
尽管本次考试主要侧重于 AWS 的开发人员方面,但我还是建议您对核心服务(如EC2、S3、IAM和RDS )有深入的了解。许多问题的可能的答案中都列出了这些服务,因此了解您可以用它们做什么(以及不能用它们做什么)非常重要。我没有遇到任何关于在VPC中实际设计或构建解决方案的问题。这主要是因为许多开发人员服务都转向了“无服务器”设置。有了无服务器,许多详细的架构已经为您处理好了。AWS 考试中总是会出现的另一点是最佳实践。这些通常与安全最佳实践有关。使用 AWS 时的经验法则是,您负责保护云中的内容,而 AWS 负责保护云本身。
能够使用 CI/CD 管道在 AWS 上部署应用程序
这一点非常重要,我有很多疑问。CI/CD 代表持续集成和持续部署。这些是开发人员在(自动)部署和构建代码时使用的范例。理解什么是“蓝绿”部署很重要,但如果你知道这些术语的定义,就不会被考验。通常,问题写成小案例研究,你必须选择最合适的部署策略。问题本身也会定义“合适”。我建议你自己使用或试用AWS Codepipeline来了解其中的各个部分。这种 AWS 服务是一种伞状服务,包括“ Codecommit ”(AWS 的 Github)、Codebuild和CodeDeploy。你需要了解的另一个此类工具是X-Ray。它是一种可以帮助你分析、调试和监控应用程序的工具。
熟练编写无服务器应用程序代码
您可以将这个要求扩展一点,并将无服务器应用程序作为一个整体来考虑。因为考试中有很多与无服务器计算相关的问题。您需要能够清楚地表达“传统部署”和无服务器部署之间的区别。在前者中,用户必须自行配置实例、维护和更新操作系统、安装应用程序以及处理和配置自动扩展。当您迁移到无服务器框架时,所有这些都不再需要。您只需要负责编写应用程序代码并对其进行监控。其他所有事情,例如自动扩展,都由 AWS 负责。您需要在本节了解的服务有:AWS Lambda、API Gateway、DynamoDB、Step Functions、Athena和Kinesis。在此列表中,我强烈建议您学习 Lambda、Gateway 和 DynamoDB。
了解容器在开发过程中的使用
我在学习期间完全没关注过这个问题。我也没收到太多关于这方面的问题,所以如果你从未使用过 Docker 和 Kubernetes,我倒是不用担心。不过,我建议你了解一下那些能帮助你在 AWS 上部署容器的 AWS 服务(AWS ECS),因为它们可能会在其他与容器无关的问题中被提及,作为潜在的答案。
我用来学习的资源:
我曾经参考过很多资源。备考 AWS 考试时,最重要的是要获得实际操作服务的经验。这种实践经验能让你更好地掌握控制台。然而,对于 Developer Associate 考试,我还会重点学习 CloudFormation 以及如何使用AWS 无服务器应用程序模型(SAM)。几乎所有控制台中能做的事情,你都能通过 AWS 提供的各种 API(例如 AWS CLI)来实现。我下面列出的大多数资源都能让你获得这种亲身体验:
- Cloud Guru 开发者助理课程( Udemy ):一个著名的在线云培训资源。Cloud Guru 有很多课程,这门课程非常出色,能让你对 AWS 的开发者方面有扎实的理解。
- AWS Certified Developer Associate 考试准备( YouTube ):一段演示录像,带您了解考试的各个环节。其中包含练习题和大量技巧和窍门。
- TutorialsDojo(网站):我在这里购买了模拟考试的访问权限。这是我用来测试考试中哪些部分需要特别注意的主要方法。
- AWS Simplified(YouTube):信息量很大的 YouTube 频道,其中有大量关于各种 AWS 服务的简短视频。
- DynamoDB 指南(网站):由Alex DeBrie撰写。他是 AWS 的英雄,也是《DynamoDB 手册》的作者。
- 逐一阅读(新闻通讯):我订阅了两份 AWS 相关的新闻通讯,同时也浏览了Jeremy Daly撰写的这本新闻通讯的积压内容。这是了解庞大且不断发展的无服务器生态系统的绝佳方式。
- 上周 AWS(时事通讯):并非专门关注 AWS 的开发人员方面,而是一份优秀的全方位每周时事通讯,可让您随时了解 AWS 的最新动态。
- 无服务器聊天(播客):Jeremy Daly 的一档内容丰富但有时技术性很强的播客。
- 真实世界无服务器(播客):由 AWS 精英 Yan 主持的播客,他精通无服务器相关的所有领域。其中包含来自不同公司的大量优秀无服务器实施示例。