To lend in on all the great points here, I find it is best to begin with basic lists of objects followed by get/adjust/set parameter values. The emphasis isn’t on working with lists here, but just that you can do one>many operations on a list of objects, or many>many across objects and their data - teaching the user the limitless economy of scale that programming offers. Show them both ‘select model element’ options, as well as a basic introduction to categories and ‘get all elements of category’ so that they can see both explicit and collecting methods of accessing objects in Revit. Usually people will be able to better see the value of Dynamo if it can be related immediately to tasks they waste time on currently, of which data entry is almost guaranteed to be one.
During the Covid days, my example was literally getting all rooms and their area, dividing it by 4, rounding it down and writing it back to the Occupancy parameter. That covered most basics quite well, whilst using a relatable design constraint.
I avoid geometry initially unless they have a background in geometry (e.g. Grasshopper user), computer science/graphics or advanced mathematics. Best that they discover this side of Dynamo over time, as it is difficult to directly relate back to Revit I think - geometry is often abstract in practical application (for example, numbering objects by spline). Be mindful to manage and quell expectations for Grasshopper users given that Dynamo is usually most powerfully applied as a data management tool initially versus a geometry environment for beginners - they can sometimes miss the point of Dynamo if their journey begins (and often ends) with geometry.
Whilst I don’t disallow the use of custom packages, I teach users to avoid installing ‘all the packages’, and pick one or two they can benefit from most. Data Shapes I hold off until they’re comfortable with Dynamo Player, as I find usually you can do a lot without complex UI’s as a beginner. Such beginner suitable packages I show users are Clockwork, Genius Loci, Rhythm and Crumple (mine). All of them have fairly clear and concise nodes that a beginner can grasp the use case for at face value. I make sure to reinforce to them that many custom nodes are shortcuts the user is best off learning step by step to undertake versus just looking for a custom node, so start with simple problems where custom nodes are not as necessary.
Once a beginner/user ‘gets’ the point of Dynamo and wants to learn properly, it’s back to basics. Dynamo Primer, and a focus on data types and list/index management followed by filtering and finally laces and the dreaded list levels.
Beyond those steps most users I find can begin to engage with the forums to troubleshoot, or find their way through Dynamo. By that point the average user is likely 3-6 months in already. Everyone is different, and some people will want a gentle hand to guide them whilst others will want to learn ‘all the stuff’ from anyone around them. Don’t hesitate to also encourage users to brush up on their Revit skills if they need this first, as usually the better you know Revit the better you will identify use cases for Dynamo (and appreciate Revit’s ‘can’t do that’ barriers).