New tag - no-yt
Diabolical5777 opened this issue · 3 comments
Description:
The tag informs why YouTube or any tutorials are not good to be followed.
Motivation:
There are a lot of users asking for help on code that they were spoonfeeded or simply do not understand and I think this is a good way to tell them to stop and try and understand since all information you want about making a command can be found in docs.
Tag content: (can of course be shortened since this is fairly long)
Tutorials are fundamentally flawed in concept when it comes to teaching you something like a programming language. The simple reason for this is a programming language is how you create whatever you want, a tutorial is something that teaches you how to do what the tutorial is teaching.
I recommend reading through all of these points if you want to understand why
A couple of points against tutorials...especially video tutorials:
- Tutorials teach you how to create a project, a specific program, a specific script, etc. This causes many many people to only know how to do this one specific thing.
- A programming language is an entire language itself, this is obvious in of itself but for this point think of this compared to a real language...people have accents, there's multiple ways to say the same thing, there's multiple pronunciations for some words. This same kind of concept applies to programming languages, there are many ways to achieve the same thing, there are code styles which people pick up from learning. Sometimes...these practices can be bad and if you're just learning, how would you know if the tutorial is using some bad practice? Trust me...this happens a lot
- Tutorials are made for that specific version of whatever it's using...whether this be python, the discord.py library, some other library it's using...etc. As time goes on that can very quickly become outdated
- Sometimes there are "advanced" or hard concepts that are covered in a tutorial, you're not guaranteed to understand all of it right off the bat. It is extremely hard to provide the relevant documentation for every single concept covered....there would be so much.
- Specifically for this library, the people who look for tutorials are typically new to the language...this library is not meant for beginners, there are some advanced concepts (example asyncio) that are covered, and jumping straight into that as a beginner is very bad.
I have to strongly disagree on this one. I don't see it helpful in any way to say "hey, the way you prefer to learn is not good". I see this as injecting a personal opinion on tutorials/videos and passing it off as canonically accepted. At worst, it's a harmful opinion. In terms of benefits, I don't see this being as constructive in any way. I believe content of specific tutorials or other works, if to be addressed, must be addressed on a case-by-case basis.
Instead, we should encourage use of resources we have vetted and recommended to the community. If there's something they shouldn't be using, it's not productive to just say "don't use that" -- instead, suggest to them what they should use instead.
Points against this:
- Different people learn best in different ways. This is well-established in cognitive psychology. Sometimes people prefer books/blogs/documentation, other times it's in-person lectures, sometimes videos, sometimes hands-on projects, sometimes one-on-one help. We should not discourage the medium just because that particular medium doesn't work best for a specific person.
- You can't make broad judgements of tutorials/videos in general. There are many high-quality tutorials, even video tutorials out there. We should not generally discourage them all. There are many low-quality books, blogs, and other resources, but that doesn't mean books and blogs are all bad and should be discouraged. Many popular libraries (and even Python itself) provide canonical tutorials which are intended for newcomers to the library.
- We should not be discouraging beginners from working with discord.py or any other library/framework just because they are beginners. People should be welcome to seek help in reaching their goals, no matter how high their goals are or where their skills currently lie. We can make judgements on perceived skill level and provide guidance in suggesting that there are other topics which must first be understood to reach their stated goals and help them with those intermediate topics, but we should not exclude beginners from particular topics or discourage them from learning about them through tutorials, videos, or otherwise.
Different learners will have different capabilities. This can sometimes be tricky for helpers to navigate. It's something that's come up in our staff meetings before. But at the end of the day, we should help beginners all the same and help them with resources we have at-hand.
Last thought on this... Tutorials are an essential component of learning how to use a project. Alone they're not intended to be the only thing a person needs to be successful with a project, but they are often necessary. I think it's a dangerous view to state that tutorials are "fundamentally flawed". If you're interested in learning more about how tutorials make projects successful, I recommend this video :-)
What alternative to tutorials do you propose? Make people learn the tools they need using the reference? That is not effective teaching, and that's not how we teach anything else.
In elementary school, you didn't learn addition from first principles, that would be ridiculous. You started off with doing simple examples by hand, and only then you learned "how it actually works".
People learn by recognizing patterns and doing things in practice. The point of a tutorial is to show how do solve specific problems using some tool. When you master these tools and want to learn them deeper, you can check out the reference, the source code, the philosophy behind them and so on.
It looks like you're making an argument to create and promote decent tutorials with good practices (like Real Python or https://vcokltfre.dev/) and discourage people from using bad tutorials with bad practices (like w3schools).
+1 to the talk that @spyoungtech linked.
Our staff team decided that we will not seriously consider this tag.