Here is a friendly, detailed explanation from a software engineer's perspective on how this can be useful and how to get started