The Bitcoin Developer Documentation is gold: https://bitcoin.org/en/developer-documentation
Start by defining your basic objects, and then begin adding their methods, just like you would any sort of program. The basic objects here are the Blockchain, Transactions, and a Client to interact with the chain. The rest is just implementing rules for how these objects work together.
Actually, I found a copy here: https://pastebin.com/ZSM7iHZw
It's public domain, and it may help you figure things out (it did for me).
The main hurdle is understanding the message types: https://en.bitcoin.it/wiki/Protocol_documentation#Message_ty...
Once you understand these, it's pretty much all serializing, deserializing, validating, and passing these around over TCP/IP sockets. And then building the chain. And then adding wallet functions.
It's been a while since I've done this so now I'm thinking of building another one in some new language.