Animated pixel wizard

My thoughts after completing the Google IT Automation Specialization

Sunday, July 4, 2021

tl;dr: The certificate

Taking up the mornings of the past weeks has been the Google IT Automation with Python Specialization offered by Coursera, being awarded a certificate of completion earlier today (July 4th 2021).

The specialization which consists of five courses + a final collection of labs to work through, each of the courses has graded work and quizlets which need to be passed in order to be awarded with a certificate.

The courses include:

  1. Course 1 - [Crash Course on Python]: Exactly as it says on the tin, exposes the user to the necessary Python syntax/semantics to hit the ground running.

  2. Course 2 - [Using Python to Interact with the Operating System]: A chunky course full to the brim with content. Starts with file management using Python, progressing into Regular Expressions, then moving into process management using Python, then testing before a final project tying all this new knowledge together, phew! This course covers a lot, all super-interesting stuff, and the capstone project at the end is a nice way of bringing it all together. Certainly a course you’ll want to re-tread to ensure the concepts are clear to you.

  3. Course 3 - [Introduction to Git and GitHub]: Seeing how 93%~1 of developers use Git according to the 2021 Developer Survey by Stack Overflow, it’s no wonder the usage of Git, and it’s biggest hosting counterpart GitHub (56+ Million users)2 feature in this Specialization. The course runs through usage of Git at the command line before using GitHub to host/manage repositories. Overall, a decent course which covers the Git command line workflow nicely (although it’s neat to use a dedicated GUI sometimes 🦑3).

  4. Course 4 - [Troubleshooting and Debugging Techniques]: Not much to say on this one, covers basic troubleshooting for programming, syntax vs logical errors. Has a nice emphasis on managing code written by others and the odd idiosyncrasies that come with that.

  5. Course 5 - [Configuration Management and the Cloud]: The course I was personally most excited for, which also happened to be quite a let-down. This course covers automation in the cloud using tools such as Puppet, fascinating stuff which unfortunately doesn’t get enough coverage in this course. This course also uses the Google Cloud Platform, which was fun to play with.

After completing the specialization, I feel that the course should have had a stronger focus on either: using Python for IT OR automation using Python as one of many tools available.

However, what is delivered seems to struggle to find a decent middle-ground between the automation side which feels severely lacking and the Python side which has a much stronger focus.

The inclusion of Git and troubleshooting techniques is nice but feels like they were added to the specialization to tick boxes rather than being expressly necessary for the subject.

A great deal of struggle with these courses came from Qwiklabs (the interactive labs used to grade your progress) environments being buggy at times or refusing a correct answer because it wasn’t exactly how the course designers wanted it down to exact formatting.

Similar to TTRPG (Table Top Role Playing Games) where the Game Master has designed a solution to a puzzle that is unclear to the players and will only accept the exact correct solution.

Frustrating but there is no penalty for having to restart a lab exercise and although the help section for the individual courses varies wildly in helpfulness there are solutions posted there if the lab gets stuck.

Overall the course was interesting and does give you a great deal of introductory information about how Python could be used in an automation context as well as a small taste of automation-at-scale tools like Puppet which may appear in another article very soon…4

An excerpt from the Specialization page on Coursera:

This program builds on your IT foundations to help you take your career to the next level. It’s designed to teach you how to program with Python and how to use Python to automate common system administration tasks. You’ll also learn to use Git and GitHub, troubleshoot and debug complex problems, and apply automation at scale by using configuration management and the Cloud.

From me to you.