TensorFlow is a high-level library while Keras is a python library that wraps lower level TensorFlow functionalities in simpler to use high-level APIs. So, if you want to focus on learning higher level APIs, Keras will serve you well. On the other hand, if you want to focus on learning the TensorFlow ecosystem and it's lower-level details then you should use TensorFlow directly. TensorFlow documentation is quite well written with lots of examples and the google engineers behind TensorFlow are very active on boards. TensorFlow also has a great community of contributors and has achieved a very high level of bug-free-ness.