[x^2 for x in lst]

Online course: AWS CloudFormation Master Class

2019-07-01

When I was preparing for the AWS Certified Solution Architect Associated exam I bought some online courses from a company called Udemy. After that I regularly get mails from them informing me about discounts (which they always have) and promoting their courses. I usually just discard these mails, but a couple of weeks ago I yielded to the temptation and bought one: AWS CloudFormation Masterclass. Link to the course here.

We use CloudFormation at work and some parts of this blog is setup using CloudFormation, but I've never really studied it, just googled a bit to solve the problem I faced just then so I thought it would be good to have a thorough going through of topic. The course costed just £10, so I bought it. As a gift form myself for it being Friday. Or something.

I've watched to course during the last two weeks, a little bit each day and finished this Friday. It's always a good feeling with something you have started :)

The course is divided into 12 chapters where each chapter contains a number of lectures. The lectures are short, most are less than six minutes, the longest being around 13 minutes. This is good as it lets you squeeze in one while doing something else, like building or deploying the stuff you're currently working on. It also tempts you to "just watch another, it's only three minutes...".

The course starts with the regular course introduction chapter. It explains why you should learn CloudFormation, what it is in general terms, and lets you download a package of example files that are used in the course.

The following chapters are dedicated to the top level elements contained in a CloudFormation template namely:

  • Resources
  • Parameters
  • Mappings
  • Conditions
  • Outputs
  • Metadata

Each chapter contains one or more theory sections in which the element of the chapter is described. Both its syntax, main usage areas and configuration possibilities are described. Almost all chapters have a companion code example that is included in the code example package that could be downloaded in chapter one. The example belonging to each chapter (some chapters have more than one example) are also described in the theory sections. This is a good thing as CloudFormation code could be quite terse.

Some of the sections of these chapters are practical lessons in which the teacher deploys different CloudFormation templates and shows the results using the AWS Console. The pupils are encouraged to try out the stuff that the theory sections has presented. These demonstrations are highly useful considering that the AWS Console can be quite...non-intuitive at times.

Each practical session ends with the advice "Do not forget to delete the stack that you've deployed otherwise it might be costly". Sound advise indeed.

After the chapters describing the main elements of a CloudFormation template, the course continues with chapters on CfnInit, CloudFormation drift and nested stacks before finishing off with a chapter on "advanced concepts". It turns out that these concepts are not really that advanced, the chapter just contain some (useful) stuff that did not fit into any of the previous chapters and where the topic was too small to warrant a chapter of its own. Some of the things handled in this chapter are: using the AWS CLI, using a deletion policy and getting an cost estimate for a CloudFormation template.

So, what are my impressions of the course? I think the course gives a brief but really useful overview of CloudFormation templates and the CloudFormation part of the AWS console. You cannot expect to be a CloudFormation expert after having finished this course, but you can expect to being able to start writing templates using the AWS documentation as support trusting that you have at least heard about most of the things in it. The course is presented in a easy-to-follow way and each section is, as previously mentioned, so short that you are able to squeeze one in while building your project (at least if your project is of a fair size ;) This means that you without much effort will be able to finish the course in a short time and after having done so will feel confident that you can start creating your own templates with a little help from the documentation.

I would recommend this course to anyone who is planning to start using CloudFormation templates or just having started to do so. If you have used CloudFormation for a while you probably can pick up a thing or two, but if you are an advanced user then you probably should look for some other course.

After having completed the course, you get a nicely looking certificate ;)

course certificate

Challenge: Python Algorithm Books

2019-07-30

Since I took the first programming course not focusing entirely on teaching the language in question, I've been interested in algorithms. Solving a problem in different ways and comparing the solutions and the execution times of them have always appealed to me. Sadly, my daily work does not include very much of such. This, both the interest and the lack of exposure at work, is, I'm sure, something that I'm sharing with a large percentage of working programmers.

Some time ago I bought the book Classic Computer Science Problems in Python. It describes some interesting computer science problems and algorithms for how to solve them. I then saw some books that I thought looked interesting at a Manning.com sales. One of them was Grokking Algorithms, which it an introductory book to algorithms with examples in Python.

Mostly to persuade myself that I should by by the book, I started to think about reading a number of Python algorithm books, write a short comparison about them them and publish that on the blog. I already have Python Algorithms by Magnus Lie Hetland, so if I bought Grokking Algorithms I would have three books on the topic. That could work.

Then I found a Algorithms and Data Structures in Action on the same Manning sales...so now I have four Python algorithm books.

Well, the code examples on Algorithms and Data Structures in Action is actually in pseudo code, but that's close enough to count as Python ;)

So what I'll do is the following:

  1. Read all four books (and try to do all exercises in them).
  2. Write the usual book review after having read each book.
  3. Write a comparison of them after I've read all four.
Simple enough.

I suspect it will take some time to accomplish the feat however. The exercises in the books may not be east to solve. Also, Algorithms and Data Structures in Action is in MEAP, so I won't be able to end my small blog entry series until that book is finished, which it is supposed to be in September 2020.

Another thing that I will try to do is not buying any more books until I'm finished with these ones (and of course the other ones that I'm reading right now (Python Workbook MEAP and Cloud Native Patterns)). This might be even harder than solving the exercises in the algorithm books... ;)