Some jobs offer a full-time training program at the beginning, and some training programs offer a job guarantee at the end.
Often all you need for those is just enough programming experience to be confident that you like it long-term. So you could probably apply right now.
Other beginner jobs require a relevant degree of equivalent. It's hard to tell when you're ready for those if you're going by self-study (hard for me and for recruiters). It also depends on how pressed for developers the companies in your area are.
Not much to lose by applying though, other than some time, which will be educative.
To personally get some feeling of how you compare to others, try to not program too much in isolation. Read some code or libraries made by others. See if you can 1) understand what's going on and 2) if you'd have been able to come up with that. No need to be 100% on either, but it gives an idea.
You could also post a piece of your more complex code somewhere to ask for feedback. codereview.stackexchange.com is made for that although I don't know how beginner friendly it is. On here is very friendly which is nice, but also bad if you want your code to be criticized.
Finally note that 'tinkering' is a great way to get started and a useful skill at all levels, but it's often not enough to be productive working on a big project. There's more thought-out design, there's conventions and best practises to follow, quickly understanding code by other people, teamwork... Of course you'll also learn in your first months, no need to be an expert initially.