How should a software engineer with no machine learning background get started on the subject? Do you think that getting started by learning a framework like TensorFlow is a good idea or should I gain a background knowledge first?