Don’t give up, OP. It can be very rewarding to know how basic things in the C standard library such as printf() work, at a lower level.

The hardest concept when I first learned C, so many many years ago, was pointers. But understanding memory access at the low level opens up insights into computer architecture in a very powerful manner.

Sadly computers these days are very, very complex and modern operating systems and ‘frameworks’ abstract away the inner workings to such a high level that it can be hard to understand. If you really want to learn the fundamentals it might actually be a good (and fun!) exercise to work on a small microcontroller project (such as the Atmel AVR series) or an 8 or 16-bit retro system. If you don’t have real hardware it can be done via emulation.

Just my opinion, but: don’t study x86 CPU architecture until you’ve looked at others like the 6502, z80 or 68000, or I suppose ARM). Though, they’ll probably ruin you for x86 since it’s the ugliest and most confusing of the bunch, yet ironically won the “CPU wars” years ago.