I just now realized that your post wasn’t just idle speculation, but that you have skin in this game in the form of tutorials you authored. Therefore the question perhaps merits some more thought. So, allow me to re-phrase your question so it better fits my narrative
– “How important is adhering to best practice and coding standards when writing tutorials?”.
IMHO, the most important questions are “who is your target audience?”, which defines their expected level of expertise, and “what is it you wish to teach?” - obviously, a tutorial on how to tweak a BSP search using a massively parallel processor architecture will assume a lot knowledge on your part, and perhaps use some unconventional exploits that are not within the realm of best practice.
Example: an eon ago when I was speed-optimizing assembly code to draw pixels on-screen, my senior programmer taught me to use add twice instead of shifting left because the add operation was eight times faster than a shift. Obviously, using add instead of shift makes the program more difficult to read, and is far removed from best practice.
So, who is your audience, and what do you want to teach? I think that if your aim is to teach programming, best coding practice is paramount. If, on the other hand, your goal is to teach Unity, you should be able to get away with anything that eases getting your points across (i.e. the particulars of Unity). Usually, these are things like integrationg animator controllers, magic methods, getting access to components, co-routines or callbacks/delegates – the nuts and bolts of Unity, not the underlying scripting language. So any discussion of language-specific keywords such as private, protected, readonly, public etc should be out of scope in a Unity-Tutorial, with the possible exception of explaining the design and workings of singletons in conjunction with scene loading.
So how about SerializeField? That’s a Unity particular as well. personally, I cringe every time I see it being used in a Beginner’s Tutorial. That’s because obviously, it’s a cludge. Dead giveaway: it’s name. It describes what it does, not what it is for. It’s a deeply technical work-around for a particular Unity-specific feature of Editor. Serialization itself is not a Beginner’s topic, and why get into that without real need? You’d be wasting your and your student’s energy on off-topic minutiae. It’s much easier to note that ‘for now, simply declare ary variable you want to access in editor as public’. Yes, it may not be best coding practice. But it will help focus on the important stuff. I feel even more strongly about the use of setters and getters in Tutorials. Personally, I feel you should only use them if there is no way around them (hint: there always is). They are the bane of every tutorial because they implicitly cause execution of code, something that should never happen in a tutorial (as opposed to ‘real’ code, where it’s fair game). And yet I’ve seen so many Tutorials where the authors unthinkingly distract from the object of their lessons with these unneccessarily difficult (for beginners) constructs.
tl;dr: I’d focus on the lesson at hand. SerializeField will distract from that lesson if the student doesn’t yet know it, and that knowledge itself is non-essential. It’s fine to use when covering more advanced topics, when you can assume familiarity with Serialization or Editor particulars. When teaching a Unity Beginner, it should be off-topic and avoided even if it breaks coding best practices.
If you try to write a tutorial that teaches coding C# using Unity, you are on your own 