How I studied for the Terraform Associate Exam

Related pages:

I passed with a score of 75%. (70% is passing.) I didn’t review all my answers because I was starting to feel dizzy. I might have gotten one or two questions right had I finished review. But passing is passing, so I’ll call it a win.

Also see my experience taking the exam online.

My overall exam impressions

Putting aside the discomfort with taking the exam from home, I think it is a good exam. There’s a lot of testing of concepts/understanding and not a lot of memorization. For example, there was no need to memorize the command line options for each command; something I wasted time on. There were a number of questions about the best way to do something in a scenario. Most of the questions were pick one of four. A few were pick 2 or 3. Some were true/false. And two were typing in the answer. Both were things that one could reasonably be expected to know.

Studying for this exam definitely got me to understand Terraform and I have confidence next time I write/edit/review scripts, I’ll know what I’m doing. Another nice thing about cert exams is questions that I’m unsure of (and I can remember) I look up the answer to and remember for a long time. I still remember something I got wrong on the Jenkins exam and I took that 6 years ago! I do know what I got wrong on 2.0 and 7.0 so that was effective.

Status: Pass 

Overall Score: 75% 

Breakdown by content area: 

1.0  Understand infrastructure as code (IaC) concepts: 100%
2.0  Understand Terraform’s purpose (vs other IaC): 50%
3.0  Understand Terraform basics: 71%
4.0  Use the Terraform CLI (outside of core workflow): 66%
5.0  Interact with Terraform modules: 83%
6.0  Navigate Terraform workflow: 83%
7.0  Implement and maintain state: 50%
8.0  Read, generate, and modify configuration: 81%
9.0  Understand Terraform Cloud and Enterprise capabilities: 100%

My score report

My experience with Terraform before starting studying

I reviewed a Terraform script for one of our systems and “paired” with a teammate on parts of another one. Both of them happened during the “mandatory full time work from home” for over a year experience. My brain wasn’t in great shape for a lot of that period so it didn’t click. My goal of taking this cert was to understand the principles and re-learn everything.

Offline studying

My ideal was to do as much of the studying as I could offline on the subway on a plane. (I had two round trip flights in the last two months.) This meant books were ideal.I had read Terraform in Action earlier in the year so re-read the relevant parts.

IPSpecialist has two $10 books – the study guide and 150 extra practice questions. Both were listed as 2022 (which is important because the exam changed recently.) The books had a ton of errors and looked like they were written by committee. But they were cheap and let me study a lot offline so I’ll call them worth it. (I also hadn’t realized IPSpecialist and Whizlabs were the same company.)

Online studying

I did the 6 official practice questions. (got 5/6 day of the exam, but that was the second time I’d seen the questions). I also skimmed the official review docs the day of the exam.

Running Terraform

Other than watching my teammate run Terraform, I have no hands on experience. (That will change soon.) I took the exam without ever directly running Terraform.

My first online cert – PSI – Terraform Associate Exam

Related pages:

Today I took my first online certification exam. Oracle allows online/at home proctoring. I thought of a number of downsides which I blogged about. HashiCorp only permits the Terraform Associate exam be taken online. It’s only a 60 minute exam and doesn’t have a lot of code. It’s also only a $70 exam so I felt ok risking having my home environment being deemed illegal and losing my (well, my employer’s) money.

Laptop Testing

I did the laptop test on my Mac. Safari blocked the software. Chrome allowed it. The built in webcam/speaker/mic were sufficient. Ok. One thing that’s not a problem.

Room setup

The physical room requirements are posted online. The first one is “You must be alone in the room with the doors closed” which immediately poses a problem. The definition of a “room.” I live in a studio apartment – there are two doors. One is the door to the apartment and the other is the door to the bathroom. They want you to do a 360 degree scan of the “room” and have no papers/books/electronics visible. Well the “room” is the entire apartment.

