The questions in my upcoming Lua proficiency test are organized in different sections, and I am currently working on the “general” section. This section tests the users ability to read and understand the general logic of Lua. It does not include specialized topics such as MarketplaceService, data stores, ContextActionService, string manipulation, etc.
So, what topics should I include in the “general” set of questions? Here is what I have so far.
I think that general topics wouldn’t be the best way to test proficiency because knowing how to use functions or strings doesn’t necessarily mean you know how to implement it into a game. In my opinion, the best way to test someone would be to give a scenario and see how they respond to the scenario with code.
Example
Given a part and all of the part’s properties, how would I spawn a part and make the spawned part orbit the given part at a speed of 1 full rotation per 15 seconds?
Being a good game developer and being a good scripter are differant things.
I would consider myself highly proficient in programming (I have a degree, mid-level software engineering job, 5+ years of experience) but I’m not nearly as good at game execution as some other developers that might not have as high level of scripting proficiency.
Game execution involves project management, game/systems architecture, and other skills that I wouldn’t consider part of vanilla scripting ability.
As for the OP, I would recommend basing your curriculum off of the official Lua guide: Programming in Lua : 1
Its interesting from the list of topics, some are extremely broad, while some are very specific/would go underneath a different topic (ex: spawn() and functions)
I actually learned about spawn() this year, and I would call myself very proficient at lua/logic! So its interesting you went for the wide-range definition route of things.
Here’s more ideas running on the definition-style of topics in that case.
-local, global
-children, parent hierarchy
-property scope (inheritance, ex: BaseParts)
-datatypes
-dictionaries
Some people are adding algorithmic questions. I like this one:
You get an array filled with integers as input and also the same array but with one element removed. In linear time find the value of the integer that was removed.
This will tell you if they know what linear time is and generally - algorithm complexity.