I learned scripting for around 3 months and I always had this problem:
When I learned something new, I was able to understand the topic and how it works.
The issue here is that I never really knew when to apply something and where.
If I searched after a Script I wanted e.g. inventory Script, I understood every line of Code but, as I said, never knew when to apply.
I could describe it like following:
I learned “A” and “B” and its basics and so on but I wasn’t able to create “C” although I Just needed “A” and “B”
When you’re scripting to understand what you must do you first need to think to the script in general and then think on each single line. For example as a person you would think “if that person’s name is…then”, well you just need to translate it to Luau which is if player.Name == "Name" then
When I was first learning, I also struggled with something similar. Try to map out a plan for what you’re scripting. What you would need to start with, what sort of communications you would be doing between client/server etc. This helps you gather your thoughts before programming so everything is done chronologically.
That’s more the psuedocode side of it, however in reality I believe what you’re trying to say is that what they need to learn is about the logic and steps to creating a program, rather than the knowledge of what’s in a program. You can know that a^2 + b^2 = c^2 (pythagoras), but if you don’t know what it means then it’s essentially worthless to you.
Programming languages tend to be pretty simple in the sense that if you understand what you want and how you’re going to achieve it you can find said things required online. For example, if you want to run an event when the player talks you’ll use a chatted event.
Over time you’ll learn more about paradigms and better programming styles, but this takes time.