How to generate a block header? good afternoon

I set myself a task to understand the work of the miner, but as you understand it is difficult for a beginner. Constantly there are questions.
Without conditionally, I turn to Google search and find the answers but not always.

Guys help sort out a few points

How to compose a block header?
I appeal to the instructions on such sites as:



I understand the headline is formed by the principle:
Version + prevhash + merkle_root + ntime + nbits + '00000000' +
'000000800000000000000000000000000000000000000000000000000000000000000000000080020000'

Where merkle_root should be in the reverse order of the byte and only it.
But other sources and sources give different examples of header formation. Someone does not translate merkle_root in the reverse order of a byte, but translates ntime and nbits

The question is how to properly form the header of the block and what incoming data should be specified in the reverse order of the byte. Most likely something I do not understand until the end and I hope for help.

And can someone tell me a good manual
check this:

https://en.bitcoin.it/wiki/Block_hashing_algorithm

How is a block header hash compared to the target (bits)?

[EDIT]
Also this Calculate hash of block header