Flux has taken some major strides in the past couple of years since it has been out. So this piece is to talk a little bit about what has changed.
Starting with a bit of housekeeping. This piece will introduce some basic guidelines to Julia programming and should hopefully help with your understanding of the language and using it with a few neat tricks. Another task is to clarify what Flux and its ecosystem isn't. It isn't a strictly deep learning library, although it does have most of the primitives for deep learning defined. It is essentially a framework for differentiable programming.
For a TL;DR, differentiable programming ($\partial$P) is a way of treating arbitrary programs as differentiable. Put it easily, it is a generalisation of the way we treat deep learning as consisting of a forward pass and a backwards pass. It applies the chain rule (refer the equation below) to every operatoin that takes place in a p