This Discussion has a Flawed Assumption
... which is the assumption that everyone learns and processes things the same way. This assumption is wrong, and trying to create a "one-size-fits-all" answer is silly.
I never had to learn how to code. All I needed was documentation on what the language's commands were, what their syntax was, and how they worked. It was obvious. My computer language-learning path was BASIC, FORTRAN, Pascal, assemblers, C, COBOL, ALGOL-60, SNOBOL, etc. However ... In high school I took a class where we learned BASIC. The final test had a last, optional question which would not affect your grade in any way. It was an English-language simulation of an assembler program ("If A is less than ten, go to step #29", etc.). I failed that question hard. I kept getting "lost" in the paths I was tracing, then started again from the beginning, until test-time ran out.
Yet, in uni, I had little problem with any of the assembly languages I learned, but my learning/writing approach to each varied. For the Motorola 6800 (four digits, not five), while I was composing, I'd frequently would say to myself, "I want to do x, and I think there's an instruction which probably does this." Then I'd flip through Motorola's excellently-written M6800 Programming Reference Manual, which showed each instruction, and what it did, completely and concisely, on a single page. If I didn't find exactly what I needed, I'd see something which would catch my eye, and, in combination with some other instructions, would do what I wanted. I used the same method with HP-82 assembler, with 8080 assembler, and with PDP-8 assembler. I did not do that with Z-80 assembler or PDP-11 assembler -- there were too many opcodes, so the docs were too long for that method. Instead, I learned the general pattern of the instructions, wrote my code, then checked each unique instruction against the docs to ensure I hadn't used non-existant machine instructions or addressing modes -- which I sometimes had done, and had had to revise.
Debugging I did via desk-checking (the human emulates the computer) and looking at debugging-only PRINT statements in the code. Yet, when a colleague came to me asking for help with his Java program -- I do not know Java -- I looked at the page for a moment, pointed to a line with ">"s and the keyword "cout", and asked him how that worked. He began explaining, then got a funny look on his face, and said, "Oh. Okay, I've got it now. Thanks!" How did I do that? I don't know.
I don't see how fake-AI/chatbot/ML/whatever would have helped me. Your mileage will vary from mine, and the best learning methods and/or computer-based assistance (if any) for you also will vary. One size does not fit all.