Last month I passed the Amazon Web Services (AWS) Certified Cloud Practitioner (CCP) exam. I decided to write up my experience with the exam because it might help others who are looking to learn more about cloud computing.
One of the hardest things in tech is the pace at which technology changes. All new technologies advertise that they are going to change everything and become something you need to know. This claim rarely turns out to be true, so engineers are constantly trying to figure out which new technologies are really worth their time to learn.
Cloud computing is a new(ish) technology that has moved from the hype stage to the “No, really, this is now a part of most projects” stage. At work I use a cloud computing environment, although I was not involved in setting it up and am not involved in administering it. A number of my engineering friends are involved with projects that require either setting up AWS infrastructure or working with it in a hands-on way. And graphs like this show how the annual spend on cloud computing has increased over time:
In short, if you have time to invest in learning a new technology, cloud computing seems like a good place to spend it!
This was not my first time attempting to learn AWS. A few years ago I thought “Ah, I keep on hearing about AWS. I have a lot of experience with software development. Why don’t I just create an account and figure it all out on my own?” And so I created an AWS account, was greeted with this screen, and had no idea what to do next:
The issue turned out to be this: while I have lots of experience with computer science and software engineering, I have very little experience with system administration. A term you hear a lot with cloud computing is infrastructure. In short, AWS lets you purchase infrastructure as a service (i.e. on a pay-as-you-go basis). Since I never worked with the infrastructure on my past projects, the value proposition of AWS (“A cheaper, easier way to do computing infrastructure”) did not make a lot of sense to me.
The second false start was taking a course on AWS from a well-known online school. That course was structured as video lectures with homework assignments that were lengthy text documents (think 20 bullet points like “On this screen look for the button that says this. And then select the dropdown that says this. And then on the next screen click this.”) These text-based instructions were so lengthy and detailed that by the time I finished them I could not explain what I had done.
I mentioned my frustration with learning cloud computing in a slack group I’m in and one of the members, Mike Julian, made a suggestion. Mike founded a cloud computing consulting company called The Duckbill Group. He said that when people join his company with no cloud experience he tries to get them to pass the AWS Certified Cloud Practitioner Exam (the entry level certification offered by AWS). And to prepare for that, he recommends that they take this course from the site ACloud.guru (ACG). He described ACG as the leader in preparing people to pass AWS Certification exams. And he described the exams as something that are widely recognized within the field.
Mike’s recommendation to take ACG’s CCP prep course and then take the actual exam wound up being the thing that helped me go from “Cloud Computing is something I am interested in learning about” to “Cloud Computing is something I know the basics of.” I recommend this approach to anyone who wants to make a similar jump.
Mike said it normally takes people about 3 months to go from knowing nothing to passing the exam, and I’d say that was roughly true for me as well. Below are study tips that I wish I knew when I started this process. Hopefully they will help someone else who is working towards this goal.
If you decide that you want to do this yourself, I have two suggestions: use a flashcard app and take a lot of labs.
My biggest surprise about the CCP exam is how much memorization it requires. There were so many terms that I wound up using Anki to help me remember them all. Using Anki (or any other flashcard app) is something I wish I had done earlier.
One way to think about this is that Cloud Computing cuts across all aspects of a business. The intro level exam covers topics of interest to people in financial roles as well as technical roles. It covers migrating existing projects to AWS as well as creating new projects from scratch. If (like me) you do not actually use any of this knowledge on a daily basis, and your memory for random facts isn’t great, then a flashcard app like Anki is probably your best bet to prepare for the exam.
As an example, I had heard of S3 prior to taking the exam and vaguely knew what it was. But for the exam you have to know the names of six different S3 storage classes, and when a customer should use one over the other. (The storage classes are: Standard, Infrequent Access (IA), One Zone-IA, Intelligent-Tiering, Glacier Flexible Retrieval and Glacier Deep Archive).
Mike specifically recommended that I take as many of ACG’s “labs” as I could. Having been through the experience I can see why. As a developer I want to get my hands dirty and actually use the technology. And flashcards just don’t let you do that.
You could try to experiment with the tech on your own AWS account, but there you run the risk of incurring costs or breaking something. Also, as a beginner you don’t know enough to do an interesting project on your own.
The ACG labs give you a private sandbox on AWS with a time limit and an objective. Within the realm of S3, I took labs where I: uploaded and downloaded a simple file, enabled versioning on an object, created a static website, implemented cross-region replication and set up a lifecycle policy. Each lab also has a solution video which you can watch if you get stuck.
ACG’s labs are what made the material “come alive” for me, and I’d recommend them to anyone who wants to get started with AWS.
At this point I know the basics of AWS and can imagine one day building some interesting side projects using this ecosystem. Of course, I’d almost certainly need to learn more in order to actually pull those projects off. At this point I might be able to simply self-teach whatever holes I have in my knowledge. But there is also another step in the certification process that might help as well: AWS Certified Solutions Architect – Associate, which A Cloud Guru also has a prep course for (link).
Taking that course and passing the exam is definitely on my “to do” list, but I’m just not sure on its priority right now.