I emailed to ask if I could be sitting on the bed. (I have a portable closet in front of the bed so could be angled in a way the entire “room” isn’t visible. The answer was no because they want you at a “desk” so they can see your head and shoulders. Well, if we are being flexible with the definition of the word “room” on to the word “desk.” My actual computer desk is lovely. It has a keyboard tray and a raised monitor so is ergonomically comfortable. However, a 360 degree view of that spot features a whiteboard, tons of books, papers, electronics, and well most of what I own.

There’s a narrow pathway between the main part of my apartment and the bathroom. So I put a portable table and the chair I use when eating in that spot. (Fun fact: I almost tripped over this when going to bathroom right before the exam.) I faced the bathroom door so the proctor could see I wasn’t looking at anything and nobody was behind me. This was acceptable.

Speaking of “Your whole head and shoulders should be visible for the exam”, they were. However, it was uncomfortable because the laptop was directly on the table. If I raised the laptop or lowered my chair, the my shoulders wouldn’t be visible. However, looking down at the screen isn’t great for you. Luckily, it was a short exam.

They also have “Limited background noise”. I have a lot of background noise from outside, but this wasn’t called out as an issue.

Prep

You are encouraged to start setting up 30 minutes before your exam. It took 25 minutes. First came downloading the 205MB file. Then installing it (623MB). The software prompts you to close a lot of stuff (or click a button to terminate it. For me that was “Please close the following prohibited applications: Chrome, DropBox, Excel, Ipad Screen Mirror, MS Word, Messages, Photos, Safari, Skype, Slack, TextEdit”

Then you take a photo of your id. After that, I was prompted to take a series of videos. Not trivial to do with a laptop. Also the space isn’t wide so I had to turn carefully. While recording what they wanted within 15 seconds. There was a 360 degree scan, floor to ceiling scan, desk scan and wrists/ears don’t have writing on them video. The last one was to video your cell phone being put away. And also, a still photo of yourself. So I had to go get it to prove it wasn’t there. Rolleyes. Then you wait for a proctor to engage you in chat.

The proctor had me redo almost all of the videos live. The one showing the desk/chair took a few tries. The proctor eventually told me to stand up and take it from the distance. When we finished this, it was 25 minutes from when I started the procedure. Then the proctor told me to close the chat and start. I couldn’t find a button to close the chat, but it automatically closed a minute later.

The actual exam experience

The actual exam software was a lot like taking it an an exam center. You could flag questions. There was also a highlighter I didn’t try. Except

  • You can’t look away from the screen. I look away from the screen A LOT during normal use. Even when I’m working. I look at a paper, a random point in the distance, the keyboard (when looking for special characters), etc. When I work on the writing my book, I set a Pomodoro timer and physically get up every 25 minutes. And even then, I’m shifting what I look at (writing, IDE, docs). Before I started setting the timer, I’d feel dizzy starting at the computer. I didn’t know if this would be a problem for a short exam. It was. I ended the exam at 38 minutes (plus the end of setup and some survey questions before/after). I was already feeling a little dizzy at that point. Not enough to get a headache or motion sickness feeling after, but still not good.
  • Hack: while you can look away, you can yawn. Which goes with about 3 seconds of having your eyes closed. It didn’t prevent the dizziness, but did let me get through the exam.
  • I like to write when taking certification exams (or working for that matter.) It helps me organize my thoughts and remember stuff. I definitely felt the impact of not being allowed to writing materials. (not even an online whiteboard.)
  • There are 57 questions on the exam. They are numbered 2-58. Question 1 is about working for a HashiCorp partner. Question 59 is instructions to submit. Then there are a bunch of survey questions like how much experience you have. The last question was employer’s name. I wrote “prefer not to say”, but wanted to write “none of your business.” This is a cert test not a vendor at a conference giving me free stuff in exchange for that info. (And I write CodeRanch there rather than actual answer)

Getting results

After answering the survey questions, you get your score and the % per section. It was also emailed at the same time. As was a credly link for the badge.

running vs code from the command line on mac

Today was my FIRST in person FRC (FIRST Robotics Challenge) meeting since COVID showed up. Very exciting! Right now the older students are teaching the younger students. Today was an excellent intro the the UNIX/Git Bash command line. Towards the end, they showed that you can type “code” at the Git Bash prompt and have VS Code open automatically. Then a student asked how to do it on Mac.

There’s an easy way to do it and a hard way to do it. I went with the hard way because I thought I knew what to do. If we had gone the easy way, we would have been done in the meeting. Which proves the point of the importance of reading documentation.

The easy way

Courtesy of the setup docs for Mac

  1. Open VS Code (using Spotlight Search/the UI)
  2. Open the command palette (command + shift + p)
  3. Type path
  4. Choose option Shell Command: Install ‘code’ command in PATH command.
  5. Close VS Code
  6. Open a new terminal window
  7. Type code

The hard way

I divided the hard way into five steps to explain what to do. We got through step 1 and the beginning of step 2 during the meeting.

The Hard Way – Step 1: Find VS Code

I expected VS Code to be in /Applications. On my computer, it is at /Applications/Visual Studio Code.app. That was not where the student had it. After some googling and failed attempts at using Stack Overflow threads, we found an excellent tip.

  1. Hold option and click the Apple in the top nav
  2. Choose “System Information”
  3. Software > Applications
  4. Wait patiently. No really. Wait some more
  5. Scroll all the way down to “V” and click “Visual Studio Code”
  6. Read the location. It was under <user home>/wpiilib/vscode or something like that. (WPILive is the robotics library)

The student had the good idea to open it in Finder and drag to /Applications. (Open finder and hold option while choosing “Go”) for extra options.

The Hard Way – Step 2: Figure out where “code” executable is and add to PATH

We poked around in the Visual Studio Code.app folder but ran out of meeting time. At home, I tried again; this time using the find command

% pwd
/Applications/Visual Studio Code.app/Contents
% find . -name code -print
./Resources/app/bin/code
./Resources/app/out/vs/code

Ok. Then. It’s under Contents/Resources/app./bin/code in side the app directory. I knew it was somewhere in there.

The Hard Way – Step 3: Add to PATH

If you are still on the old shell, add the following line to your <user home>/.bash_profile file. If you’ve switched to zsh, use the .zshrc file instead.

export PATH="$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code"

The Hard Way – Step 4: Reload the file

Run one of these to run the file you just edited and have your change take effect

source .bash_profile
source .zshrc

The Hard Way – Step 5: Launch VS Code

Run!

code