>>1930I'd recommend just following
>>1932 but if you are serious, and want to get into building an actual Monero miner. I'd recommend you start by understanding RandomX first
>https://github.com/tevador/RandomX/blob/master/doc/design.md>https://github.com/tevador/RandomX/blob/master/doc/specs.mdAnd then probably shift through the source code of xmrig. And you probably better start learning some assembly as well if you want to have some actual performance. Plus just as an extra you will have to interact with the monero daemon through RPC to get the block template/current difficulty/publish the mined block etc.
If you just want to code something with Monero, I'd either recommend helping with existing projects (especially payment gateways and off/onramps, and DEXes), writing some wallet implementation. If you wanna get more advanced, add support for normally unsupported/officially unsupported features, like tx_extra, manual ring member editing, UTXO management/coin control, polyseed, i2p node support, remote node rotation, multisig, TxTangle, weird proofs like UnspentProof/ReserveProof/SubaddressProof.
For the last ones and in general for the cryptographic aspects of Monero. I highly recommend you read Zero to Monero v2
>https://web.getmonero.org/library/Zero-to-Monero-2-0-0.pdf