I would start with implementing the most basic functions that are super easy or are simply required (almost) everywhere else.
Then you implement the first function that will actually allow you to do something (e.g. the constructor to create a new empty tree). You then test that functionality, see if it works, see if all variables are set how they should be.
Then you make the next most fundamental function, which would be the insert.
You don't make the entire insert at once, you only want to focus on a single part of it. Then test it with inputs that will always trigger only that part of the code. See if it works as expected. Then test it with inputs that would trigger other parts of the code and observe if it expectedly fails.
Then you go to the next part of that insert function. And so on and so on.
The key is testing. Testing, testing and testing.
Every single change you make to your code you'll need to test with inputs that will trigger that code, then observe if it worked as expected.
As time goes on you'll get a better understanding for how everything works which enables you to judge if a certain thing needs to be tested or not, but as a beginner for the first few weeks you'll want to radically test everything.