It would be pretty much difficult for you to read the code if you don't have any knowledge on cryptography and how data structures work. Though cryptography is the one which secures the blockchain you need to understand the concepts of data structures and must have a deep understanding of either one of the popular programming languages like JAVA, Python or C++.
Right now, I'm actually reading the original white paper and it seems too technical for me, as I am not too exposed into cryptography.
The whitepaper written by satoshi would be much more technical for normal readers who has just read the cryptography as a university subject. You could start with
Mastering Bitcoin by Andreas where he delves into the code base more slowly and explains cryptography in a more newbie friendly manner. Once you have finished Mastering Bitcoin, read through the Developer Documentation in bitcoin.org website which might be more understandable after that. I assume, if you right away start with Developer Documentation it would be difficult for you to understand the code.
If you have read the Developer Documentation, it is more than enough for you to easily understand the code and help the developers with testing and code review. The bitcoin code base has changed a lot and is more complex than it was during the initial days. You need to compile the code and run through them to have a better understanding on how the flow works in real time.
how BTC creates Bitcoins in code-level.
Here is the code which generates new coins and they are present in the validation.cpp
CAmount GetBlockSubsidy(int nHeight, const Consensus::Params& consensusParams)
{
int halvings = nHeight / consensusParams.nSubsidyHalvingInterval;
// Force block reward to zero when right shift is undefined.
if (halvings >= 64)
return 0;
CAmount nSubsidy = 50 * COIN;
// Subsidy is cut in half every 210,000 blocks which will occur approximately every 4 years.
nSubsidy >>= halvings;
return nSubsidy;
}