Here’s some suggestions that I have (a lot of which aren’t specifically things that a programmer can just study up on, but are more qualitative concepts that I believe really set apart really advanced programmers from less advanced programmers):
Modular code + single-script architecture. It’s not as simple as just “modules”, which is why I think it bears mention. Assuming that most programmers are starting off with multi-script architecture and going from there - it really pays to learn modular code/single-script architecture in a thorough way so that people can determine when to use it and when not to. Ex: when setting up a whole game from scratch, single-script architecture is probably a good idea; when making a plug-and-play commission for someone, something modular but not framework limited is probably best, etc.
Advanced internal infrastructure design (for lack of a better term): basically, creating very complex (not necessarily complicated) logic structures in a way that’s maintainable, manageable, performant, powerful, and clear. Even if this requires writing up some real documentation, there’s a lot of really cool ideas that can be articulated without actually employing crazy complicated math, logic, or engine operation, but still do require complex under-the-hood code
Real teamwork amongst programmers. A lot of people (non-programmers and programmers alike) mistake how difficult it is for a team of programmers to work together. Programming (in a team) is a team sport - it requires clear and very specific delineation of roles, methodology, approach, end-state, etc. It’s not as simple as “you make this and I make this”, especially if the game is trying to build a solid framework and do neat things. The best analogy I can think of is playing baseball: a sport that is very much defined by roles. Baseball doesn’t work if you just pluck arbitrary players on the field and tell them to get going. It (and programming) require planning, shared understandings of what everyone is aiming for, and teamplay (your code should set other developers up for success [whether that is operability, maintainability, clarity, versatility, etc.], not just function in a vacuum).
Animations! Hey, I said these were qualitative concepts, but Roblox’s animation system (not UI) is wonky enough that maybe it qualifies! Still, I think it’s worth noting that properly managing animation play in a clean way that checks all the boxes (clear, versatile, functional, efficient, maintainable, etc.) is one of the trickier things to get ‘right’ here