For someone who has never worked with MQTT before at all, course 1.4 guarantees a steep learning curve with lot's of new things to discover. After having gone through all of it and spending lot's of time playing around with mqtt device communication I can provide some feedback about this course in general, which I hope might be useful:
generally the course is very good and has led to many insights. I like the preselection of a public broker and the selection of mqtt_as and paho
It took me quite a while to figure out, that mqtt_as was supposed to run on the pi, while paho was used for the orchestrator. Perhaps a few more words of explanation would be good, even though it's so obvious, when you understand it
I had never even heard of asynchronous tasks in Python and it took me a while to figure out the idea behind it and how to use it. A bit more explanation about that would be great for newcomers, too.
Understanding the structure of the event loop on the pi, was a bit difficult. In the end I realised, that the purpose of main() was to create asynchronous tasks once and after that only keep the program running. Each of the created tasks itself has to have it's own forever loop to keep executing its task. This makes sense, when you get it, but understanding it can be challenging. Maybe a small graphic would make sense here.
Last, I have the feeling, that mqtt_as is a really great library. Maybe the usefulness of it could be pointed out a bit more. Also a quick overview of the most important methods in the course page itself might be a good thing. This way it's clear, that this piece of information is really relevant.
For someone who has never worked with MQTT before at all, course 1.4 guarantees a steep learning curve with lot's of new things to discover. After having gone through all of it and spending lot's of time playing around with mqtt device communication I can provide some feedback about this course in general, which I hope might be useful: