HashiCorp has recently announced the availability of the Terraform Certified Associate exam. This is an excellent way to assess your skills and demonstrate your competence with the Infrastructure as Code tool, Terraform. Those who have been following me for any period of time know that I am a pretty big fan of Terraform, and may have authored more than a few posts and courses on the topic. What you might not know is that I was actively involved in writing and reviewing the questions for the exam. In this post, I will give you an overview of what to expect in the exam, how I think you should study for it, and some materials to help you along the way.
The HashiCorp Certified Terraform Associate exam is meant to test that you have an associate level of experience and knowledge with Terraform. But what does an associate level really mean? It means that you are comfortable with the core concepts of Infrastructure as Code and the main underpinnings of Terraform. It means that you are comfortable using Terraform in a non-production environment and you have created enough configurations to understand how the tool works. You’ll also need some knowledge of what Terraform Enterprise and Terraform Cloud do, although you do not need practical experience with either.
HashiCorp has laid out the expectations for the certification with nine high-level objectives. Each objective has enabling objectives that further detail what you should know about a subset of the high-level objective. Let’s take a look at one of the high-level objectives:
Implement and maintain state
Implementing and maintaining state is a broad topic and could include a lot of basic and advanced information. The first enabling objective is:
Describe default local backend
Ah, okay. So we are dealing with the default local backend. That narrows things down considerably. What do I need to know about the default local backend? Well, it’s the default. If I don’t specify a backend, Terraform will use this one. It supports state locking. It uses the local filesystem, and creates the file
terraform.tfstate in the directory of the configuration, unless I tell it otherwise. There’s a bit more to it, but I think that’s a pretty good start. You can always read the official docs for more information, or try out Terraform yourself to see how the local backend works.
I’ve taken a lot of certifications in my time as an IT practitioner, and I have to tell you that many vendors are vague and ambiguous about what is going to be on the exam. That is not the case with HashiCorp. It is very clear what will be included. I can tell you from experience, questions that strayed from the core objectives were rejected. This exam is not meant to be tricky or clever. It is meant to test your knowledge on the objectives defined by HashiCorp. I wish every exam was designed this way.
The exam itself is a combination of true/false, multiple choice, and multi-select questions. It is not a practical exam where you are presented with a command line and a task. The exam is administered with a remote proctor, which means you’ll need a webcam and a clear workspace. It is a pass/fail type exam, so you’ll need to get a certain amount of questions right to pass. Just like any modern exam, you get the results immediately after taking the exam.
If you want to hear more about my thoughts on taking a remote exam, I recorded a whole YouTube video just about that.
Studying for the Exam
There are many ways to study for an exam. You can read a book, watch a video, or do some practice questions. I have used a combination of all of these and more to prepare for previous certification exams. Below are some recommended resources you can use to study and prepare. Note, I do not earn commissions from any of these links, although I may earn money if you purchase something I wrote or created.
- Books – Books are a great way to study the core concepts of Terraform. Here are two books that I think do a great job of getting you ready:
- Courses – Courses and walkthroughs are a great way to absorb the information and get some keyboard time:
- Study guides and practice exams – These are focused on the exam itself and should probably be used to augment other learning:
- HashiCorp Terraform Certified Associate Preparation Guide: A guide I wrote with Adin Ermie
- Study Guide – Terraform Associate Certification: Official guide from HashiCorp
- HashiCorp Certified: Terraform Associate Practice Exam: Practice Exam by Bryan Krausen
All of these resource are great, and I have first-hand knowledge of using them or creating them. There are plenty of other resources out there, but I cannot speak directly to their content. In addition to using these study materials, I think it’s important to get actual keyboard time with Terraform. By tinkering around with the product, you will learn how the tool actually works in multiple contexts. The easiest way to get started is to simply download Terraform onto your workstation and create a configuration. Another quick way is to use the Azure Cloud Shell.
The Cloud Shell in Azure has many tools pre-installed when you launch it, including Terraform and Git. It also inherits the Azure AD credentials you used to launch the Cloud Shell, so you don’t have to worry about provider authentication for Azure resources. And the Cloud Shell has a built-in code editor, meaning you don’t even need to edit the config files locally. If you want to get started quickly with minimal friction, create an Azure account and launch Cloud Shell. No local installation, and no local dependencies.
I can tell you from personal experience that Terraform’s popularity has skyrocketed. The launch of a formal certification for Terraform is a major milestone for HashiCorp, and I suspect the cert will be incredibly popular. The good news is that the exam was created with fairness and transparency in mind. What you see in the objectives is what you get in the exam. Between the resources above and practice time with the Terraform itself, I think you will be well positioned to pass the exam and achieve the Terraform Associate certification. Good luck, and let me know how you do!