Not to exacerbate these feelings, but I live and breathe code. If I want to have fun, I write code. If I need to calm down or meditate, I write code. Coding is something I’ve been doing since I was a little kid, and I am definitely an extreme edge case.
It’s absolutely not a “natural talent”, though. It has taken an incredibly large amount of determination. I have definitely spent many years where you’re at right now. It’s not something you can just implement immediately. You have to slowly and gradually add tiny organizational things over time. If you try to use a whole organizing technique all in one go, you’ll get overwhelmed, and suddenly lose the energy needed to work on your project. If you forget to do a few small organizational things, you need to forgive yourself and keep going.
Organization is something that I’ve made a habit of doing in waves. I program a section really rough to get it functional, and then I do a minor cleaning pass. Then, after a few sections, I spend a day or two doing a larger-scale reorganizing and refactoring process on the whole program so far. Then I move onto the next new section, rinse and repeat.
(Now, I do have ADHD, so I can’t say every aspect of my life is so neat.)
Bughunting and bugfixing feels like I’m a detective investigating a crime scene or something, lol.
I’ve seen some YouTubers who get savant levels of complexity and performance out of their code, but it’s organized like it suffered atmospheric re-entry. However, they know their code inside-and-out, so the project still works.
My problem is I enter a sort of trance-like state when coding, so I need to prepare stuff for future-me to read. I can bugfix in my head while I’m doing dishes or playing Deep Rock Galactic, but I can only contain a couple sections of code in my head at a time, and eventually I’ll forget what the rest of the program looks like. When that happens, I want to give myself an easier time refreshing my awareness, and not overwhelm future-me, lol.