Hey Programmers, what concepts and or methods do you think other programmers should learn that are more advanced in concept?

Hey programmers! I’m another programmer here on the platform who wants to learn more programming concepts so that I can gain more knowledge to make some more complex things, work on my game and increase development workflow, and to take on to what looks like to me, challenging commissions to improve my skill even further.

What counts as an advanced concept and or method? It can be anything, as long as it’s something that most programmers don’t really know about, and is something that many programmers shouldn’t already know, like the tween service and remote functions and events. Examples of more advanced concepts can possibly be but not limited to,

If you’ve got any videos or tutorials to show that relate to the topic, feel free to throw them down below in the comment section.

People fr need to learn what “Help and Feedback” means.

1 Like

Sorry for disappointing you, I just though It would be a bit more fitting here. Made more sence to me on paper.

I know what the cagtegory is, if you look at my profile I’ve been here for over a year.

And also, it would be a bit more neat if you would be more informative and tell me why it should be their rather than development discussion instead of posting a complaint.

“Hey Programmers” doesn’t relate to a development discussion, it relates to a scripting discussion. You’re also looking for help/feedback. The development discussions is for discussion, not help. On paper this looks by no means that it would go into development discussion.

Edit: ty for moving it

1 Like

This isn’t a good question to ask, especially considering that you should be learning at your own pace. Don’t stress it if takes 2+ years like myself.

I’m just wondering what concepts and methods I should learn In the future and now, considering I don’t know what I should go and start learning yet.

Definitely CFrames. I am not good at that, and I always want to learn more but I am just too dumb. Here are some tutorials to help: What Is CFrame? | Roblox CFrame Tutorial | LookVector, Angles & More! - YouTube
Here’s another tutorial: Advanced Roblox Scripting Tutorial #7 - CFrame (Beginner to Pro 2019) - YouTube

3 Likes

Not a lot of people have the proper knowledge for CFrame (Me included) as they can get advanced pretty quickly, It can quickly become Advanced Trigonometry with math.sin, math.cos, and math.tan, as well as its inverse’s, and Hyperbolic functions,

You can also go on about ToObjectSpace, ToWorldSpace, Inverse, and Lerp on about how they work.

These are somethings that young developers are unlikely to know.

1 Like

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

1 Like

Here’s one:

Object-Oriented Programming (aka OOP)

I consider it an advanced concept. Here are some tutorials for it:

5 Likes

Knowing “advanced” syntax doesn’t make you a better programmer.

There’s a distinct difference between someone who can program and someone who can code:

  • Programming involves considering a problem and applying a solution that accounts for constraints and pragmatics of both use and execution.
  • Coding involves solving a problem.

An example:

I’m making a door on ROBLOX that changes transparency when you click. I could bolster it with fancy syntax to improve performance:

module.apply_detector(door : Instance)

    -- In case either were deleted after the function call, guard clause
    if not door or not door:FindFirstChildOfClass("ClickDetector") then return end
    door:FindFirstChildOfClass("ClickDetector").MouseClick:Connect(function()

        -- Fancy Lua (!Luau) ternary operator syntax
        -- Saves a whopping 33% runtime thanks to short ciruit evaluation
        door.Transparency = (door.Transparency == 0) and 1 or 0
        door.CanCollide = (door.Transparency == 0) and true or false
    end)
end

module.get_doors(dir : Instance, name : string)
    for k : number, v : Instance in pairs(dir:GetDescendants())

        -- Just in case I added a typo of dOor or DoOr or dOOr or dooR etc...
        -- Also make sure v is an Instance, for no apparent reason, and that it has a ClickDetector object
        if string.lower(v.Name) == string.lower(name) and v:IsA("Instance") and v:FindFirstChildOfClass("ClickDetector") then
            module.apply_detector(v)
        end
    end
end

module.get_doors(game.Workspace)

That example accounts for various commented issues. It also includes syntax to outperform other code.

It’s also less readable, and doesn’t need to be as bulky as it is:

for k, v in pairs(game.Workspace:GetDescendants()) do
    if v.Name == "door" and v:FindFirstChildOfClass("ClickDetector") then
        v:FindFirstChildOfClass("ClickDetector").MouseClick:Connect(function()
            if v.Transparency == 1 then
                v.Transparency = 0; v.CanCollide = true
            else
                v.Transparency = 1; v.CanCollide = false
            end
       end)
    end
end

Arguably, the latter is easier to read.

You don’t need to know advanced concepts to be a good developer. You need to know when advanced concepts are applicable and needed in order to be a good developer.

1 Like

The first video is fine and all, but the second one has little to no explanation for what’s being written in the script. It’s like there just reading off another script.

OOP, CFrame, How to properly handle datastores, memory leaks

1 Like

OOP lua it is really helpful for big projects and repeating scripts!

My bad, I replaced it with a better tutorial.

1 Like

I think the most important advanced concept for a programmer to learn is how to write better code.
How to do this?

Learn a new programming language
Learn a new framework
Learn a new library
Learn a new design pattern
Learn a new code editor
Learn a new IDE
Write a new type of application
Read more code by others
Read more books
Take a class

You don’t need to learn all of these. You can choose a couple and take them to the next level. The most important thing is to get more perspective so that you can see how others do things and why they do it that way.
And then bring it back to your Roblox projects and see how you can make them better as well.

1 Like