You have to start by learning how Proof of Work works, what is mined and how it is changed on each failed hash and what it is compared to (the target).
https://en.bitcoin.it/wiki/Proof_of_workhttps://en.bitcoin.it/wiki/TargetThen you have to learn the commands that are available in the full node you are running (eg. JSON RPC of bitcoin core) and how to use them.
https://developer.bitcoin.org/reference/rpc/Next is learning how SHA256 algorithm works and how the algorithm itself can be optimized to compute double hash of headers in fastest way possible and then write the code to run it on GPUs.
https://en.wikipedia.org/wiki/SHA-2There is a ton of wiki articles on each part that you can search on google and study.
Finally you can search on Github for similar projects written many years ago and with the knowledge you already acquired you can learn how those projects work and improve your own work.
After you did your initial research, if you had any problem with a specific part, feel free to ask.