I just passed Terraform Associate (004) β what I wish I'd known
Honest notes from the day after: which questions came up, where the time goes, what I crammed for that turned out not to matter, and what I underweighted.
I sat the Terraform Associate 004 yesterday and passed on the first try. This is not a "here's what to study" post β there are plenty of those, including our own one. This is the post I wish I'd read the night before, while everything is still fresh.
For context: I've been writing Terraform on AWS for about three years, mostly application infrastructure β VPCs, ECS, RDS, ALBs, the usual β sometimes against HCP Terraform but more often against S3 + DynamoDB. I sat 003 a long time ago in a half-attentive way and figured 004 would be a quick refresher. It mostly was, but with footnotes.
What I crammed that I didn't need
The two days before the exam I went deep on a few topics that turned out to be near-zero on the test:
- Sentinel and OPA syntax. I'd convinced myself I needed to recognize a Sentinel rule on sight. There was exactly one question that touched policy-as-code, and it was conceptual β "which feature enforces organizational policies?" β answerable just by knowing that the word "Sentinel" exists.
- Provider plugin protocol versions. Zero relevance.
- Memorizing every
terraform statesubcommand. The exam asks aboutstate list,state mv, andstate rmin scenarios. If you understand what each one does in plain English, you don't need to drill the flags. - HCP Terraform pricing tiers. Not on the exam. The exam treats HCP conceptually.
If I had the prep time back I'd have put it into more for_each vs. count reps.
What surprised me
A few things I didn't expect:
The new 004 stuff is asked precisely. I'd expected fluffy "what does the moved block do?" questions; instead I got specific scenarios like "you've renamed a resource and want to preserve its state without disruption β which is the minimal valid change?" with answer choices that included both a state mv invocation and a moved block. You have to pick the idiom that fits the workflow, not just recognize that both exist.
Multiple questions on import blocks vs. terraform import. I'd lazily assumed they were equivalent. The exam reminded me they aren't β the block is declarative and integrates with plan; the CLI command is imperative and side-effects state immediately. Two questions specifically tested whether I knew which one fits a reviewable CI/CD workflow.
The HCL questions are denser than the practice tests suggest. Many practice exams give you a tidy four-line snippet. The real exam at least once handed me a fifteen-line block with a dynamic nested inside a resource whose own for_each was driving the outer count, and asked me to predict the number of resources created. I had to read it twice. Do not underestimate the cognitive load of reading HCL carefully under a 60-second-per-question clock.
Two questions on terraform test. I'd almost skipped this section because the practice tests barely mentioned it. The questions were conceptual β that .tftest.hcl exists, that run blocks contain assertions, that you can mock providers for unit tests. Skim the docs page; it's enough.
Time management almost bit me
57 questions in 60 minutes is just over a minute per question. I'm a slow test-taker on technical content because I read code carefully. I finished my first pass at minute 52 with five questions flagged for review. On two of those flagged questions I'd been overthinking the wording; rereading them fresh I changed both answers β one ended up correct, the other I think I changed to the wrong answer (there's no way to know after the fact).
What worked: any question where I caught myself rereading the stem more than twice, I picked my best guess, flagged it, and moved on. Don't sit on a single question for four minutes. If you don't know it after a minute, you probably won't know it after three more.
The slow questions
A specific category that ate clock: "given this state file output, what will terraform plan show?" These are slow because you mentally walk through a state diff. For two of them I gave up trying to simulate, looked at the answer options, and picked the most-likely-broken thing (a missing tag in one case, a changed attribute in the other). Both turned out correct. Pattern recognition over deep simulation, when the clock is short.
What I'd actually recommend, if I were redoing my prep
Given what I now know, here's the rebalanced budget:
- 40% practice questions. Actually take them under time, actually engage with wrong answers.
- 25% reading HCL examples slowly. Write some too, but the fluency you need on exam day is reading fluency, not writing fluency.
- 15% state semantics. What's in the state file, why locking matters, what
moved/removed/importblocks each solve. - 10% the new 004 features in isolation β variable validation, preconditions, ephemeral values, write-only arguments, HCP projects,
terraform test. - 10% everything else β IaC concepts, Terraform's purpose, HCP overview.
A lopsided budget by design. The "everything else" bucket is mostly things you already know if you've used Terraform for more than a few months.
Things I didn't expect to matter that did
- Knowing
terraform fmtexists and what it does. Came up twice. One of the wrong answers was thatfmtmodifies state. - Provider version constraints syntax. The difference between
~> 1.2and~> 1.2.0(the second is pessimistic at the patch level β more restrictive). Got this one right but I'd convinced myself it wouldn't be tested. - What
terraform init -upgradedoes versusterraform init -reconfigure. I was asked which to use after changing a backend block. The answer is-reconfigure. terraform outputwith-json. A scripting scenario asked which command produces machine-readable output values. Trivial if you've used it; easy to overlook if you haven't.
After the exam
PSI shows a pass/fail screen at the end (I got the green checkmark; relief). The full score breakdown by domain arrives by email a couple of days later. The badge surfaces in your Credly account once you accept it. HashiCorp certifications are valid for two years, so put a calendar reminder.
The thing I underestimated about a vendor exam is how draining 60 minutes of dense focus is. Don't schedule a meeting after. I came home and stared at a wall for an hour.
If you're close to your sit date, run a cold block from the CertLabPro 004 bank. Don't optimize for a high score on the practice β optimize for catching the categories you're weak on while there's still time to fix them.