How can I create my own textures?

I’m not talking about applying them to models. No, before 3D. How can I actually create my own textures, like for example skin, snake scales, etc.

Yes I know there are free Librarys of Textures such as Textures.com but they can only take you so far.

I’m talking about creating textures that technically don’t exist in the real world for you to use or are just impossible to get. If I wanted to texture a snake, id have to get a camera up to a Snake’s body, and then try to make it seamless and paste it in, but It never looks good like that. Or if I wanted to texture a Dragon, how would I do it if there is nothing?

Are there any tutorials of any kind that teach you how to achieve results to something like this:

It doesn’t have to be that good, but damn I feel so useless when it comes to texturing my models, and I want to learn advance methods to do better quality work! But I just can’t find anything at all about it. Looks like some sort of secret hidden from everyone. Any kind of help would be great!

Or if I wanted to texture a Dragon, how would I do it if there is nothing?
Step 1 - use your imagination if you have one. Maybe you wnat your dragon to have scales that look like a snake or maybe real dragons are textured like a brick wall or maybe have stripes like a zebra.
Step 2 - go onto youtube and use their search function.

You need to do texture painting if you want results like that. You’ll also have to make your own brushes from textures or download them from somewhere.