Last week I finished the last of the three required tests to become a Certified Chef Developer (and passed - woohoo!). I took it kind of slowly, and just made it a quarterly objective to either study for or take a test over the past six months. It was a great experience, and I know that the tests are a bit mysterious, so I wanted to try and demystify it for you. (Their FAQs are also helpful.)
My understanding of the badges is that you need three to get certified. The two required badges are Basic Chef Fluency and Local Cookbook Development, and then you have a choice between Extending Chef and Deploying Cookbooks. The InSpec badge is the wildcard. I don’t know what their plan is for that one yet, which is why I haven’t taken it. I will after I hear more about it.
Back when I took this test I told you that I had created a Github repo to house my study materials. I continued to add to it as I studied for the exams.
I found it really useful to go through the the PDFs that they created with the lists of topics that would be covered in the exams and just write out as much info as I could about that topic. Searching through docs.chef.io was the best bet for these topics, not only because that’s considered the source of truth, but also because it familiarizes you with where to find everything in the docs. This is particularly useful in the exam when you are allowed access to docs.chef.io and need to use your time wisely.
The badges I got
- Basic Chef Fluency
- Local Cookbook Development
- Deploying Cookbooks
Now, Chef has some really good study materials. I don’t know why, though, but they just didn’t jive for me for whatever reason. I would start on a Chef Rally lesson and then never finish. I think maybe for me they get a little too detailed with stuff that I don’t work with often really, and I get confused, then discouraged, then distracted. What does work for me is starting at a super elementary level and working my way up. Chef Rally does work for a lot of people, though, so give it a go and see if that’s you. It really is the best place to start because it’ll be the same wording and logic as the exams.
They have classes for the first two badges, and I didn’t have time to complete them, but they have a practice test and note cards that were nice.
Otherwise, I’ll share below what I did to prepare for each exam. Before I do that, I’ll share some notes about the exam experience that pertain to all three exams.
Notes about my Exam experience
There was not a visible timer, so if you don’t remember the exact time you started, then you have to chat with the proctor to ask how much time is left, which wastes time.
If your internet connection is interrupted (mine was 6 times for one exam), they will give you the lost time, however, this is not ideal, because it makes you frantic and you can’t go to the bathroom (it’s a problem).
You may not use the restroom or else you forfeit the remainder of your time (don’t ask how I know).
The setup may take a while since they have to scan your room and workspace, so plan accordingly.
The language of the questions is unnecessarily complicated. I had to reread some of them over and over only to find out it was a simple question with very confusing wording (exacerbated by nervousness).
BASIC CHEF FLUENCY
There are two basic components: a study sheet (cheat sheet) and a lab (kata).
Basic Chef Fluency Study Guide
When studying for the Basic Chef Fluency Badge exam, I studied this guide daily until I was very comfortable going through the material.
Basic Chef Fluency Kata
This is an exercise guide meant for daily use. At the time that I was studying for this exam, I was not using Chef in my daily practice, so I was a little rusty. Doing this kata, I was able to get comfortable with Chef enough for navigating the topics of the exam.
The idea is not to do the entire kata but to give yourself an allotted amount of time and start from the beginning each day. As you do this daily, you’ll get further and further each day because you’ll get faster and faster as you make those connections in your brain.
Basic Chef Fluency Kata Cheat Sheet
As I was going through the kata daily, I would make reminders of what I did to solve the problem. That helped me to solidify it in my head and also gave me a quick reminder when I needed it.
LOCAL COOKBOOK DEVELOPMENT
You can expect this 2 part exam to be tougher than the Basic Chef Fluency badge. It will be heavily focused on Test Kitchen, InSpec, and just basically creating cookbooks. So if you have healthy test-driven development practices with your cookbook development, then you will likely do just fine. If you don’t, then this test will expose that. And guess what, I have another study guide!
Local Cookbook Development Study Guide.
The study guide is just like with the Basic Fluency badge. Study them daily and have someone quiz you.
If you’ll notice for this badge, I don’t have a new kata. That’s because we just kept adding more to the Basic Chef Fluency kata so that it really covers all three badges. If you want, instead of starting at the beginning, you can pick up at Chef Server section and see how far you get daily (remember, this is meant to start from the beginning daily, as opposed to picking up where you left off daily).
Local Cookbook Development - Notes from Exam’s Lab
You have a choice for whether you want to take this on Windows or Linux. The first time I took this on Windows and failed. I was really shaky with:
How to install ‘IIS-WebServerRole’ Windows Feature
How to install Windows Registry Keys (recursive true)
How to create a file with content and create the recursive directories
The second time I took it on Linux and breezed through it.
The Windows lab will require that you make 10 InSpec tests pass with the recipe. The requirements are very Windows specific (see above for examples).
You can expect this 2 part exam to be tougher than the first two badges. This particular badge provides an alternative path to becoming Certified Chef Developer. The alternative is taking the Extending Chef exam, which is focused a lot on extending Chef’s capabilities, so creating OHAI plugins, custom resources, that type of stuff. Whereas, Deploying Cookbooks is focused primarily on what you do with the cookbook after it’s created, such as
knife stuff, Chef server stuff, environments, roles, etc. If you already have Basic Chef Fluency and Local Cookbook Development badges, then if you pass this badge you will become Certified. Yay!
Deploying Cookbooks Study Guide
This is the guide for this exam. As you can see, there are a few topics that are not filled in, and those are the topics I probably got wrong. (Feel free to create a pull request to add any info!)
If you’re rusty, I suggest going through the kata and starting at the Chef Server section and seeing how far you get daily.
Notes from Deploying Cookbooks Exam
Not being able to use dual-screens was a nuisance during the lab.
The first like 7 or so questions were nothing I encounter on a regular basis - lots of chef-solo. I had no clue. It felt like a disproportionate amount of questions, not a reflection of real-life use cases (to me, at least).
Using docs.chef.io was super awesome - much like real life.
It was not clear to me that I could click on the link to go directly to the chef server UI. I thought I had to configure the connection to chef server manually via the command line, which I’ve never done, so I spent a ton of time messing with that before I realized that I could go into the UI.
The lab was great once I figured that out. It was common, everyday stuff that everyone should know. If I had it my way, I would have done more of those questions and less of the first 10 multiple choice, which I feel like weren’t a reflection of my overall knowledge of Chef.
“But I’m just not good at taking tests”
That was me. I’ve never been good at multiple choice tests because I take too long second-guessing myself. Essay exams were always a breeze for me because I could explain what I knew, but I always felt multiple choice exams were always too harsh. Well, my very wise husband suggested that perhaps I wasn’t good at taking tests because I had never properly learned how to take a test, that perhaps I could create a game-plan for the test and see if I improved. Well, I did, and boy was he right. My anxiety went down, and I passed! Here’s what I did:
1) Opened up Atom and created a blank file to write notes.
2) Started the questions and went through the first 40 pacing myself at about 60 seconds per question (it’s a 90 minute exam).
Any time I got to a question I wasn’t super certain of, I’d type the question number in the blank Atom file to come back to it later.
If I knew exactly where the answer was in docs.chef.io and I knew I could find it quickly, then I would, but if it required digging, I typed the question number in Atom.
3) After the first pass at the multiple choice questions, I started and finished the lab.
4) Then I returned to my Atom file and began looking up all of the questions in docs.chef.io and answering them.
Honestly, this whole process has made me rethink my approach to studying and test-taking. I used to have huge test anxiety, but when I realized that it’s just a skill that can be developed just like any other skill, I felt in control again, like I could move the needle on this instead of just feeling sorry for myself. Learning new skills is very empowering.