Listen, in industry programming (and for personal projects if you want to get them done), the thief is the way to go. By all means, challenge yourself to understand each of these functions, but 99% of day to day development will not look like this.
How much time have you spent doing it? What part didn't you understand? If it's the bit shifting stuff, don't worry about it - hardly anyone actually knows how that works unless they look it up.
About a year with varying levels of commitment and intensity.
I kind of just threw myself into the deep end. Which was a rewarding but frustrating experience. My first project was one hot encoding 400gb of reddit porn to try and teach stylegan3 how to make porn. And then turning the function on in stylegan3. And then there was validating the images and ditching the ones that erroted. Resizing the whole datasets. Using ffmpeg to extract stills from the gifs and mp3s
I found stable diffusion existed like 5 days into actually training it which was bitter sweet. I mean. No way it would have produced actual porn but I was really looking forward to the horror.
I taught myself as I went along which is a great way to learn but it's super disheartening when I see the math that's second nature to anyone whose studied this stuff academically.. I don't like math. In fact I hate it, and no matter how skilled (or not) a coder I become I'll never learn calculus sometimes makes it all feel like a fools errand.
I also hate math, and am jealous of people who are good at it. I get anxiety just doing simple multiplications, and have to look everything up. That said, I'm a senior platform developer, and earn more than anyone else in my family, so like... math helps a lot, but you don't neeed it to be a real dev. Certainly not to be a hobbyist/hacker, like yourself.