• @gedhrel@lemmy.world
    link
    fedilink
    72 hours ago

    The issue here is that the author of that post, and potentially the fictional author of the thing being lampooned, are not drawing a distinction between a tutorial (or an explanation) and a how-to.

    https://diataxis.fr/

    Either you want to get a task done, or you want to spend a lot longer learning how to work that out for yourself.

    (Many tutorials will include small set of how-to-like instructions because emulating the actions of a master will improve one’s vocabulary of what can be done as well as how it is achieved.)

  • @Aceticon@lemmy.dbzer0.com
    link
    fedilink
    English
    7
    edit-2
    3 hours ago

    The more advanced the level of knowledge on something the more foundation knowledge somebody has to have to even begin to understand things at that level.

    It would be pretty insane to in a tutorial for something at a higher level of expertise, include all the foundational knowledge to get to that level of expertise so that an absolute beginner can understand what’s going on.

    Imagine if you were trying to explain something Mathematical that required using Integrals and you started by “There this symbol, ‘1’ which represents a single item, and if you bring another single item, this is calling addition - for which we use the symbol ‘+’ and the count of entities when you have one single entity and ‘added’ another single entity is represented by the symbol ‘2’. There is also the concept of equality, which means two matematical things represent the same and for which the symbol we use is ‘=’ - writting this with Mathematical symbols, ‘1 + 1 = 2’” and built the explanation up from there all the way to Integrals before you could even start to explain what you wanted to explain in the first place.

    That said, people can put it in “recipe” format - a set of steps to be blindly followed without understanding - but even there you have some minimal foundational knowlegde required - consider a cooking recipe: have you ever seen any that explains how does one weight ingredients or what is “boiling” or “baking”?

    So even IT “recipes” especially designed so that those with a much lower level of expertise than the one required to actually understand what’s going on have some foundational knowledge required to actually execute the steps of the recipe.

    Last but not least I get the impression that most people who go to the trouble of writting about how to do something prefere to do explanations rather than recipes, because there’s some enjoyment in teaching about something to others, which you get when you explain it but seldom from merely providing a list of steps for others to blindly follow without understanding.

    So, if one wants to do something way above the level of expertise one has, look for “recipe” style things rather than explanations - the foundational expertise required to execute recipes is way lower than the one required to undertand explanations - and expect that there are fewer recipes out there than explanations. Further, if you don’t understand what’s in a recipe then your expertise is below even the base level of that recipe (for example, if somebody writes “enter so and so in the command prompt” and you have no fucking clue what a “command prompt” is, you don’t meet the base requirements to even blindly follow the recipe), so either seek recipes with an even lower base level or try and learn those base elements.

    Further, don’t even try and understand the recipe if your expertise level is well below what you’re trying to achieve: sorry but you’re not going to get IT’s “Integrals” stuff if your expertise is at the level of understanding “multiplication”.

    • It would be pretty insane to in a tutorial for something at a higher level of expertise, include all the foundational knowledge to get to that level of expertise

      You don’t need to include it all. You just need to mention it as pre-requisite knowledge, and link to resources about it for those who don’t have that knowledge. See Creating MAUI UI’s in C#

      I get the impression that most people who go to the trouble of writting about how to do something prefere to do explanations rather than recipes

      Good documentation includes both. i.e. step-by-step guide, with explanations. See above.

      so either seek recipes with an even lower base level

      All documentation should cater to all levels. See above.

      • @Aceticon@lemmy.dbzer0.com
        link
        fedilink
        English
        1
        edit-2
        2 hours ago

        For “all documentation” to “cater to all levels” it would have to explain to people “how do you use a keyboard” and everything from there upwards, because there are people at that level hence it’s part of “all levels”.

        I mean the your own example of good documentation starts with an intro of “goals” saying:

        “Visual Studio (VS) does not (currently) provide a blank .NET Multi-platform Application User Interface (MAUI) template which is in C# only. In this post we shall cover how to modify your new MAUI solution to get rid of the XAML, as well as cover how to do in C# code the things which are currently done in XAML (such as binding). We shall also briefly touch on some of the advantages of doing this.”

        For 99% of people almost all that is about as understandable as Greek (expect for Greek people, for whom it’s about as understandable as Chinese).

        I mean, how many people out there in the whole World (non-IT people as illustrated in the actual article linked by the OP) do you think know what the hell is “Visual Studio”, “.Net”, “Multi-platform Application User Interface”, “template”, “C#”, “XAML”, “binding” (in this context).

        I mean, if IT knowledge was a scale of 1 to 10 with 10 the greatest, you’re basically thinking it’s “catering to all levels” when an explanation for something that is level 8 knowledge (advanced programming) has a baseline required level of 7 (programming). I mean, throw this at somebody that “knows how to use Excel” which is maybe level 4 and they’ll be totally lost, much less somebody who only knows how to check their e-mail using a browser without even properly understanding the concept of "browser (like my father) which is maybe level 2 (he can actually use a mouse and keyboard, otherwise I would’ve said level 1).

        I think you’re so way beyond the average person in your expertise in this domain that you don’t even begin to suspect just how little of our domain the average person knows compared to an mere programmer.

        • it would have to explain to people “how do you use a keyboard”

          No it wouldn’t. You just link to resources about pre-requisite knowledge.

          and everything from there upwards

          Nope. Exact same thing applies to all pre-requisite knowledge.

          For 99% of people almost all that is about as understandable as Greek

          Now scroll down to the pre-requisite knowledge which has links to things explaining ALL of that.

          how many people out there in the whole World (non-IT people as illustrated in the actual article linked by the OP) do you think know what the hell is “Visual Studio”, “.Net”, “Multi-platform Application User Interface”, “template”, “C#”, “XAML”, “binding” (in this context)

          Exact same number as there is people capable of clicking on the provided links about them in the pre-requisite knowledge section.

          which is maybe level 4 and they’ll be totally lost,

          …until they read the links in the pre-requisite knowledge, and then they will understand all of it.

          I think you’re so way beyond the average person in your expertise in this domain

          says person who didn’t even scroll past the introductory paragraph! 😂 You think people try to learn things by reading only the introductory paragraph?? 😂

          you don’t even begin to suspect just how little of our domain the average person knows compared to an mere programmer

          And yet, weirdly, if you keep reading you’ll find it caters to people who know nothing about it 😂

  • @chicken@lemmy.dbzer0.com
    link
    fedilink
    73 hours ago

    Yeah, documentation isn’t as good as it could be, and it would increase the accessibility of software if it was better.

    • @meliaesc@lemmy.world
      cake
      link
      fedilink
      6
      edit-2
      3 hours ago

      The amount of time and skill it takes to write excellent and accessible documentation is just not reasonable for most developers, unless you have dedicated technical writers or it’s a personal project without true deadlines.

  • Avicenna
    link
    fedilink
    24 hours ago

    I think people (I foremost) should train the skills to skip tutorials/articles that are %80 not understandable (to the particular reader in question, not generally) rather than obsessing over them.

  • @itkovian@lemmy.world
    link
    fedilink
    75 hours ago

    How I, a developer read most developer blogs too. No shame in admitting that I lack knowledge, except my anxiety don’t cut me such slack.

  • @Redkey@programming.dev
    link
    fedilink
    59
    edit-2
    9 hours ago

    How about that worst of both worlds, the tutorial where the author starts out writing as if their audience only barely knows what a computer is, gets fed up partway through, and vomits out the rest in a more obtuse and less complete form than they would’ve otherwise?

    1. Turn on your computer. Make sure you turn on the “PC” (the big box part) as well as the “monitor” (TV-like part).

    2. Once your computer is ready and you can see the desktop, open your web browser. This might be called “Chrome”, “Safari”, “Edge”, or something else. It’s the same program you open to use “the Google”.

    3. In the little bar near the top of the window where you can write things, type “https://www.someboguswebsite.corn/download/getbogus.html” and press the Enter key.

    4. Download the software and unarchive it to a new directory in your borklaving software with the appropriate naming convention.

    5. Edit the init file to match your frooping setup.

    6. If you’re using Fnerp then you might need to switch off autoglomping. Other suites need other settings.

    7. Use the thing. You know, the thing that makes the stuff work right. Whatever.

    Congratulations! You’re ready to go!

    • Sounds like typical Microsoft documentation to me. Explains in great detail what .NET is, where you can download it from, then jumps straight to the advanced topic they’re covering without any of the intermediate knowledge covered or even linked to (but perhaps referred to only vaguely in passing as an acronym, again with no link, this time no link to what “TLA” is actually short for, so you’re searching for it is fruitless as well).

      • @Thunderwolf@lemmy.world
        link
        fedilink
        67 hours ago

        I think TLA means “Three Letter Acronym” in some circles. So like, DBA would be a TLA meaning “database administrator” for example. Didn’t read the article to get the context though, so not sure if it fits

        • I think TLA means “Three Letter Acronym” in some circles

          Yes, that was why I used it. Microsoft doco is full of unexplained TLA’s - you have to already know what it means and how to use the thing. You knew what TLA meant. Now read the Miscrosoft doco where you don’t know what any of the MS TLA’s mean, and they don’t tell you.

        • @Iunnrais@lemmy.world
          link
          fedilink
          86 hours ago

          Yes, TLA is a three letter acronym. A four letter acronym, on the other hand, is an ETLA, or “Enhanced Three Letter Acronym”. For advanced cases, you can get an EETLA (or XETLA) for Expanded/Extended Enhanced Three Letter Acronym.

          Just so you know.

  • Otter
    link
    fedilink
    English
    248 hours ago

    This reminds me of the “WHY IS THERE CODE??? MAKE A FUCKING .EXE FILE AND GIVE IT TO ME” post that blew up a while back

    https://copypastatext.com/i-am-new-to-github-and-i-have-lots-to-say/

    And both boil down to

    • guides can be prioritized more in some projects and it might be in the best interest of the creators to do that

    • different guides are written for different audiences, sometimes a guide isn’t meant for the average person

  • @Treczoks@lemmy.world
    link
    fedilink
    76 hours ago

    Yes, you are not wrong here.

    What I regularly have to deal with is about as bad. Big project, and every upgrade replaces one key element. They have never heard of backwards compatibility. If they don’t like a subset in their system, they replace it. Complete with different API calls, structures, and calling conventions. And they may document parts of it three versions later. If at all. Some documentation is basic Doxygen - just list the function parameters, and that’s it. I’ve seen cases where the documentation of the rather critical parameter “flags” was just the word “flags”. I’ve seen cases where the return value was documented only as “status”. Not even with a notion whether 0==success and 0!=failure or vice versa.

    And no, it is not a closed application. They have an “extension” folder for user-supplied extensions. The problem: If it is not a core extension that has been updated with the main project, the first thing after an upgrade is finding out where your formerly working extension critical to your project now fails, because they just happened to think that the call interface for the boogaloo object need a complete overhaul. Maybe it needed an overhaul, but then at least keep the older interface alive for at least a few versions after documenting the new interface and marking the old one as deprecated.

    • I’ve seen cases where the documentation of the rather critical parameter “flags” was just the word “flags”.

      In Microsoft documentation it would just say “FLGs”, with no explanation of what FLG is, nor any links to resources about FLGs. you either already know what it is or you now can’t continue any further with the documentation (because a search for FLG also fails to find what it is). Throughout their documentation it is heavily assumed you are a long-time Microsoft programmer and already know all of this. i.e. it is completely unwelcoming to Microsoft beginners (and even some who aren’t beginners)

  • @backlever@programming.dev
    link
    fedilink
    English
    97 hours ago

    Imagine a chemistry lab tutorial aimed at 9th grade students getting “as a non-chemist, this reads as gibberish” comments from first graders. Nobody would blame the tutorial authors.

    People need to start putting in the effort. There is no such thing as learning for free.

    • Imagine a chemistry lab tutorial aimed at 9th grade students getting “as a non-chemist, this reads as gibberish” comments from first graders. Nobody would blame the tutorial authors

      I tutor Maths. I have a Year 12 student who has forgotten things they were taught in Year 8, and the teacher has done no revision of it in class. Now guess why this student needs a tutor 😂

      People need to start putting in the effort.

      The people writing the documentation, yes. They need to say what the prerequisite knowledge is, and include links to it for those who don’t know it (or remember it). Only takes a few minutes to do that. See Creating MAUI UI’s in C#

  • @Ilovethebomb@sh.itjust.works
    link
    fedilink
    4111 hours ago

    At least once in their life, every tech person should be forced to teach someone like my mum how to use a piece of technology.

    That will very quickly change your perspective on what counts as user friendly.

    • @felbane@lemmy.world
      link
      fedilink
      24 hours ago

      I think the issue is that you need to understand who your users actually are. Documentation for a library intended to be used by a reasonably competent software engineer is going to have different requirements vs documentation for a cli utility aimed at Arch btw Linux users vs documentation for a program to help Grandma organize family photos.

      If you throw a terminal command at Grandma she’s going to panic and call her grandchild. If you put instructions for extracting a tarball in your library docs the programmer is going to get bored and skip ahead.

  • @merc@sh.itjust.works
    link
    fedilink
    26 hours ago

    If it’s all gobbledygook to you, then you weren’t the target audience.

    Most developers are writing for developers who have approximately the same skill level and knowledge. The vast majority of tutorials out there are definitely not aimed at beginners. They’re aimed at peers who know most of the same stuff, but want to broaden their horizons a little.

    Now, if it were 95% easy to follow, and then there was one step that was only a few words long and made no sense at all, that would be the typical badly written tutorial. There are way too many tutorials that have a “rest of the owl” problem at some stage. I was trying to figure out how to do something today and I must have skimmed through 30 tutorials aimed at people roughly my skill level before I finally found one that explained the missing bit. That missing bit turned out to be pretty easy, but almost every thing I read just assumed people knew how to do that part, and focused in on all the wrong things.

    As for actual tutorials for beginners, the biggest problem isn’t that they’re badly written. The biggest problem is that they don’t exist. But, to be fair, they’re actually really hard to write. Explaining things requires that you really understand them well. But, when you understand them well, it can be hard to put yourself in the shoes of someone who knows so little they don’t even know what questions to ask. Most computerey things are complicated enough that by the time you feel confident enough to write a tutorial, you’ve forgotten what it was like to be a beginner.

    • If it’s all gobbledygook to you, then you weren’t the target audience.

      Beginner’s are the target audience for tutorials. Many tutorials are written in gobbledygook. See Microsoft documentation, which would’ve instead said GDG, and assumed you knew what GDG was.

      Most developers are writing for developers who have approximately the same skill level and knowledge

      If they had the same skill level and knowledge then they wouldn’t need a tutorial to begin with.

      The vast majority of tutorials out there are definitely not aimed at beginners

      And that’s precisely the problem with the vast majority of tutorials.

      Now, if it were 95% easy to follow, and then there was one step that was only a few words long and made no sense at all, that would be the typical badly written tutorial

      Microsoft: Now all you have to do is add in a GDG

      I must have skimmed through 30 tutorials aimed at people roughly my skill level before I finally found one that explained the missing bit

      Now imagine reading Mircosoft documentation and not being able to find anything which explains what GDG is. Classic “rest of Owl”.

      they’re actually really hard to write

      No they’re not. You include what the pre-requisite knowlege is, along with links to resources about the pre-requisite knowledge. See Creating MAUI UI’s in C#

    • Kushan
      link
      fedilink
      English
      46 hours ago

      Most developers are writing for developers who have approximately the same skill level and knowledge

      I think you’re correct about this, but I also think that’s part of the problem.

      On the one hand you can have technical tutorials for technical people, but to your point assuming the audience has the same skill level and knowledge is actually a mistake - no two people share the same same life, so while it’s reasonable to assume a certain level of knowledge, you still need to consider that there may be gaps - small gaps but gaps all the same and that it’s worth being explicit about things to avoid ambiguity. A common pitfall I see in a lot of tutorials or guides is not being explicit about file paths (“just add this to the config folder” - which folder? Where?), or not correctly steering the user towards the relevant documentation about configuration values while still expecting them to insert some config file specific to their system, stuff like that.

      The other end of the spectrum - the beginner, to your point might not be the target audience but a lot of people don’t realise that those folks exist. The absolute classic example I see of this is Linux for the Everyman - Lemmy is very big on promoting Linux and moving folks away from Windows/MacOS but there’s a bit of a disconnect because a lot of tutorials exist that base level of knowledge that a complete beginner doesn’t have. So they’re both not the target audience but expected to learn that stuff - and of course it doesn’t work and they stick to what they do know.

      All this is to say, writing tutorials is a skill in itself and part of that skill is knowing who your target audience really is and knowing where your knowledge is his experience from working at something for so long or a basic level of understanding you expect a user to have.

      • “just add this to the config folder” - which folder? Where?

        This is one of the biggest problems with Microsoft documentation (and maybe other ecosystems too). Doesn’t include any “using” statements in the snippet, leading to copying the code not working, because you don’t know what DLL this is using. They talk about 2 lines, and show you 2 lines, but the 2 lines don’t work without 1 or 2 other lines which they have left out. Happens every single time

        not correctly steering the user towards the relevant documentation about configuration values

        Microsoft documentation never links to anything else at all. If you don’t know how to do this thing they’re talking about, well now you have to go find a Youtube by some Indian programmer about it

        there’s a bit of a disconnect because a lot of tutorials exist that base level of knowledge that a complete beginner doesn’t have

        Yep. The man pages are so not user-friendly. I have always said that Unix is very powerful, but not the least bit user-friendly. Welcome to low adoption.

  • @rtxn@lemmy.world
    link
    fedilink
    9
    edit-2
    8 hours ago

    Is “prerequisite knowledge” a foreign concept to people these days? When I started writing extensions for Blender, I had to do a lot of legwork to understand the bpy module, and even more fucking legwork to understand Python itself, all that on top of the general knowledge of programming and algorithms from high school.

    RTFM means that you should use the available resources to learn. There’s a whole internet full of them. There are no shortcuts to understanding, and you can’t expect every task-oriented guide to explain how to write a main().

    • Is “prerequisite knowledge” a foreign concept to people these days?

      Apparently so.

      RTFM means that you should use the available resources to learn

      Except the manuals are written like this, and don’t cover pre-requisite knowledge at all - don’t even link to it!

      There’s a whole internet full of them

      Microsoft doco “now add TLA to it”, don’t say what TLA is, don’t link to what TLA is, searching for TLA doesn’t tell you what it is. There most certainly is a whole internet full of blogs about “TLA”, but I don’t even have any keywords, and can’t find any of the “TLA” that Microsoft is talking about. The documentation is literally useless to anyone who doesn’t already know what “TLA” is.

      There are no shortcuts to understanding

      There are no shortcuts to writing good documentation

      you can’t expect every task-oriented guide to explain how to write a main().

      But you can certainly expect them to link to resources about pre-requisite knowledge, like I did in Creating MAUI UI’s in C#.

    • Ephera
      link
      fedilink
      English
      107 hours ago

      I mean, as it says at the end, this blog post is in good fun. It most definitely expresses frustration, but it also recognizes that perfect is the enemy of good, and that you already put in more effort than one can expect by writing a tutorial to begin with.

      I guess, my main takeaway is that you really don’t need to bother writing up your life story. It will fly over the head of your readers, for sure. (Although a bit of context may still be important.)
      And you should probably spend a few more words, describing the actual steps, no matter how obvious those may seem to you.

    • @RunJun@lemmy.dbzer0.com
      link
      fedilink
      English
      78 hours ago

      There’s amazing and terrible manuals everywhere. One of the key things is defining target audience. From there you define experience and knowledge.

      If a manual is intended to be for a broad audience interacting with something new, then you use the lowest level reading level that still makes your point. From there you work on flow because there’s a 1000 ways to skin a cat.

      If LEGO manuals were only written step by step instructions, at a college reading level, then they miss a key demographic. Yet, people would still walk around like “That’s a perfectly cromulent instruction manual!” Technically they would be correct but it misses the point.

  • Deacon
    link
    fedilink
    37 hours ago

    I really enjoy this writing style. It reminds me of what it was like reading Dave Barry’s Sort Of History of the United States when I was a kid.