Should a beginner in ML use libraries like TF and Keras? As a beginner in ML field, should I in beginning implement various algorithms from scratch (using only NumPy for example) and then start using ML libraries like TensorFlow, Keras or vice-versa? For example, I implemented multilayer feed-forward neural network in Python using only NumPy but it took me few weeks to understand NNs at the level that I can implement them from scratch, would it be better that I spent that time to cover theory less thoroughly and use libraries to make more advanced models easily?
Start of by reading up on math/theory. For neural networks I can really recommend Michael Jensens free online book. All along he gives good python examples using only numpy. 
For DNNs, TF and Keras are IMO the easiest approach. For linear models, scikit learn would probably cover most.