As a self-taught programmer who started with watching YouTube videos for Roblox, I found it hard to know where to go or what to learn. The resources I could find were good at teaching me how to do X in a script, but I found zero resources that could also teach me how to:
Ask for help, whether it was because I didn’t know where to ask, or because I couldn’t deal the humiliation of asking a silly question
Use the tried and true tool for any and all programmers, Google
Deal with the intrusive thoughts telling me I can’t do it
So, almost two years after starting my journey, seeing that there are still very few resources on Roblox that can teach this to a beginner, I’d like to try my hand at making one that does!
While I think I have a shot at making a decent learning resource, I want it to be as good as it can possibly be, hence why I’m asking for your help!
As some goals, complete newbies who follow the resource should come away being able to:
Motivate themselves
Ask google and find their own resources
Ask the community for help
Use and understand the basics of scripting in luau: variables, functions, control flow, lexical scope, tables, etc.
Apply what they learned to make a simple game, and share it
Some questions I’m looking for answers to:
What topics do you think should be covered?
How do you think these skills should be taught to a beginner?
Got any useful analogies for explaining some concepts?
Got any interesting problems to solve that can teach useful skills?
What problems did you find with resources (such as devforum articles or YouTubers like AlvinBlox and TheDevKing) as a beginner?
As an added note, I’ll probably be implementing this as a video series on YouTube, but I’m definitely open to suggestions!
Everything that you can, start with Variables and Functions, and make your way up to OOP
Try explaining everything in detail, make it seem like a YouTube video, and show examples of code
IDK, like it’s different for everything, but a good way of explaining Variables is by saying something like:
“The dad of your dad of your dad is your grand-grandfather”
Or things like taht, and for Ancestrors/Descendants I would take the sample to a family tree
Well, try finding a problem in Studio and cover it, that’s the best way!
Well, that most of them were:
“Paste thsi in the script” and you’re done, explain everything in the script, otherwise another problem is that they can have bad practices, like using wait() instead of task.wait() or things like that
Good idea!
I’m also a self-taught ‘Programmer’ (still a newbie, but all I know is either self-taught or form the DevForum, but mainly self-thought) and I found those problems too, happy you could overcome them!
Returning, If Statements, else and elseif. Tables, Variables. Where printing is used for, functions. Events, GUI scripting. While true do (loops). Basically all the basics that are usefull
How do you think these skills should be taught to a beginner?
I think it’s the best thing to do a simple script like something that prints something out and explain it from there what it does. After that you will demonstrate it with like a part that speeds you up (with explaining .touched function) ect
Got any useful analogies for explaining some concepts?
a table is a bit like a datastore or where everything gets stored into. Such as weapons you can call their name, ammo and firerate.
Got any interesting problems to solve that can teach useful skills?
To make certain simple systems to make on our own and if we don’t understand it we will research it. So for each episode you should make us do something so as example. When you teach us about a function.touched, your gonna ask us to make a killpart or a speedup part or a part that makes you jump you very high. To basically gives us a challenge and that way we learn from the info we got taught
What problems did you find with resources (such as devforum articles or YouTubers like AlvinBlox and TheDevKing) as a beginner?
My problem was, they don’t give you a challenge or tell you what to practice after you learned as example a table or a function. They don’t give you a challenge to perform after u learned that info. It would be very good that after every scripting series episode you would ask us to a task (challenge) to improve our knowledge with that aswell
Good idea man! let me know when your starting the series. It would be a good addition to add challenges at the end of every video. With challenges I mean certain things we should make after being taught something that is related to it. So if we learn the function with touch, you ask us to make a killbrick in our free time. And if we can't do that we will research so we can. This makes it so the player gets additional info to learn with the certain topic!
Hello, I’m a beginner and If you are a great programmer you should teach everything that you know in your series. Like TheDevKing you can make Beginner and Advanced series. When I watch TheDevKing’s video I think he is very good at teaching. I started It. I can’t find good series but TheDevKing’s series are very good. You can teach like him.
slowly explaining the basics, start with the easy ones and then advance to the more complex ones, eg:
-- Variables lesson:
-- EASY LESSON #1
local MyNewPart = game.Workspace:FindFirstChild("MyLovelyPart") -- use joyful names, use findfirstchild so they get used to it, let them use uppercase letter for now, teach them instance children (rather than just workspace > game.Workspace)
-- HARD LESSON #1
local hum : Humanoid = char:FindFirstChildWhichIsA("Humanoid")
as @Dede_4242 said, use real life analogies such as your father, grandfather, grand grandfather etc… or just random explanations
eg: Raycasts are a line that starts at a certain Vector3 (Position) but then never ends, its length is infinite. It can be used to detect certain parts and Instances, such as the baseplate, your character, or even a large wall. To make it easier for you, imagine it like a sunray, a pretty good match, because they have the same properties.
make a mistake on purpose on your code/build, and then solve it, and ask the beginner if he noticed it before you solved it.
eg:
local Position : Vector3 = CFrame.new(0,2,0) -- hmm
Part.Position = Position + Vector3.new(0,3,0)
I got used to a bunch of stupid code mistakes, like using wait() rather than task.wait()
got used to CTRL + C and CTRL + V a lot (and when i say a lot, i mean “borrowing” thousands of lines of code)