I’ve encountered this many times where I simply don’t understand the context and use of an API based of the API documentation unless I can find an example that already utilizes it in a working project. The first thing that comes to mind is Py Torch. I’ve tried to figure out how some API features work, or what they are doing in model loader code related to checkpoint caching but failed to contextualize. What harebrain details are obviously missing from someone who asks such a silly question?

  • hperrin@lemmy.world
    link
    fedilink
    arrow-up
    24
    ·
    3 months ago

    It’s because the same people who wrote the code usually write the docs, and people who are really good at writing code usually aren’t good at writing docs. It’s two different skill sets that usually don’t coincide.

    Case in point: my own documentation for https://nymph.io

    I know it’s bad, but I don’t know how to make it good. The code, however, is pretty good. It runs my email service.

    Open source projects also aren’t very good at attracting people who both want to volunteer their time writing technical documentation and can.

    • Carighan Maconar@lemmy.world
      link
      fedilink
      arrow-up
      6
      ·
      3 months ago

      It’s because the same people who wrote the code usually write the docs, and people who are really good at writing code usually aren’t good at writing docs. It’s two different skill sets that usually don’t coincide.

      This is why companies ought to employ technical writers if they have enough documentation. Of course, few ever do, but it’d by the Right Thing™️ to do.

    • abhibeckert@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      3 months ago

      Here’s a tip on good documentation: try to write the documentation first. Use it as your planning process, to spec out exactly what you’re going to build. Show the code to people (on GitHub or on a mailing list or on lemmy or whatever), get feedback, change the documentation to clarify any misunderstandings and/or add any good ideas people suggest.

      Only after the docs are in a good state, then start writing the code.

      And any time you (or someone else) finds the documentation doesn’t match the code you wrote… that should usually be treated as a bug in the code. Don’t change the documentation, change the code to make them line up.

  • ShaunaTheDead@fedia.io
    link
    fedilink
    arrow-up
    17
    ·
    3 months ago

    I do find that everything related to Python is especially badly documented and/or maintained. Maybe I’m just not looking the in right place though? I don’t generally use Python as my primary language.

  • andioop@programming.dev
    link
    fedilink
    English
    arrow-up
    7
    ·
    3 months ago

    How do I get better at understanding API docs without a tutorial to walk me through the basics of how the library works in the first place? Once I have an idea of some of what the library does and how a few commonly-used functions work I can somewhat handle the rest, but getting to that point in the first place is pretty hard for me if no getting started or tutorial section exists. And so I’m very intimidated by a lot of libraries…

    • grandma@sh.itjust.works
      link
      fedilink
      arrow-up
      4
      ·
      3 months ago

      If there’s no getting started section I usually go on GitHub to see how other projects use the library or API.

      Reading the API docs with no prior knowledge or context is hard unless they’re very well written.

  • Feathercrown@lemmy.world
    link
    fedilink
    English
    arrow-up
    6
    ·
    edit-2
    3 months ago

    I find that this is best explained by the four types of documentation theory. Often when you’re starting out, you need a tutorial or how-to guide (or even just an overview of what the purpose and design language of the API is), rather than a reference, which is what nearly all API documentation is.

  • masterspace@lemmy.ca
    link
    fedilink
    English
    arrow-up
    6
    arrow-down
    1
    ·
    3 months ago

    Because usually if you end up at the API reference in that situation it’s a code / project smell that other stuff is going wrong.

    If I want to use a library to do something, you should be able to search for what you want to do + language / framework, find the library’s docs, follow the install instructions and then look through the highest level API / instructions and then just go from there.

    If you find yourself confused at unhelpful API references that just means that they have badly written top level API docs, badly written intros, or quite probably just badly written APIs.

  • qaz@lemmy.world
    link
    fedilink
    arrow-up
    4
    ·
    edit-2
    3 months ago

    I often use grep.app to look for example. It’s fulltext search for code on GitHub, and just get information about the parameters and output by looking at the library’s code.