I’m skeptical of certification programs, especially in the software industry. Uncle Bob Martin has written about certifications programs and says “Don’t Waste Your Time!”. Usually you spend a few days in seminars, spend some money, and go on your way. What do you actually get from it, aside from the piece of paper?
Amazon Web Services certifications seemed different from the others because they focus on how to build scalable and reliable services. I started studying for them when I joined Amazon.com a few months ago. So far, I’ve completed the Solution Architect - Associate and Developer - Associate certifications. As a disclaimer, although I work at Amazon, I don’t work in the AWS organization and these views are my own.
It’s been a worthwhile investment to get certified. In this post, we’ll talk about why I think you should get certified and how to prepare for the tests.
Why Get Certified?
Before working at Amazon, I used AWS services like EC2 and VPCs so I felt comfortable with those tools. I didn’t realize, however, how many AWS services I’d never even touched. There’s over 100 AWS services listed in the console! I wanted to learn more about what’s available. For example, I didn’t know the difference between AWS Simple Workflow and AWS Step Functions.
(Spoiler / Aside):
- AWS recommends using Step Functions over Simple Workflow for new projects.
- SWF uses a “decider program” paradigm where you write the code to determine what to do.
- Step Functions uses a declarative JSON syntax instead.)
The certification process helped me improve in both areas. If you want to learn more about AWS, it’s helpful to get certified. Even if you’re not sure if you’ll do something related to ops or AWS, it’s good to know what’s available in case something comes up.
How to Get Certified
The basics for certification are easy:
- Pick a certificate you want
- Pay for and schedule an in-person test on AWS’s Certification site
- Take the test
What Cert Do You Want?
AWS currently offers 5 main certificates and several specialty certificates. The consensus is that it’s best to pursue the AWS certifications in this order:
- All Associate
- Specialty (Optional)
For the associate level certificates, even if you’re a developer or sysadmin, this is the recommended order:
Solutions Architect introduces you to most AWS services. It may cover how to build the networks for a Virtual Private Cloud (VPC), for instance. It also covers permissions, security, servers, database, and a general overview of your options in AWS. The certification gives you a solid base on which to build the rest of your knowledge and understanding of the AWS ecosystem. I wrote a full guide with notes for this certification, if you’d like to know more.
The Developer certification, at least in 2018, focuses on serverless technologies like AWS Lambda and API Gateway. It touches on the code-related suite of tools for AWS as well, such as CodeDeploy and CodePipeline.
The SysOps Administrator certificate covers deploying, managing, and operating services. The earlier versions of the certification covered similar ground to Solutions Architect. I suspect the 2018 update will include serverless technologies, like AWS X-Ray.
Between the Associate and Professional-level certifications, AWS offers a set of certificates that have a more specific focus on an industry or use-case. Here’s the set of specialty certifications:
The Security certificate is particularly valuable. Any of the certifications may ask security questions and they can be tricky to answer without prep. If you’d like to read more about the certs, the links above have more info.
Finally, you can wrap up with the professional level certificates:
I can’t speak in depth to either of these certificates as I haven’t started studying for them yet.
The DevOps Engineer certificate builds on the Developer and SysOps Administrator Associate certifications. It’s centered around building scalable and distributed systems on AWS, including topics such as “migrating complex, multi-tier applications” and cost management.
The Solutions Architect - Professional exam may go into just about any of the services and it expects you to understand them at a deep level. I’ve heard it’s the hardest certification to pass.
What to Study
Because the certifications can cover a lot of material, it’s important to use your time wisely. Here’s what I used to prepare:
- Watch training videos
Each site has different strengths. A Cloud Guru, in my experience, has great tests and shorter videos than Linux Academy. Linux Academy has good labs and will provision AWS sandbox accounts on your behalf. You won’t have to worry about decommissioning services when you’re done with them.
I recommend watching the videos at either 1.5x or 2.0x speed, if you’re familiar with the services they’re covering. If it’s too fast, you can always slow down. When I took the Linux Academy Solutions Architect course, it had ~25 hours of video lectures. 2.0x-ing that can help shorten the amount of time you need to study for each certificate.
- Read AWS whitepapers
To supplement your understanding, it’s helpful to review the AWS Whitepapers. They’re well written. I’ve read most of the papers in the “Introduction to AWS” section and would recommend them. In particular, check out the Overview of Amazon Web Services and Storage Services Overview whitepapers.
- Read the AWS FAQs
Most services in AWS have an FAQ section. In the past, I’d only consulted them when I needed to find a specific answer to a question I had. For the exams, it’s useful to review all FAQs for each main service in the certification. For example, I reviewed the DynamoDB FAQs or AWS Lambda FAQs for Developer - Associate.
- Take practice tests
A good way to solidify your knowledge is to take practice tests. If you use A Cloud Guru or Linux Academy, they each have ~60 question practice exams you can take.
AWS offers a free practice exam with a few questions for each certification type. For example, click the “Download sample questions” link on the Solutions Architect - Associate page.
- Pace yourself
- Try the labs
Either on your own or with the help of a site, use the services you’re learning about. The certifications are a great way to learn about a service but, for me, there’s no better way to learn something than to use it.
Is it worth it?
The certification process gives you a good base in AWS. I’m glad that I’ve spent the time doing it and I plan to finish at least a few more certifications. Because dev and devops practices have an increasing amount of overlap, it’s likely that devs will be doing some amount of ops work moving forward. I think learning more about AWS is a good investment.