Taking advantage of the
#FreeApril Pluralsight initiative, and considering I wanted to learn the fundamentals about BigQuery, I took the Data Analytics on Google Cloud path, which consists on four courses and in total 12-something hours of content.
Grabbed from the official page, a summarized description reads: "This path teaches how to derive insights through data analysis and visualization using the Google Cloud Platform. Feature interactive scenarios and hands-on labs where participants explore, mine, load, visualize, and extract insights from diverse Google BigQuery datasets. Cover data loading, querying, schema modeling, optimizing performance, query pricing, and data visualization.".
Exploring and Preparing your Data with BigQuery: Beginner course (4.5h) about SQL and BigQuery and some CloudDataPrep, which makes sense as data ingestion is the first step.
Creating New BigQuery Datasets and Visualizing Insights: Intermediate course (2.5h), heavily focused on BigQuery and data ingestion from external sources (online, and local files), SQL JOINs and UNIONs, and an introduction to Google Data Studio.
Achieving Advanced Insights with BigQuery: Advanced course (3.5h), now getting into advanced SQL and BigQuery features, including using arrays and structs to nest and unnest data, performance optimizations and an intro to Cloud Datalab (Google's Jupyter Notbook solution)
Applying Machine Learning to your Data with GCP: Advanced course (~3h), about how to do Machine Learning with BigQuery data, and inside BigQuery (this is the awesome part), by creating models, training and validating them.
The labs allow you to practice on your own, but you also get "fully guided" videos solving them, which is good for both cases of wanting to do them or preferring to just watch how they're done.
The courses are great, and my only complaint is that volume is not normalized among the videos, some are really low while others are fine, so you need to take care of the volume between them. Otherwise the production quality is very professional, you can clearly notice it is "official" Google built content.
Clean Architecture: Patterns, Practices, and Principles indeed talks about patterns, practices and principles of the aforementioned architecture paradigm, and hints at how to build maintainable and testeable software. The problem is that with a 2.5 hours course, half of which is a code example walkthrough, is impossible to go below the surface of most of the topics.
The example is a C# ASP.NET MVC 5 clean architecture application, is really easy to follow and is nicely explained. I liked this approach of half-slides, half-code for a change from other courses. Serves well to see specific implementations and not just theory. The author also mentions quite a few design patterns, some very briefly, others detailed. I liked the "screaming architecture" practice: organization of each layer of your system screams the intent of the application.
Topics are many but far from deep, so you should take that into account. Not saying it is bad, just warning that a 15 minutes lecture on microservices won't make you an expert building them ;)
UX-Driven Software Design consists of 3.5 hours about the methodology that gives name to the course, which basically is a top-down methodology based on emergent design, applying lean/agile practices. We will learn about the benefits of starting with mockups, wireframes and prototypes and why heavily iterating is a better approach than just delivering a version after long development cycles.
And when entering in the implementation details, it suggests using event sourcing, CQRS and bounded contexts.
You can consider this course as a kind of continuation of another from the same author, Domain Models CQRS and Event Sourcing, although this one is much more focused on examples, advices and high level rules. Still it provides many examples and a simple but clean TODO list code walkthrough (of the most relevant parts).
Microservices Architecture lasts for 2.5 hours, and its contents are really good as a general summary of microservices design patterns, good practices, pitfalls and problems to avoid, and some techniques for approaching both greenfield projects and introducing microservices in existing platforms. The slides and diagrams are very clean and direct to the point. The language used is mostly technology agnostic, with a slight tendency towards Microsoft technologies, but everyone will understand the examples.
My only complaint is that the author is clearly reading a script and the cadence is many times artificial, too continuous, either without pauses or with them when the author needs to breathe instead of when stops should go. That said I could still follow the speech ok and the English is well spoken, but sounds weird when changing slides or topics.
Modern Software Architecture: Domain Models, CQRS, and Event Sourcing is a 4.5 hours course about Domain-Driven Design (DDD) fundamentals, Command Query Responsibility Segregation (CQRS) and Event Sourcing, plus introductions to Event Storming and UX-Driven Design (Top-Down Design instead of the classic Bottom-Up).
I really liked the content and everything is very well explained, with simple diagrams and examples. Code examples are C#, which shouldn't be a problem as it's a clean easily readable language and the examples are uncluttered and direct to the point. What you should be aware of is that "spoken examples" are also mainly focused on .NET, so if you haven't worked with that stack you might not know what frameworks like LINQ or Entity Framework are. Nothing terrible, and some examples are language-agnostic, but the majority are focused for .NET developers/architects.
Recommended for anyone wanting to learn some basic DDD concepts.