Is writing unit tests a good way to start contributing to Bitcoin core? I'm considering writing unit tests to Bitcoin core as a first step to C++ development and Bitcoin contribution. Anyone have any suggestions about the journey I'm about to begin and possible files that are needing tests?
Jumping straight to writing unit test can be hard, I suggest You check the official github page for how to contribute to the bitcoin core:

https://github.com/bitcoin/bitcoin/blob/master/CONTRIBUTING.md

If I wanted to contribute I would personally start by trying to solve some of the problems on their issues page because it is fresh, there is a lot of work, some can be easy and help is always needed:

https://github.com/bitcoin/bitcoin/issues