Introduction

Data Al Dente

Home | Posts | About Me

Created

Updated

Goal

Designing Data-Intensive Applications (DDIA) is often recommended as the single best resource for software engineers to increase their technical knowledge. This book will help readers design and build more complex systems. I personally love the book and agree that the ideas and principles taught within it are essential to understand and internalize. However, I’ve found that some people who read the book do not fully understand and internalize the key concepts from it and thus are unable to apply them to the actual systems they are designing and building. My goal with creating this interactive course for the book is to enable those who want to deeply understand the book to do so in a way that essentially guarantees that they can really internalize and apply the ideas from it. This course will go into more detail on how to use real-life systems than the book and will have more on interactive/hands-on exercises/labs.

Setup

This interactive course for the DDIA book has questions and labs based on the concepts taught in the book. I also provide flashcards for the questions and labs. I may provide video or audio resources at some future date as well. Note that you should not attempt this course without the book/ebook/etc. The following link lists multiple ways to buy the book in various forms: https://dataintensive.net/buy.html. I would suggest buying the print book and/or the ebook. The audiobook is excellent and I highly recommend using it as a review resource, but I don’t think most people would benefit from listening only to the audiobook instead of reading the book/ebook as the content of many chapters requires seeing it to learn it the first time. Please support Dr. Martin Kleppmman by purchasing the book legally and consider contributing to his Patreon as well!

Audience/Prereqs

This course is intended for software engineers, data engineers, distributed systems engineers, etc. who have some professional/industry knowledge/experience and have experience building web/network applications/services and are familiar with relational databases/SQL. To do the labs in this course, you’ll need to know basic shell usage, how to write and run Python programs, have basic understanding of Docker images, and write SQL queries. Most of the labs will use open-source software (OSS), but some will use cloud systems (e.g.: AWS), though I expect to have the cloud systems usage be low enough to be on the free-tier.

Note to self to update this section when I’m further along in the course and have a better idea of what people need to know beforehand.